# アセンブリアセットの作成

> Create various kinds of assembly assets to customize your assemblies.

Assembly Definition (`.asmdef`) アセットをスクリプトが入っているフォルダーのルートに置くことで、新しいアセンブリを定義できます。

Assembly Definition Reference (`.asmref`) アセットを使用すると、一連のスクリプトファイルを既存のアセンブリに明示的に加えることができます。

## Assembly Definition アセットの作成##create-an-assembly-definition

Assembly Definition アセットを作成するには以下を行います。

1. **Project** ウィンドウで、アセンブリに加えるスクリプトが入っているフォルダーを探します。
2. そのフォルダーに Assembly Definition アセットを作成します (メニュー:**Assets** > **Create** > **Scripting** > **Assembly Definition**)。
3. アセットに名前を付けます。デフォルトでは、アセンブリファイルにはアセットに割り当てた名前が使用されますが、**Inspector** ウィンドウで名前を変更することができます。

Unity はプロジェクト内のスクリプトを再コンパイルして、新しいアセンブリを作成します。その後、新しい Assembly Definition の [プロパティ](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files/class-assembly-definition-importer.md) を編集できます。

新しいアセンブリには、Assembly Definition と同じフォルダーにあるすべてのスクリプトと、独自の Assembly Definition や Reference ファイルを持たないサブフォルダーにあるスクリプトが加えられます。Unity は、必要に応じて以前のアセンブリからスクリプトを削除します。

## Assembly Definition Reference アセットの作成##create-an-assembly-definition-reference

Assembly Definition Reference を作成します。

1. **Project** ウィンドウで、参照されるアセンブリに加えるスクリプトが入っているフォルダーを探します。

2. そのフォルダーに Assembly Reference アセットを作成します (メニュー:**Assets** > **Create** > **Scripting** > **Assembly Definition Reference**)。

3. アセットに名前を付けます。

   Unity はプロジェクト内のスクリプトを再コンパイルして、新しいアセンブリを作成します。終了すると、新しい Assembly Definition Reference の [プロパティ](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files/class-assembly-definition-reference-importer.md) を編集することができます。

4. 新しい Assembly Definition Reference アセットを選択して、そのプロパティを **Inspector** で表示します。


   **Frame:**
   ![](/api/media?file=/engine/6000.0/media/images/asmdef-2.png)

5. Assembly Definition プロパティを設定して、対象の Assembly Definition アセットを参照します。

6. **Apply** をクリックします。

これで、参照されるアセンブリに、Assembly Definition Reference と同じフォルダーにあるすべてのスクリプトと、独自の Assembly Definition や Reference ファイルを持たないサブフォルダーにあるスクリプトが加えられます。Unity は、必要に応じて以前のアセンブリからスクリプトを削除します。

## プラットフォーム固有のアセンブリの作成##create-a-platform-specific-assembly

特定のプラットフォーム用のアセンブリを作成するには、以下を行います。

1. [Assembly Definition アセットを作成](#create-asmref) します。

2. 新しい Assembly Definition Reference アセットを選択して、そのプロパティを **Inspector** で表示します。


   **Frame:**
   ![](/api/media?file=/engine/6000.0/media/images/asmdef-3.png)

3. **Any Platform** オプションをオンにし、除外する特定のプラットフォームを選択します。または、Any Platform をオフにし、加える特定のプラットフォームを選択することもできます。

4. **Apply** をクリックします。

アセンブリは、プラットフォーム用にプロジェクトをビルドする際に、選択されたプラットフォームに応じて含まれます (または除外されます)。

## エディターコード用アセンブリの作成##create-an-assembly-for-editor-code

エディターアセンブリによって、エディタースクリプトを `Editor` という名のトップレベルのフォルダーだけではなく、プロジェクトのどこにでも置くことができます。

エディターコードを含むアセンブリをプロジェクトに作成するには、以下を行います。

1. エディタースクリプトが入っているフォルダーで [プラットフォーム専用のアセンブリを作成](#create-platform-specific) します。
2. エディタープラットフォームのみを加えます。
3. エディタースクリプトが入っているフォルダーが他にもある場合は、それらのフォルダーに [Assembly Definition Reference アセットを作成](#create-asmref) し、この Assembly Definition を参照するように設定します。

## テストアセンブリの作成##create-a-test-assembly

テストアセンブリは、Unity がテストが加えられていると想定するアセンブリです。テストをテストアセンブリに配置することには、以下の利点があります。

* ユーザーに配布するアプリケーションコードからテストコードが切り離されるため、必要なときにのみテストコードをコンパイルできます。
* テストアセンブリ内のすべてのテストが、[Test Framework パッケージ](/engine/6000.0/manual/tests-editortestsrunner.md) に自動的に表示され、**Test Runner** ウィンドウから実行できるようになります。

Unity は、アセンブリが **nunit.framework.dll** への [アセンブリ参照](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files/class-assembly-definition-importer.md#assembly-references) と、**UnityEngine.TestRunner** および **UnityEditor.TestRunner** への [アセンブリ定義参照](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files/class-assembly-definition-importer.md#asmdef-references) を持つ場合、そのアセンブリをテストアセンブリとして自動的に識別します。

Test Framework パッケージのインストールやテストアセンブリの作成方法については、Unity の [Test Framework のドキュメント](https://docs.unity3d.com/Packages/com.unity.test-framework@latest?subfolder=/manual/workflow-create-test-assembly.html) を参照してください。エディター UI を使用して、関連する参照が事前定義されたアセンブリ定義ファイルを作成できます。また、[Inspector ウィンドウを使用](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files/class-assembly-definition-importer.md) するか、[JSON ファイルを直接編集](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files/file-format.md) することで、参照をマニュアルで設定できます。

**注**:テストアセンブリは通常のビルドパイプラインの一部としてはコンパイルされません。そのため、テストアセンブリに配置されたコードは、標準の [プロジェクトビルド](/engine/6000.0/manual/unity-editor/editor-features/build-settings.md) から除外されます。テストアセンブリコードは、**Test Runner** ウィンドウから [プレイヤーで再生モードテストを実行](https://docs.unity3d.com/Packages/com.unity.test-framework@latest?subfolder=/manual/workflow-run-playmode-test-standalone.html) する場合にのみプレイヤーに含まれます。製品コードが予期せずプロジェクトビルドにコンパイルされない場合は、そのコードがテストアセンブリに含まれていないことをよく確認してください。

# 追加リソース##additional-resources

* [特殊フォルダーとスクリプトのコンパイル順](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/script-compile-order-folders.md)
