はじめに
「Assembly Definition」を設定する際のメモです。サクッと設定したいので少し乱暴なやり方かもしれません。「Assembly Definition」を設定するメリットはエディターでのコンパイル時間が短くなり、チリツモで開発効率があがります。
参照関係などしっかり設計しないといけなくなるので開発初心者には向きません。慣れてきたら試してみましょう。
ポイント
- よく更新する自作スクリプトとストアアセットなどの更新しないスクリプトでアセンブリを分ける
- Editorフォルダはビルドに含まれないようアセンブリをさらに分ける
- 循環参照はできない
- 細かくしすぎない
- 難しければ諦める
Assembly Definition Files の基本設定

Auto Referencedのチェックをはずす
これは毎回コンパイル対象にする設定です。デフォルトでオンになっています。矛盾するので基本オフにします。
※オフにするとAssembly Definitionを設定していないスクリプトから参照できなくなります。
Assembly Definition References
参照する他の「Assembly Definition」ファイルをこちらに登録します。
Any Platform
プラットフォーム毎にこのアセンブリをインポートするかどうか設定できます。基本は、すべてのプラットフォームを対象とする「Any Platform」を選択しておけば良いでしょう。
参照構造について

概要
- 自作スクリプト
- 「Script」フォルダを作って自作スクリプトを一箇所にまとめ、そこへ「Assembly Definition」を作ります。
- サードパーティー製アセット
- 「Assembly Definition」が既にある
- (1)で作った「Assembly Definition」で参照します。
- 「Assembly Definition」がない
- サードパーティー製アセットを1箇所にまとめたフォルダを作り、参照される用の「Assembly Definition」を作り(1)で作った「Assembly Definition」で参照します。
- 「Editor」フォルダが階層下にある場合は、さらにそこにも「Assembly Definition」ファイルを作り、必要に応じて参照します。
- 「Assembly Definition」が既にある
「Script」フォルダに「Assembly Definition」を作成
自作したスクリプトは「Script」フォルダなどを作って一箇所にまとめます。そこに右クリック
>Create
で「Assembly Definition」ファイルを作成します。

ファイル名はなんでも良いですが、いつでもやり直しできるよう自分で作ったファイルだと後から見てもわかる名前にしておきましょう。

サードパーティー製アセット「Assembly Definition」が既にある
「UniTask」「TextMeshPro」「Postprocessing」などはデフォルトで用意されているので、それらを上で作った「Assembly Definition」ファイルから参照します。
「DOTween」は「Assembly Definition」ファイルを作成するツールを開発元が準備してくれているので、そちらを使用してできたファイルを参照します。


サードパーティー製アセット「Assembly Definition」が無い
「Assembly Definition」ファイルが無いサードパーティー製アセットは、少し乱暴ですが「ThirdAsset」などの名前でフォルダを作り、そこにアセットをまとめてしまい、そこに参照される用の「Assembly Definition」ファイルを1つ作ります。

サードパーティー製アセットの階層下に「Editor」フォルダがある場合は、ビルドに含まれるのを防ぐため、さらにそこにも「Assembly Definition」ファイルを作成して、Editorだけにチェックを入れます。また必要であれば「Assembly Definition References」に参照する「Assembly Definition」ファイル登録します。

例外
「Photon Fusion」は「Assets」直下にフォルダがないと上手くいかなかったので、「Photon」フォルダ内に「Assembly Definition」ファイルを作成して、さらに別の設定も必要でした。こういったアセットは他にもあるかもしれません。

以上です。
上記設定をしてConsoleにエラーが出ていなければ終了です。
コンパイルが早くなっているか確認してみてください。まだ遅く感じる場合は、さらにアセンブリを細かく分けてみてください。
参考



