Unity Runtime からの呼び出し

Unity エディターで認証されたゲームクライアントから呼び出すことでスクリプトを実行します。

前提条件

Unity エディターで Cloud Code を使用するには、最初に Cloud Code SDK をインストールし、Unity Gaming Services プロジェクト を Unity エディターにリンクする必要があります。

プロジェクトのリンク

Unity Gaming Services プロジェクト を 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 にアクセスすることもできます。

SDK のインストール

Unity エディターの最新の Cloud Code パッケージをインストールするには、以下を行います。

  1. Unity エディターで、Window (ウィンドウ) > Package Manager (パッケージマネージャー) を開きます。
  2. Package Manager で、Unity Registry (Unity レジストリ) のリストビューを選択します。
  3. com.unity.services.cloudcode を検索するか、リストから Cloud Code パッケージを探します。
  4. このパッケージを選択し、Install (インストール) をクリックします。

Unity - マニュアル: Package Manager ウィンドウ を参照し、Unity Package Manager インターフェースについて理解してください。

SDK の設定

Cloud Code SDK は、公開されたスクリプトのみを呼び出すことができます。スクリプトの作成と公開の方法について詳しくは、スクリプトの作成 を参照してください。

Cloud Code SDK の使用を準備するには、以下を行います。

  1. 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 を初期化します。

典型的なワークフロー

Cloud Code SDK は、Unity エディター内で通常の MonoBehaviour C# スクリプトから呼び出すことができます。

  1. Unity Engine 内で C# MonoBehaviour スクリプトを作成します。Unity - マニュアル: スクリプトの作成と使用 を参照してください。
  2. スクリプト内で、Unity Authentication サービスを設定します。
  3. スクリプト内で、Cloud Code SDK の呼び出しを追加します。
  4. 新しく作成したスクリプトをゲームオブジェクトにアタッチします。エディターのスクリプト に関するドキュメントを参照してください。
  5. Play (再生) を選択し、プロジェクトを実行して Cloud Code の動作を確認します。

認証

プレイヤーが Cloud Code サービスにアクセスするには有効なプレイヤー ID とアクセストークンが必要です。いずれかの Cloud Code API を使用する前にプレイヤーを Authentication SDK で認証する必要があります。C# Monobehaviour スクリプトの内部で Authentication SDK を初期化することで、これを行うことができます。プレイヤーの認証 を参照してください。

Authentication SDK を初期化するには、C# Monobehaviour スクリプトに以下を追加します。

C#

await AuthenticationService.Instance.SignInAnonymouslyAsync();

使用の準備をするには、匿名認証の使用をお勧めします。以下の例は、認証パッケージを使用して匿名認証を開始し、Unity エディター内でスクリプトにプレイヤー ID を記録する方法を示しています。

C#

using Unity.Services.Authentication;
using System.Threading.Tasks;
using Unity.Services.Core;
using UnityEngine;

public class AuthenticationExample : MonoBehaviour
{
    internal async Task Awake()
    {
        await UnityServices.InitializeAsync();
        await SignInAnonymously();
    }

    private async Task SignInAnonymously()
    {
        AuthenticationService.Instance.SignedIn += () =>
        {
            var playerId = AuthenticationService.Instance.PlayerId;

            Debug.Log("Signed in as: " + playerId);
        };
        AuthenticationService.Instance.SignInFailed += s =>
        {
            // Take some action here...
            Debug.Log(s);
        };

        await AuthenticationService.Instance.SignInAnonymouslyAsync();
    }
}

Cloud Code スクリプトの呼び出し

新規に作成したスクリプトに認証を追加すると、Cloud Code スクリプトを呼び出す準備が整います。以下の名前空間を追加して、Cloud Code を Unity エディタープロジェクトに統合します。

C#

Using Unity.Services.CloudCode;

作成したスクリプトを実行するには、CloudCodeService.Instance の下にある CallEndpointAsync API クライアントメソッドを使用します。

C#

/// <summary>
/// Calls a Cloud Code function.
/// </summary>
/// <param name="function">Cloud Code function to call.</param>
/// <param name="args">Arguments for the cloud code function. Will be serialized to JSON.</param>
/// <typeparam name="TResult">Serialized from JSON returned by Cloud Code.</typeparam>
/// <returns>Serialized output from the called function.</returns>
/// <exception cref="CloudCodeException">Thrown if request is unsuccessful.</exception>
/// <exception cref="CloudCodeRateLimitedException">Thrown if the service returned rate limited error.</exception>
public async Task<TResult> CallEndpointAsync<TResult>(string function, Dictionary<string, object> args)

function パラメーターはスクリプトの名前であり、Cloud Code ダッシュボードの Details (詳細) タブにあります。

C# Monobehaviour スクリプトの完全なインテグレーション例

以下は、Authentication と Cloud Code の両方をスクリプトに統合する方法の完全な例です。

C#

using UnityEngine;
using Unity.Services.Authentication;
using Unity.Services.CloudCode;
using Unity.Services.Core;

public class RollDiceExample : MonoBehaviour
{
    // ResultType structure is the serialized response from the RollDice script in Cloud Code
    private class ResultType
    {
        public int Roll;
        public int Sides;
    }

    // Call this method to roll the dice (use a button)
    public async void CallMethod()
    {
        await UnityServices.InitializeAsync();
        // Sign in anonymously into the Authentication service
        if (!AuthenticationService.Instance.IsSignedIn) await AuthenticationService.Instance.SignInAnonymouslyAsync();

        // Call out to the Roll Dice script in Cloud Code
        var response = await CloudCodeService.Instance.CallEndpointAsync<ResultType>("RollDice", null);

        // Log the response of the script in console
        Debug.Log($"You rolled {response.Roll} / {response.Sides}");
    }
}

Cloud Code スクリプトからのレスポンスをお好みのタイプにシリアル化できます。Cloud Code SDK の詳細については、Cloud Code SDK API を確認してください。