こんにちは、Unityエンジニアのオオバです。
Unity2017.3のAssembly Definitionがコンパイル時間短縮の救世主になりそうな予感
以前このようなAssemblyDefinitionは神だ!!という記事を書きましたが、実際その神を運用してみて分かってきたことがあります。
今回紹介するのはAssemblyDefinitionのイケていないところ2選。
→11万文字で徹底解説した「DOTweenの教科書」Unityアニメーションの超効率化ツールはこちら
1.依存関係が文字列参照
AssemblyDefinitionのファイル(.asmdef)の中身を見ると、以下のようなJSON形式になっています。Module
がCore
を参照していることが読み取れます。
{
"name": "Module",
"references": [
"Core"
],
"optionalUnityReferences": [],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": false
}
重要なのはname
とreferences
部分で、なぜか文字列参照です。
ということは、Coreのname
が変わると依存関係が壊れてしまい以下のようなコンパイルエラーを吐きます。
Assembly has reference to non-existent assembly 'Core' (Assets/Module.asmdef)
文字列参照してもよいのですが、name
を変更しても自動で依存関係を保持してもらいたいところです。
2.ぶっちゃけあまり効果を感じない
ディレクトリ構成やらファイル構成やらいろいろ頑張ってAssemblyDefinition対応したにもかかわらず、そこそこソースコード増えてもあまり効果を体感ベースで感じません。
少しは早くなっているかもしれませんが、苦労した割には...
まとめ
個人的には現段階ではAssemblyDefinitionを導入しない方が良いかなっていう印象です。
苦労に見合わない感じです。
今後に期待です。

この記事が気に入ったらフォローしよう
オススメ記事
検証環境
- Unity2018.2.5f1