主要概念
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 ドキュメントでは、さまざまなところでasyncawaitasyncTaskawaitasync詳細については、Microsoft の 非同期プログラミングに関する概念ガイド を参照してください。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);}
SDK API と REST API
Unity Gaming Services にプログラムでアクセスする方法は次の 2 つです。- SDK (クライアント) API
- REST (ウェブ) API