ドキュメント

サポート

Cloud Code

手動ワークフロー

Create a C# module manually with control over the module deployment process.
読み終わるまでの所要時間 5 分最終更新 23日前

このセクションでは、プロジェクトで C# モジュールを作成するために必要なステップについて説明します。 Cloud Code モジュールの使用を準備するには、以下のステップに従う必要があります。
  1. .NET プロジェクトの作成:Cloud Code モジュールは、ゲームクライアントが呼び出すことのできるエンドポイントを公開する単純な .NET プロジェクトです。
  2. Cloud Code Authoring パッケージのインポート:Cloud Code Authoring パッケージをインストールして、呼び出せるエンドポイントを作成します。
  3. プロジェクト内部のモジュールエンドポイントの作成:ゲームクライアントから呼び出せるゲームロジックを定義します。
  4. コードのパッケージ化:プロジェクトのアセンブリを生成し、それらをアーカイブにパッケージ化します。
  5. プロジェクトのデプロイ:アーカイブを Cloud Code サービスにデプロイします。
  6. モジュールエンドポイントの呼び出し:ゲームクライアントからモジュールエンドポイントを呼び出します。

.NET プロジェクトの作成

Cloud Code モジュールは、ゲームクライアントが呼び出すことのできるエンドポイントを公開する単純な .NET プロジェクトです。使用の準備をするには、選択した IDE に新しい .NET プロジェクトを作成します。Cloud Code モジュールがどのように構造化されるかについては、モジュール構造 を参照してください。 以下のセクションでは、JetBrains Rider および Microsoft Visual Studio IDE でプロジェクトを作成する方法を示します。

JetBrains Rider

以下のステップに従って、JetBrains Rider に新しいプロジェクトを作成します。
  1. File (ファイル) > New (新規) を選択します。
  2. クラスライブラリ (.NET Core または .NET Framework) を選択します。
  3. モジュールに名前を付けます。
  4. Create (作成) を選択します。

Microsoft Visual Studio

以下のステップに従って、Microsoft Visual Studio に新しいプロジェクトを作成します。
  1. File (ファイル) > New Solution (新しいソリューション) を選択します。
  2. .Net クラスライブラリを選択します。
  3. Next (次へ) を選択します。
  4. モジュールに名前を付けます。
  5. Create (作成) を選択します。

Cloud Code Authoring パッケージのインポート

Cloud Code モジュールは .NET プロジェクトであるため、NuGet パッケージマネージャー を使用して依存関係を管理します。 Cloud Code モジュールでは、呼び出せるエンドポイントを作成できるように Cloud Code Authoring パッケージが必要です。これは、プロジェクトにインストールできる NuGet パッケージです。 以下のセクションは、以下の IDE でパッケージをインポートする方法を示します。

JetBrains Rider

以下のステップに従い、JetBrains Rider を使用して Cloud Code Authoring パッケージをインストールします。
  1. Tools (ツール) > NuGet > Show NuGet Packages (NuGet パッケージの表示) を選択します。
  2. Com.Unity.Services.CloudCode.Core
    を検索します。
  3. 最新バージョンをプロジェクトにインストールします。

Microsoft Visual Studio

以下のステップに従い、Microsoft Visual Studio を使用して Cloud Code Authoring パッケージをインストールします。
  1. プロジェクト > Manage NuGet Packages (NuGet パッケージの管理) を右クリックします。
  2. Com.Unity.Services.CloudCode.Core
    を検索します。
  3. Add Package (パッケージの追加) を選択します。

モジュールエンドポイントの作成

C# モジュール内にエンドポイントを作成するには、外部呼び出し可能な関数を作成し、
CloudCodeFunction
属性を設定して公開名を付けます。
関数名は異なっていても構わず、これによりゲームクライアントがすでに呼び出している関数を中断することなく後でコードをリファクタリングできます。 参照のために、以下の単純なモジュール関数の例を使用します。この例は、
name
という文字列パラメーターを受け取って文字列を返す
SayHello
というモジュールエンドポイントを作成します。
using Unity.Services.CloudCode.Core;namespace ExampleModule;public class MyModule{ [CloudCodeFunction("SayHello")] public string Hello(string name) { return $"Hello, {name}!"; }}

コードのパッケージ化

モジュールをデプロイする前に、コードをアーカイブにパッケージ化する必要があります。 このアーカイブには、Cloud Code サービスがモジュールを実行するために必要とするアセンブリが含まれている必要があります。 これらのアセンブリを生成するために プロジェクトを公開 できます。
linux-x64
ターゲットランタイムのアセンブリをビルドする必要があります。パフォーマンスを改善するには、
ReadyToRun
コンパイルを有効にします。
以下のステップに従って、アセンブリを生成するように IDE を設定します。

JetBrains Rider

JetBrains Rider IDE を使用してアセンブリを生成するには、以下のステップに従います。
  1. Run (実行) > Edit Configurations (設定の編集) を選択します。
  2. + を選択します。
  3. Publish to folder (フォルダーに公開) を選択します。
  4. 設定に名前を付けます。
  5. Target location (ターゲットの場所) を、ビルド出力を格納する場所に設定します。
  6. Release | Any CPU (リリース | 任意の CPU) 設定を選択します。
  7. linux-x64 ターゲットランタイムを選択します。
  8. (任意) Enable ReadyToRun compilation (ReadyToRun コンパイルの有効化) を有効にします。
  9. Apply (適用) を選択します。

Microsoft Visual Studio

Microsoft Visual Studio IDE を使用してアセンブリを生成するには、以下のステップに従います。
  1. ソリューションを右クリックしてから、Publish (公開) を選択します。
  2. 画面のステップに従って、ファイルをローカルに格納します。
  3. Show All Settings (すべての設定の表示) を選択します。
  4. ターゲットランタイムを linux-x64 に設定します。
  5. Save (保存) を選択します。
  6. Publish (公開) を選択します。

アセンブリの圧縮

デフォルトでは、公開プロセスはルートプロジェクトディレクトリの下の
bin/Release/net6.0/linux-x64/publish
パスにフォルダーを生成します。このフォルダーのコンテンツをアーカイブに圧縮する必要があります。
UGS CLI を使用してモジュールをデプロイする 場合は、アーカイブの拡張子を .ccm に変更することをお勧めします。 Unix システムでは、以下のコマンドを実行します。
zip ExampleModule.ccm *
Windows システムでは、以下のコマンドを実行します。
zip -r ExampleModule.ccm path/to/your/project/bin/Release/net6.0/linux-x64/publish/*

モジュールプロジェクトのデプロイ

モジュールエンドポイントをゲームクライアントからアクセス可能にするには、Cloud Code サービスにアーカイブをデプロイする必要があります。 モジュールデプロイの詳細については、モジュールの記述 を参照してください。 UGS CLI を使用してデプロイするには、アーカイブファイルの拡張子を .ccm に変更する必要があります。

UGS CLI の設定

以下のステップに従って、UGS CLI の使用を準備します。
  1. UGS CLI をインストール します。
  2. 以下のコマンドを使用して、プロジェクト ID と環境を設定します。
    ugs config set project-id <your-project-id>

    ugs config set environment-name <your-environment-name>
  3. Cloud Code環境管理 に必要なロールでサービスアカウントを設定します。認証の取得 を参照してください。

モジュールのデプロイ

モジュールをデプロイするには、以下のコマンドを実行します。
ugs deploy <path-to-ccm-file>

ゲームからのモジュール関数の呼び出し

モジュールをデプロイした後で、ゲームクライアントからモジュール関数を呼び出すことができます。

前提条件

Unity エディターで Cloud Code を使用するには、最初に Cloud Code SDK をインストールし、Unity Gaming Services プロジェクト を Unity エディターにリンクする必要があります。
プロジェクトのリンク
UGS プロジェクト ID は Unity Cloud Dashboard にあります。以下のステップに従って、Unity Gaming Services プロジェクト を Unity エディターにリンクします。
  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 にアクセスすることもできます。
SDK のインストール
Unity エディターの最新の Cloud Code パッケージをインストールするには、以下を行います。
  1. Unity エディターで、Window (ウィンドウ) > Package Manager (パッケージマネージャー) を開きます。
  2. Package Manager で、Unity Registry (Unity レジストリ) のリストビューを選択します。
  3. com.unity.services.cloudcode
    を検索するか、リストから Cloud Code パッケージを探します。
  4. このパッケージを選択し、Install (インストール) をクリックします。
SDK の設定
Cloud Code SDK の使用を準備するには、以下を行います。
  1. Unity Cloud Dashboard の Cloud Code ページでこのサービスが有効になっていることを確認します。
  2. Cloud Code と Authentication SDK の両方をインストールしたことを確認します。
  3. Edit (編集) > Project Settings (プロジェクト設定) > Services (サービス) を選択して、Unity エディター内からクラウドプロジェクトにサインインします。
  4. Unity エディターで新しい C# Monobehaviour スクリプトを作成します。Unity マニュアルの スクリプトの作成と使用 を参照してください。
  5. スクリプトで、await
    UnityServices.InitializeAsync()
    を使用して Core SDK を初期化します。
  6. スクリプトで、Authentication SDK を初期化します。
await AuthenticationService.Instance.SignInAnonymouslyAsync();

モジュール関数の呼び出し

ゲームクライアントからモジュール関数を呼び出すには、呼び出しを認証し、サービスの機能のいずれかを呼び出す前に Services Core SDK を初期化 し、モジュール関数を呼び出す必要があります。 ゲームクライアントを使用してモジュールを呼び出す方法の詳細については、Unity Runtime からのモジュールの実行 を参照してください。 以下のステップに従って、モジュール関数を呼び出します。
  1. Services Core SDK を初期化します。Cloud Code を呼び出す前に、Services Core 名前空間 (
    Unity.Services.Core
    ) をインポートすることによりゲームコード内で Unity Services を初期化し、
    InitializeAsync
    メソッドを呼び出します。
  2. 呼び出しの認証を行います。Cloud Code への各呼び出しは認証される必要があり、プレイヤーが Cloud Code サービスにアクセスするには有効なプレイヤー ID とアクセストークンが必要です。認証 を参照してください。
    SignInAnonymouslyAsync
    メソッドを呼び出して、匿名認証の使用の準備をすることをお勧めします。
  3. モジュール関数を呼び出します。Cloud Code SDK を使用して、
    CallEndpointModuleAsync
    メソッドを使用するモジュール関数を呼び出します。
インテグレーションのサンプル
以下は、ゲームクライアント内のモジュール
ExampleModule
からモジュール関数
SayHello
を呼び出す方法の例です。
C#
using System.Collections.Generic;using Unity.Services.Authentication;using Unity.Services.CloudCode;using Unity.Services.Core;using UnityEngine;public class TestModule : MonoBehaviour{ private async void Start() { // Initialize the Unity Services Core SDK await UnityServices.InitializeAsync(); // Authenticate by logging into an anonymous account await AuthenticationService.Instance.SignInAnonymouslyAsync(); try { // Call the function within the module and provide the parameters we defined in there string result = await CloudCodeService.Instance.CallModuleEndpointAsync("ExampleModule", "SayHello", new Dictionary<string, object> {{"name", "World"}}); Debug.Log(result); } catch (CloudCodeException exception) { Debug.LogException(exception); } }}