# Unity エディター

> Create and deploy Cloud Code modules using the Unity Editor and Deployment package.

Unity エディターを使用して、Cloud Code モジュールを作成およびデプロイできます。Cloud Code パッケージには、Cloud Code Authoring モジュールが含まれます。このモジュールにより、[Deployment パッケージ](https://docs.unity3d.com/Packages/com.unity.services.deployment@latest) を使用してモジュールを操作できます。

> **Note:**
>
> **ノート:** モジュールの Unity エディターインテグレーションをサポートするのは Unity 2021.3 以上のみです。

## 前提条件##prerequisites

Unity エディターで Cloud Code を使用するには、以下のステップに従います。

### プロジェクトのリンク##link-project

[Unity Gaming Services プロジェクト](/cloud/projects.md) を Unity エディターにリンクします。UGS プロジェクト ID は Unity Dashboard にあります。

1. Unity エディターで、**Edit** (編集) > **Project Settings** (プロジェクト設定) > **Services** (サービス) の順に選択します。

2. プロジェクトをリンクします。

   * プロジェクトに Unity プロジェクト ID がない場合:

     1. **Create a Unity Project ID** (Unity プロジェクト ID の作成) > **Organizations** (組織) の順に選択し、ドロップダウンメニューから組織を選択します。
     2. **Create project ID** (プロジェクト ID を作成) を選択します。

   * 既存の Unity プロジェクト ID がある場合:

     1. **Use an existing Unity project ID** (既存の Unity プロジェクト ID を使用) を選択します。
     2. ドロップダウンメニューから組織とプロジェクトを選択します。
     3. **Link project ID** (プロジェクト ID をリンク) を選択します。

Unity プロジェクト ID が表示され、プロジェクトが Unity サービスにリンクされました。

`UnityEditor.CloudProjectSettings.projectId` パラメーターを使用して Unity エディタースクリプトのプロジェクト ID にアクセスすることもできます。

### 必要なパッケージをインストールする##install-required-packages

エディター内で Cloud Code モジュールを作成するには、以下のパッケージをインストールする必要があります。

* Deployment
* Cloud Code (2.6.1 以降)

> **Note:**
>
> **ノート:** [Unity - マニュアル:Package Manager ウィンドウ](https://docs.unity3d.com/Manual/upm-ui.html) を参照し、Unity Package Manager インターフェースについて理解してください。

これらのパッケージをインストールして、使用可能なパッケージのリストに追加します。

1. **Window** (ウィンドウ) > **Package Manager** (パッケージマネージャー) を選択して、Unity エディターの Package Manager (パッケージマネージャー) ウィンドウを開きます。
2. Unity エディターの Package Manager (パッケージマネージャー) ウィンドウで、**+** (追加) > **Add package by name…** (名前でパッケージを追加…) を選択します。
3. `com.unity.services.deployment` を入力します。
4. **Add** (追加) を選択します。
5. これらのステップを `com.unity.services.cloudcode` について繰り返します。

### .NET のインストール##install-net

Cloud Code モジュールをエディターにデプロイするには、最初に [.NET](https://dotnet.microsoft.com/en-us/) をインストールする必要があります。

以下のステップに従って、エディターでデフォルトの .NET パスを設定します。

1. Unity エディターで、**Preferences** (環境設定) ウィンドウを開きます。
   * Windows の場合、**Edit** (編集) > **Preferences..** (環境設定..) > **Cloud Code** を選択します。
   * macOS の場合、**Unity** > **Settings..** (設定..) > **Cloud Code** を選択します。
2. **.NET development environment** (.NET 開発環境) セクションで、**.NET path** (.NET パス) を、これをインストールしたパスに変更します。
3. **Apply** (適用) を選択します。

## Deployment (デプロイ) ウィンドウのプレビュー##preview-the-deployment-window

Deployment (デプロイ) ウィンドウにより、Cloud Code モジュールをリモート環境にデプロイできます。Deployment パッケージをインストールした場合は、Unity エディターからそれにアクセスできます。

* Unity エディターバージョン 2021.3 以上の場合: **Window** (ウィンドウ) > **Deployment** (デプロイ) を選択します。
* Unity エディターバージョン 2022 以上の場合: **Services** (サービス) > **Deployment** (デプロイ) を選択します。

Deployment (デプロイ) ウィンドウを使用する前に、デプロイ先の環境を選択する必要があります。

1. Unity エディターで、[Deployment (デプロイ) ウィンドウ](#preview-the-deployment-window) を開きます。
2. Deployment (デプロイ) ウィンドウで **Deployment Settings** (デプロイ設定) を選択します。
3. 新しい Environments (環境) ウィンドウで、**Editor Environment** (エディター環境) ドロップダウンから環境を選択します。

> **Note:**
>
> > **Note:**
> >
> > **ノート**: Deployment (デプロイ) ウィンドウでは、他の Unity Gaming Services もサポートされます。Cloud Code モジュールが他のサービスに依存している場合は、変更を同時にデプロイできます。

詳細については、[Deployment (デプロイ) ウィンドウ](https://docs.unity3d.com/Packages/com.unity.services.deployment@latest/index.html?subfolder=/manual/deployment_window.html) に関するドキュメントを参照してください。

## Unity エディター内でのオーサリング##author-within-unity-editor

インストールした Cloud Code パッケージには、Cloud Code Authoring モジュールが含まれます。このモジュールにより、Unity エディターから直接 Cloud Code モジュールを作成してデプロイできます。

これを行うには、エディターでモジュールリファレンスファイルを作成し、モジュールプロジェクトにリンクします。設定すると、Deployment (デプロイ) ウィンドウにより、モジュールをリモート環境にデプロイできます。

### C# モジュールリファレンスファイルの作成##create-a-c-module-reference-file

使用の準備をするには、Cloud Code C# モジュールリファレンスファイルを作成します。このファイルは、デプロイしようとする C# モジュールプロジェクトを含むソリューションのリファレンスです。

1. Unity エディターで、Project (プロジェクト)を右クリックし、**Create** (作成) > **Services** (サービス) > **Cloud Code C# Module Reference** (Cloud Code C# モジュールリファレンス) を選択します。
2. 混乱を避けるため、モジュールと同様にモジュールリファレンスに名前を付けます。
3. **Enter** を押します。

> **Note:**
>
> > **Note:**
> >
> > **ノート**: デプロイしたモジュールは、ソリューションのメインプロジェクトと同じ名前になります。


**Frame:**
![](/api/media?file=/cloud-code/media/images/create-ref-file.png)

新しいモジュールリファレンスが Project ウィンドウと Deployment (デプロイ) ウィンドウに表示されます。モジュールリファレンスにアクセスするには、[Deployment (デプロイ) ウィンドウ](#preview-the-deployment-window) を開きます。

### モジュールのリンク##link-a-module

C# モジュールリファレンスをモジュールにリンクする必要があります。既存のソリューションをリンクするか、Unity エディターから新規に生成できます。

#### 新しいモジュールの生成##generate-a-new-module

モジュールリファレンスファイルを使用して、新しいモジュールを Deployment (デプロイ) ウィンドウで生成できます。生成されるモジュールには、モジュールの開発を開始できる必須の基本設定が含まれます。

1. Unity エディターの Project ウィンドウで、モジュールリファレンスファイルを選択します。
2. [Inspector](https://docs.unity3d.com/Manual/UsingTheInspector.html) (インスペクター) ウィンドウで、**Generate Solution** (ソリューションの生成) を選択します。

新しいモジュールを Deployment (デプロイ) ウィンドウで直接生成することもできます。

1. Unity エディターで、[Deployment (デプロイ) ウィンドウ](#preview-the-deployment-window) を開きます。
2. モジュールリファレンスファイルを右クリックし、**Generate Solution** (ソリューションの生成) を選択します。


**Frame:**
![](/api/media?file=/cloud-code/media/images/module-generate-solution.png)

これにより、生成されたモジュールはプロジェクトディレクトリのルートに配置されます。Cloud Code は、リファレンスファイル名を使用してデフォルトのソリューションパスを生成します。ソリューションファイル名は、Cloud Code がモジュールテンプレートを生成するために使用するソリューションパスです。

例えば、リファレンスファイル `test_module.ccmr` を呼び出す場合、デフォルトのソリューションパスは `../test_module` となり、ソリューションファイル `test_module.sln` の下にモジュールが作成されます。

#### 既存のモジュールのリンク##link-an-existing-module

別のオーサリング方法を使用して新しいモジュールを作成する場合は、[モジュールの記述](../write-modules) を参照してください。モジュールリファレンスにはデフォルトのソリューションパスがあります。既存のモジュールソリューションを指すようにこのパスを変更する必要があります。

1. Unity エディターの Project ウィンドウで、モジュールリファレンスファイルを選択します。
2. [Inspector](https://docs.unity3d.com/Manual/UsingTheInspector.html) ウィンドウで、既存のモジュールソリューションを指すように **Solution Path** (ソリューションパス) フィールドを変更します。

### バインディングの生成##generate-bindings

Unity エディターでタイプセーフのクライアントコードを生成できます。バインディングはモジュールリファレンスファイルから生成され、バインディングを使用してモジュールエンドポイントを呼び出すことができます。タイプセーフのクライアントでは、ゲームクライアントで使用される型とモジュールが受け取る型が一致することが保証され、シリアル化の問題が発生しません。

バインディングは以下の場所で生成できます。

* Inspector (インスペクター) ウィンドウでの生成:

  1. Unity エディターの Project ウィンドウで、モジュールリファレンスファイルを選択します。
  2. [Inspector](https://docs.unity3d.com/Manual/UsingTheInspector.html) (インスペクター) ウィンドウで、**Generate Bindings** (バインディングの生成) をクリックします。

* Deployment (デプロイ) ウィンドウでの生成:
  1. Unity エディターで、[**Deployment (デプロイ) ウィンドウ**](#preview-the-deployment-window) を開きます。
  2. Cloud Code モジュールリファレンスを右クリックし、**Generate Code Bindings** (コードバインディングの生成) を選択します。

* ツールバーでの生成:
  1. **Services** (サービス) > **CloudCode** に移動し、**Generate CloudCode Bindings** (CloudCode バインディングの生成) を選択します。
  2. これにより、既存のすべてのモジュールリファレンスに対するバインディングが生成されます。

* Project Settings (プロジェクト設定) での生成:
  1. Unity エディターで **Edit** (編集) > **Project Settings** (プロジェクト設定)に移動します。
  2. **Services** (サービス) > **Cloud Code** に移動し、**Generate All Module Bindings** (すべてのモジュールバインディングの生成) を選択します。
  3. これにより、既存のすべてのモジュールリファレンスに対するバインディングが生成されます。

Unity エディターによって、タイプセーフのクライアントコードが `Assets/CloudCode/GeneratedModuleBindings` ディレクトリ内に生成されます。

> **Note:**
>
> > **Note:**
> >
> > **ノート**: アセンブリの定義がある場合、生成されるアセンブリ定義の参照が必要になることがあります。`"Unity.Services.CloudCode.GeneratedBindings"` を asmdef のリファレンスに追加します。

生成されたバインディングを使用する方法については、[Unity Runtime でのモジュールの実行](../run-modules/unity-runtime#use-editor-bindings) を参照してください。

#### 制限##limits

バインディングの生成には以下の制限があります。

* 必須パラメーターとオプションパラメーターが区別されません。
* タプルは、パラメーターまたは戻り値としてサポートされていません。
* enum メンバーに対する明示的な値の定義はサポートされていません。バインディングの生成後には表示されなくなります。

### モジュールのデプロイ##deploy-modules

[Deployment (デプロイ) ウィンドウ](https://docs.unity3d.com/Packages/com.unity.services.deployment@latest/index.html?subfolder=/manual/deployment_window.html) を使用してモジュールをデプロイできます。Unity エディターで **Play** (再生) モードに入ったときに自動的にモジュールをデプロイすることもできます。

モジュールをデプロイするには、以下を行います。

1. Unity エディターで、[**Deployment (デプロイ) ウィンドウ**](#preview-the-deployment-window) を開きます。
2. Project (プロジェクト) ウィンドウで、モジュールリファレンスファイルを選択します。
3. Deployment (デプロイ) ウィンドウで **Deploy Selected** (選択したアイテムのデプロイ) を選択します。

> **Warning:**
>
> **重要**: デフォルトでは、デプロイはソリューションの `Release` ビルド設定に基づいて行われます。サイズを減らすため、この設定にはテストプロジェクトなど余分な内容を加えないことをお勧めします。ビルド設定の詳細については、[Rider](https://www.jetbrains.com/help/rider/Build_Configurations.html) または [Visual Studio](https://learn.microsoft.com/en-us/visualstudio/ide/understanding-build-configurations?view=vs-2022) のドキュメントを参照してください。

詳細については、[Deployment パッケージのマニュアル](https://docs.unity3d.com/Packages/com.unity.services.deployment@latest) を確認してください。

デプロイが成功すると、Project (プロジェクト) ウィンドウでモジュールリファレンスファイルの横に緑色のチェックマークが表示されます。

モジュールエンドポイントを呼び出すことで、デプロイに成功したことを確認できます。テンプレートモジュールには、`SayHello` というデフォルトのエンドポイントが含まれます。

モジュールエンドポイントを呼び出す方法については、[Unity ランタイムでのモジュールの実行](../run-modules/unity-runtime#calling-a-cloud-code-module-endpoint) を参照してください。
