ドキュメント

サポート

Cloud Code

Unity Runtime からの呼び出し

Invoke scripts from an authenticated game client in the Unity Editor.
読み終わるまでの所要時間 3 分最終更新 23日前

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

前提条件

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

プロジェクトのリンク

Unity Gaming Services プロジェクト を Unity エディターにリンクします。UGS プロジェクト ID は Unity Cloud 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 (インストール) をクリックします。

SDK の設定

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

典型的なワークフロー

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

認証

プレイヤーが Cloud Code サービスにアクセスするには有効なプレイヤー ID とアクセストークンが必要です。いずれかの Cloud Code API を使用する前にプレイヤーを Authentication SDK で認証する必要があります。C# Monobehaviour スクリプトの内部で Authentication SDK を初期化することで、これを行うことができます。[プレイヤーの認証](../authentication.mdx#authenticate players) を参照してください。 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
パラメーターがスクリプトの名前であることに注意します。スクリプトの名前を Unity Cloud Dashboard で見つけるには、Cloud Code を開き、Scripts (スクリプト) タブを選択します。

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

以下のコードを使用して、
diceSides
integer パラメーターが指定された
RollDice
スクリプトを公開できます。

JavaScript

const _ = require("lodash-4.17");module.exports = async ({ params, context, logger }) => { const roll = rollDice(params.diceSides); if (roll > params.diceSides) { // Log an error message with information about the exception logger.error("The roll is greater than the number of sides: " + roll); // Return an error back to the client throw Error("Unable to roll dice!"); } return { sides: params.diceSides, roll: roll, };};function rollDice(sides) { return _.random(1, sides);}
以下は、Authentication と Cloud Code サービスの両方をスクリプトに統合する方法の完全な例です。
using System.Collections.Generic;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", new Dictionary<string, object>( ) { { "diceSides", 6 } }); // Log the response of the script in console Debug.Log($"You rolled {response.Roll} / {response.Sides}"); }}
スクリプトを実行するには、Unity エディターでゲームオブジェクトにアタッチしてから、Play (再生) を選択します。 以下のコードを
Start()
メソッドに加えると、
CallMethod()
メソッドを呼び出すことができます。
public void Start(){ CallMethod();}
Cloud Code スクリプトからのレスポンスをお好みのタイプにシリアル化できます。Cloud Code SDK の詳細については、Cloud Code SDK API を確認してください。