凹みTips

C++、JavaScript、Unity、ガジェット等の Tips について雑多に書いています。

Unity 上で DLL(マネージドプラグイン)をビルドするエディタ拡張を作ってみた

はじめに

Unity で以下のようなユースケースソースコードを DLL(マネージドプラグイン)にビルドしたいことがあるかと思います:

  • C# のソースを隠蔽したい場合*1
  • 取り回しを楽にしたい(DLL をプロジェクトにインクルードするだけで完結させたい)場合
  • 再ビルドを避けてビルド時間の短縮をしたい場合(Assembly Definition Files では足りない場合)

DLL を作成するには Mono Develop や Visual Studio でビルドするか、手動でコマンドを打ってビルドする必要があり面倒でした。そこで Unity 上でビルドできるツールを作ってみましたのでご紹介します。

画面

f:id:hecomi:20180416004412p:plain

環境

  • Windows / Mac 両方
  • Unity 2018.1.0b13 でテスト

ダウンロード

github.com

使い方

  1. Release ページから最新版をダウンロード
  2. 自プロジェクトに展開
  3. Window > uDllExporter からウィンドウを開く
  4. Target Directory でビルドに含めるディレクトリを指定
  5. Output Directory Path に出力するディレクトリを入力
  6. Output Dll Name でファイル名を入力
  7. Unity Engine DLLsUnity Editor DLLsOther DLLs から参照する DLL を選択(複数選択可)
  8. ビルドに含めたいファイルまたはファイルを含むディレクトリをエディタ上の Project ウィンドウから選択
  9. Build DLL ボタンを押してビルド

エラーや警告がある場合はエディタ上の Console ウィンドウに表示されます。

おわりに

uREPL が DLL にならないか?という要望が来てやってみようと思って作り始めたのですが、uREPL はスクリプトだけでなくアセットも色々含んでいるので断念しました...。途中まで作ってしまったので折角なのでということで仕上げた次第です。バグなどあったらご報告下さい。

*1:完全には隠蔽できませんが...