【Unity5】UnityスクリプトをDLLファイル化する方法
別にUnity5に限った話じゃないですが、Unityで作成したプロジェクトを外部の人に渡す必要がありその時にスクリプトを見せたくなかったので隠蔽する方法を検索しました。
どうやらUnityのスクリプトはDLL化できるみたいでしたのでその方法をメモ。
参考にさせていただいたサイトはこちらです。
Unityで、自作Assetをdllファイルにコンパイルする - Qiita
公式のサイト(日本語)はこちら。
Unity - マニュアル: Unity Project での Mono DLL 使用
Unityのスクリプトをコンパイルするために、専用のコンパイラが提供されています。
Macの場合だと
/Applications/Unity/Unity.app/Contents/Frameworks/Mono/bin/smcs
Windowsの場合だと
C:¥Program Files¥Unity¥Editor¥Data¥Mono¥bin¥smcs.bat
にあるシェルスクリプト、バッチファイルでコンパイルを行う事ができます。
記述例は以下のような感じです。
/Applications/Unity/Unity.app/Contents/Frameworks/Mono/bin/smcs -r:/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEngine.dll -r:/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEditor.dll -target:library -out:hoge.dll *.cs
C:¥Program Files¥Unity¥Editor¥Data¥Mono¥bin¥smcs.bat -r:"C:¥Program Files¥Unity¥Editor¥Data¥Managed¥UnityEngine.dll" -r:"C:¥Program Files¥Unity¥Editor¥Data¥Managed¥UnityEditor.dll" -target:library -out:hoge.dll *.cs
引数やオプションについては以下の意味があります。
- -r
- ビルドに含めるライブラリのパス
上記の例ではUnityEngine.dllとUnityEditor.dllを設定しています
- ビルドに含めるライブラリのパス
- -target
- ビルドの種別
libraryと指定するとDLLビルドを行う
- ビルドの種別
- -output
- 出力されるファイル名
- ソースファイル
オプションについては
smcs -help
で見る事ができるので、出力された説明を参考にしてみてください。