unsafeとは、メモリを直接扱う事を可能にする機能だ。メモリ管理とは具体的にはポインタを指す。Unityの使用しているmonoはマネージドコード(メモリ管理を自動で行う)のなので、ポインタを操作する事は本来出来ないが(せいぜいref等の直接参照がある程度)、unsafeを使用することで直接ポインタを操作することが出来る。
Unityでは基本的にunsafeが許可されていない。ただしその制約はUnity外のプロジェクトには適応されないため、Unity外でDLLを作成することで回避が可能だ。
追記
そんな事をしなくてももっと簡単な方法があった。
アドレスの表示
以下引用
Unityでは、プロジェクトのassetsフォルダ内に「smcs.rsp」というファイルを作成。
この中に「-unsafe」と記述。
これは、ビルド時のオプションやプリプロセッサ指定を記述できるようです。
- 新しくソリューションを作成
Monodevelopの[File] > [New] > [Solution] を開き、C# Libraryを選択。 - ソリューションのunsafeコードの使用を許可する
Project>[Solution Option]を開き、[Build] > [General] で
[allow unsafe code] にチェックを入れる。 - DLL出力先をUnityのAssets以下に設定
Project>[Solution Option]を開き、[Build] > [output] で
[output path]をassets以下に設定。