アセンブリ定義ファイル
公式サイト:
使い方
設定
- Name: アセンブリ定義の名前を指定する
- Allow Unsafe Code:
unsafe
としてマークされたコードを許可する (デフォルト:無効
) - Auto Referenced: このアセンブリを自動的に参照させる (デフォルト:
有効
) - Override References: アセンブリの参照を手動で管理する (デフォルト:
無効
) - No Engine References: エンジンを参照しない/UnityEngine 及び UnityEditor を除外する (デフォルト:
無効
) - Root Namespace: デフォルトの名前空間を指定する
- Define Constraints: 指定したマクロが全て定義されている場合にアセンブリをコンパイル及び参照する (デフォルト:なし)
- Assembly Definition References: 指定したアセンブリ定義を参照する
- Use GUIDs: GUID で参照する (デフォルト:
有効
)
- Use GUIDs: GUID で参照する (デフォルト:
- Assembly References: コンパイル済みアセンブリ (.dll) を参照する
- Platforms: アセンブリを使用するプラットフォームを指定する
- Any Platform: 任意のプラットフォームに含める (デフォルト:
有効
) - Exclude Platforms: 指定したプラットフォームから除外する
- Include Platforms: 指定したプラットフォームに含める
- Select All: 全て選択する
- Deselect All: 全ての選択を解除する
- Any Platform: 任意のプラットフォームに含める (デフォルト:
- Version Defines: プロジェクトに含まれるパッケージのバージョンに応じてマクロを定義する (デフォルト:なし)
ドキュメント:
Assembly Definition のプロパティ | Unity マニュアル [公式]
参考:
Assembly Definition Files という神機能 | テラシュールブログ
Assembly Definition 完全に理解した – Qiita
Unity 2017.3 の Assembly Definition Files を適切に設定してコンパイルにかかる時間を削減する – Qiita
Assembly Definition Files の地雷ポイントについて解説してみる | もんりぃ is undefined.
Add managed DLL to an Assembly Definition – Unity Forum
導入
参考:
Assembly Definition のお勉強 | トマシープが学ぶ
Unity 2017.3 で追加された Assembly Definition をちょっと触ってみた – Qiita
Assembly Definitions (Mohamed Hijazi) | Bootcamp
Assembly Definition Files | Techblog InnoGames
ビルドパフォーマンス
参考:
なんだかこのプロジェクト、エディタコンパイル時間が長いぞ、という時の対処 – Qiita
Assembly Definition を分けるとコンパイルが高速になるってホント?検証してみた! | VirtualCast Blog
アセンブリ定義参照
ドキュメント:
Assembly Definition Reference のプロパティ | Unity マニュアル [公式]
internal
参考:
Assembly Definition Files を使った上で internal にアクセスする方法 – Qiita
internal な型やメンバにアクセスするには、多分これが一番早いと思います – Qiita
InternalsVisibleTo を用いて特定アセンブリから internal にアクセスできるようにする | はなちるのマイノート
How to access useful Unity Editor / Engine internal methods? – Unity Answers
.NET ランタイム
参考:
Unity で.NET 4.x を使用する | Microsoft Learn [公式]
Windows ユニバーサルラインタイム API
ドキュメント:
WinRT API in C# Scripts | Unity マニュアル [公式]
参考:
Using Windows Universal Runtime APIs from a Standard Unity Executable | Microsoft Community Hub
ファイル形式
.asmdef
: アセンブリ定義ファイル.asmref
: アセンブリ定義参照ファイル
ドキュメント:
アセンブリ定義ファイルの形式 | Unity マニュアル [公式]
.NET クラスライブラリが使用できない
.NET 4.x プロファイルを使用している場合、一部の .NET クラスライブラリ API は既定では参照が追加されないため、明示的に追加する必要がある。
使い方
プロジェクトディレクトリの直下に csc.rsp
ファイルを作成し、以下のような記述を追加する。
-r:System.Net.Http.dll
参考:
追加のクラスライブラリアセンブリの参照 | Unity 2020.3 マニュアル [公式]
アセンブリが認識されない
参考:
Unity Learn
Working with Assembly Definitions | Unity Learn [Official]
ドキュメント
Tips
Assembly Definition Files の地雷ポイントについて解説してみる | もんりぃ is undefined.
チュートリアル
Speed Up Compile Times with Assembly Definitions (Game Dev Guide)
Assembly Definitions (Infallible Code)