【Unity】Assembly Definition Filesをサクッと設定する

  • URLをコピーしました!
目次

はじめに

「Assembly Definition」を設定する際のメモです。サクッと設定したいので少し乱暴なやり方かもしれません。「Assembly Definition」を設定するメリットはエディターでのコンパイル時間が短くなり、チリツモで開発効率があがります。

参照関係などしっかり設計しないといけなくなるので開発初心者には向きません。慣れてきたら試してみましょう。

ポイント

  • よく更新する自作スクリプトとストアアセットなどの更新しないスクリプトでアセンブリを分ける
  • Editorフォルダはビルドに含まれないようアセンブリをさらに分ける
  • 循環参照はできない
  • 細かくしすぎない
  • 難しければ諦める

Assembly Definition Files の基本設定

Auto Referencedのチェックをはずす

これは毎回コンパイル対象にする設定です。デフォルトでオンになっています。矛盾するので基本オフにします。
※オフにするとAssembly Definitionを設定していないスクリプトから参照できなくなります。

Assembly Definition References

参照する他の「Assembly Definition」ファイルをこちらに登録します。

Any Platform

プラットフォーム毎にこのアセンブリをインポートするかどうか設定できます。基本は、すべてのプラットフォームを対象とする「Any Platform」を選択しておけば良いでしょう。

参照構造について

概要

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

「Script」フォルダに「Assembly Definition」を作成

自作したスクリプトは「Script」フォルダなどを作って一箇所にまとめます。そこに右クリック>Createで「Assembly Definition」ファイルを作成します。

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

サードパーティー製アセット「Assembly Definition」が既にある

「UniTask」「TextMeshPro」「Postprocessing」などはデフォルトで用意されているので、それらを上で作った「Assembly Definition」ファイルから参照します。

「DOTween」は「Assembly Definition」ファイルを作成するツールを開発元が準備してくれているので、そちらを使用してできたファイルを参照します。

あわせて読みたい
【Unity】DoTweenにAssembly Definitionファイルがないので手動で設定しようと思ったら実は用意してくれ... はじめに 開発が進んでくるとスクリプトコンパイルの待ち時間が長くなって大変です。それを回避するために自分のスクリプトフォルダにAssembly Definitionファイルを作...
「Assembly_zmy」のReferenceの状態

サードパーティー製アセット「Assembly Definition」が無い

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

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

「Assembly_ThirdAssetMy」の設定

例外

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

あわせて読みたい
【Unity】Photon FusionにAssembly Definition Filesを設定した時に出るエラーの対処方法 はじめに Photon Fusionを使っているプロジェクトでAssembly Definitionを設定したところ、下記のエラーが出たのでその対処方法です。 InvalidOperationException: Type...

以上です。
上記設定をしてConsoleにエラーが出ていなければ終了です。

コンパイルが早くなっているか確認してみてください。まだ遅く感じる場合は、さらにアセンブリを細かく分けてみてください。

参考

Qiita
Unity Assembly Definition 完全に理解した - Qiita はじめにこの記事におけるソースコードはすべて Public Domain です。また本記事において利用しているUnityバージョンは2019.2です。Assembly Definitionとは…
テラシュールブログ
【Unity】Assembly Definition Filesという神機能 - テラシュールブログ 今回は地味ですが神機能なAssembly Definition Filesについて紹介します。この機能は地味ですが、Unity開発の上で発生してる問題を(意図せず)かなり解決してくれるので、...
トマシープが学ぶ
UnityのAssembly Definitionのお勉強~ - トマシープが学ぶ 完全とは言わないまでも、少し理解しないといけなくなったのでお勉強 qiita.com 雰囲気で書いているのであってないと思います。↑の記事を見ましょう 引用マークを書いてい...
(:3[kanのメモ帳]
Assembly Definition Filesを使ってるのにコンパイル時間が早くならない場合の対処法【Unity】【Assembly D... この記事でのバージョン Unity 2019.4.17f1 はじめに Unityでコンパイル時間を短縮したい場合、Assembly Definition Filesが便利ですが、 ざっくりまとめると、好きなよう...

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次