ドキュメント

サポート

Services

Services

主要概念

Understand key concepts to use Unity Gaming Services effectively.
読み終わるまでの所要時間 2 分最終更新 13日前

使用を始める前に、Unity Gaming Services の基盤となるいくつかの主要概念を理解しておきましょう。

サーバー側ゲームシステム

ライブゲーム、特にマルチプレイヤー形式のライブゲームでは、単一の場所でプレイヤーデータを管理できることが重要です。各プレイヤーのデバイスでそのプレイヤーのデータを管理するのではなく、すべてのプレイヤーデバイスと通信する中央サーバーで、ゲームに関する重要な決定を処理します。これにより、プレイヤーが不当に利益を得たり、本来は購入または獲得する必要があるリソースを取得したりできるチート行為を抑制できます。同様に、ライブイベントや競争機能をすべてのプレイヤーに公平に提供するには、ゲームによりクラウド内でデータや意思決定を管理する必要があります。 Unity Gaming Services では以下を行えます。
  • Cloud Save サービスを使用して、プレイヤーデータをクラウド内で安全に保持する。
  • Economy サービスおよび Cloud Code サービスを使用して、クラウド内で経済ロジックとゲームロジックを実行する。

非同期コード

他のオンラインサービスと同様に、Unity Gaming Services はすべて非同期操作に基づいています。したがって、クライアントからサービスへのリクエストが行われた場合でも、ゲームが応答を待って停止することはありません。サービスリクエストはバックグラウンドで処理され、その間もゲームプレイ、UI、およびアニメーションは継続できます。 このため、Unity Gaming Services ではタスクベース非同期パターン (TAP) を使用しており、C# で比較的容易に非同期コードを記述できます。Unity のコード作成に慣れている方であれば、非同期ロジックに使用できるコルーチンもご存じでしょう。コルーチンは、フォアグラウンドで行われている処理の制御には役立ちますが、バックグラウンドで行われる処理 (ウェブリクエストなど) を管理するには非同期タスクの方が適しています。 この UGS ドキュメントでは、さまざまなところで
async
および
await
というキーワードを使用します。
async
メソッドは、進行中のプロセスを表す
Task
を返します。
await
キーワードは、呼び出し元に対し、呼び出された
async
メソッドが終了するまで待機してから続行するよう指示します。
例えば、プレイヤーの通貨データを更新するには、以下のようなコードを使用します。
async Task RefreshPlayerWallet(){ // Use an animation to show the player something is happening. waitIndicator.gameObject.SetActive(true); // Download this player's currency statuses from UGS; // this asynchronous task won't interrupt the animation. var newWalletData = await EconomyManager.RefreshWalletData(); // Once you have the downloaded data, update your UI. walletView.Refresh(newWalletData); waitIndicator.gameObject.SetActive(false);}
詳細については、Microsoft の 非同期プログラミングに関する概念ガイド を参照してください。

SDK API と REST API

Unity Gaming Services にプログラムでアクセスする方法は次の 2 つです。
  • SDK (クライアント) API
  • REST (ウェブ) API

クライアント API

Unity ゲームエンジンで Unity Gaming Services を使用する場合、プロジェクトにクライアント API を使用することをお勧めします。 クライアント API を使用すると、Unity エディターのコンテキスト内で、サポート対象言語 (C#) から Unity Gaming Services API にアクセスしやすくなります。Unity 開発者は、Unity パッケージ で、サービスのすべての機能にアクセスできます。これらの SDK は Unity プロジェクトに直接インストールされ、必要な C# API ライブラリすべてを提供します。クライアント API により、ワークフローを簡略化し、作成する必要があるコードの量を大幅に抑えられます。

ウェブ API

Made with Unity 以外の開発者は、ウェブエンドポイントを介した Unity Gaming Services API、つまり REST API にアクセスできます。REST API はより柔軟性があり、開発者は好みの言語やゲームエンジンを使用してワークフローを自動化することができます。

オンボーディングへの影響

SDK API と REST API のどちらを使用する場合でも、Unity Dashboard で プロジェクトを作成 する必要があります。ただし、REST API を使用する場合、使用の準備ガイド のその後の手順が少し異なる可能性があります。これに該当するお客様は、オンボーディングの際に、サービス API ドキュメントのウェブサイト を参照することをお勧めします。