目標
- VisualStudio で UnityEngine 等の Unity 関連ライブラリを参照可能にする。
- DLL を作成し、Unity に読み込ませて利用可能にする。
作業
VisualStudio for Mac (バージョン 8.8.6) を使っています。
プロジェクトの作成
スタートウィンドウ > 新規 > その他 > .Net
より「ライブラリ」というテンプレートがあるので、それを選択します。
プロジェクト名、ソリューション名は同じで OK です。
ディレクトリ構成は以下のようになっているかと思います。
多少異なっていても問題ないです。
TestLibrary/
└ TestLibrary
├ 参照/
│ └ System
├ パッケージ/
├ Properties/
│ └ AssemblyInfo.cs
└MyClass.cs
必要最小限のもの以外を削除しても構いません。
削除したいものの上で「右クリック、削除」で削除できます。
最小限のものだけにすると、以下のようになります。
TestLibrary/
└ TestLibrary
├ 参照/
└ パッケージ/
UnityEngine の参照を追加する
現在の状態で次のようにすると、エラーになります。
using UnityEngine;
なので、参照を追加します。
- 「参照」ディレクトリの上で「右クリック、参照の追加...」を選択
- 「.NET アセンブリ > 参照...」
- Finder にて「Shift + ⌘ + G」
- /Applications/Unity/Unity.app/Contents/Managed と入力
- 「UnityEngine.dll」を開く
無事に見つかって参照が追加できれば OK ですが、できなかった場合は次の方法で可能かと思われます。
- UnityHub を開いて、右上の歯車マークから「一般 > Unity エディタフォルダー」の場所を確認します。
- VisualStudio「.NET アセンブリ > 参照...」より 1 を参考に「Unity.app」を探します。
- 「Shift + ⌘ + G」を押してhoge/Unity.app/Contents/Managedと入力します。(hoge の部分は各自)
- UnityEngine.dll」を開く
コンパイラ設定
初期のの設定では、DLL にすると XML コメントが表示されないので変更します。
TestLibrary/
└ TestLibrary <ー 右クリック、オプション
├ 参照/
└ パッケージ/
オプション > ビルド > コンパイラ > XML ドキュメントを生成する
にテェックを入れます。
他にも「オーバーフローチェック」や「最適化を有効」などのオプションがあるので必要に応じて有効にします。
Unity で利用可能にする
- ビルドします。「⌘ + K」または TestLibrary を右クリックで行います。
- Finder からプロジェクトのディレクトリに移動します。
- Unity のプロジェクトに「Plugins」フォルダを作成し、dll、pdb、xml を入れます。
TestLibrary/
├ bin/
│ └ Debug
│ ├ TestLibrary.dll
│ ├ TestLibrary.pdb
│ └ TestLibrary.xml
├ obj/
....
これで、Unity 側から自作の DLL を呼ぶことができます。
以上で全ての目標を達成しました。
参考
Mac 版 Visual Studio で Unity 用の DLL を出力する方法
Visual Studio ユーザーが Release ビルドをするときに必ずやってほしい 2 つの設定