はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】Assembly Definition Referenceを用いて特定アセンブリにフォルダ以下のスクリプトを含める(asmdefによるファイル配置の制約に有効)

はじめに

今回はAssembly Definition Referenceについて紹介をしたいと思います。

Assembly Definition References

The scripts in the folder containing the Assembly Definition Reference asset, including scripts in any child folders (unless those folders contain their own Assembly Definition or Reference assets) are compiled into the referenced assembly and removed from their previous assembly.

// DeepL翻訳
アセンブリ定義リファレンス アセットを含むフォルダー内のスクリプトは、子フォルダー内のスクリプトを含め(これらのフォルダーに独自のアセンブリ定義またはリファレンス アセットが含まれていない場合)、参照されるアセンブリにコンパイルされ、以前のアセンブリから削除されます。

Unity - Manual: Assembly definitions

概要

Assembly Definition FilesAssembly Definition File(.asmdef)を置いたフォルダ以下を別アセンブリにできる機能です。
(ただし子にAssembly Definition File(.asmdef)があれば、そのフォルダ以下は異なるアセンブリになる)

逆に言うと、Assembly Definition File(.asmdef)を利用するとファイル配置の仕方に制約が生まれてしまいます。

そこで利用するのがAssembly Definition Referenceで、Assembly Definition Filesを設定することで指定先のアセンブリに自身(asmrefがあるフォルダ以下のスクリプト)を含める事ができます。

Assembly Definition Referenceの利用

作り方

ProjectビューにてCreate -> Assembly Definition Referenceを選択しファイルを生成します。

asmrefの作成方法
Assembly Definition References
プロパティ 意味
Use GUID asmdefへの参照にGUIDを用いる。GUIDを利用しない場合は名前によって参照を行うので、asmdefの名前が変わると変更が必要。
Assembly Definition 参照するasmdef。

Assembly Definition Reference のプロパティ - Unity マニュアル