ドキュメント

​
​

Development

User Acquisition

Monetization

産業

Cloud Code

Open Unity Dashboard

Cloud Code

LiveOps
​
​
Cloud Code
  • Overview
  • Get started
  • Server authority
  • Cloud Code C# modules
    • Overview
    • Get started
    • Concepts
    • Tutorials
      • Run modules
      • Write modules
      • Development essentials
      • Automate deployment
      • Integrate services
        • Integrate with other Unity Services
        • Interact with cross-player data
        • Integrate with external services
        • Use Access Control
        • Send push messages
      • Advanced configuration
      • Use Cases
    • Reference
  • Cloud Code JavaScript scripts
  • Logging
  • Use-case samples
  • Privacy and consent
  1. Cloud Code

他の Unity サービスとのインテグレーション

Integrate Cloud Code with various Unity Gaming Services using C# Software Development Kits or REST APIs.
読み終わるまでの所要時間 11 分
最終更新 9ヶ月前

Cloud Code の可能性を最大限に引き出すために、C# Service SDK または REST API を使用して、Cloud Code をさまざまな Unity Gaming Services とシームレスに統合できます。
C# SDK は、よりシンプルで一貫性のある体験を提供し、Unity Gaming Services へのアクセスが便利になります。利用したい Unity Gaming Services のサービスにすでに Cloud Code C# SDK がある場合は、それを利用して、よりスムーズに統合できます。ただし、特定の UGS サービスに Cloud Code C# SDK がない場合は、REST API を通じて直接接続できる柔軟性があります。

UGS SDK を使用して UGS に接続する

NuGet から Cloud Code C# サービス SDK にアクセスするには、Com.Unity.Services.CloudCode.Apis を検索します。パッケージをインストールした後で、C# モジュール内でそれを使用して、他の Unity サービスに接続する方法を簡略化できます。
注
ノート: Cloud Code C# SDK のドキュメントは不完全です。詳細については、構造が似ている JavaScript のドキュメント を参照してください。IDE のオートコンプリートと intellisense 機能も利用してください。
Cloud Code C# SDK の完全なリストについては、利用可能なライブラリ のページを参照してください。

API クライアント

GameApiClient
クラスと
AdminApiClient
クラスはどちらも Cloud Code C# SDK のラッパーであり、Cloud Code モジュールから Unity Gaming Services (UGS) を呼び出すための簡略化されたインターフェースを提供します。ただし、それぞれ異なる目的のために用意されており、異なるユースケース向けに設計されています。

GameApiClient クラスの使用

GameApiClient
クラスは、UGS が提供する標準的なゲーミングサービスとの対話に特化して調整されています。これにより、ゲームデータの保存や取得など、プレイヤー固有の機能に関連する UGS サービスを Cloud Code モジュールから呼び出すプロセスが簡素化されます。提供されている例では、クラスを使用して Cloud Save 機能を操作し、プレイヤーデータを保存および取得する方法を示しています。
GameApiClient
インターフェースを使用するには、
GameApiClient
を シングルトン として
ICloudCodeSetup
コンフィギュレーターに登録します。
public class ModuleConfig : ICloudCodeSetup{ public void Setup(ICloudCodeConfig config) { config.Dependencies.AddSingleton(GameApiClient.Create()); }}

使用例

CloudCodeFunction
属性を設定する任意の関数で
GameApiClient
クラスを使用できます。
GameApiClient
クラスを使用するには、
IGameApiClient
インターフェースをパラメーターとして関数に渡します。
以下の例は、Cloud Save からデータを保存および読み取る方法を示します。
using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Logging;using Unity.Services.CloudCode.Apis;using Unity.Services.CloudCode.Core;using Unity.Services.CloudCode.Shared;using Unity.Services.CloudSave.Model;namespace ExampleModule;public class CloudSaveSdkSample{ private static ILogger<CloudSaveSdkSample> _logger; public CloudSaveSdkSample(ILogger<CloudSaveSdkSample> logger) { _logger = logger; } [CloudCodeFunction("SaveData")] public async Task SaveData(IExecutionContext context, IGameApiClient gameApiClient, string key, object value) { try { await gameApiClient.CloudSaveData.SetItemAsync(context, context.AccessToken, context.ProjectId, context.PlayerId, new SetItemBody(key, value)); } catch (ApiException ex) { _logger.LogError("Failed to save data. Error: {Error}", ex.Message); throw new Exception($"Failed to save data for playerId {context.PlayerId}. Error: {ex.Message}"); } } [CloudCodeFunction("GetData")] public async Task<object> GetData(IExecutionContext context, IGameApiClient gameApiClient, string key) { try { var result = await gameApiClient.CloudSaveData.GetItemsAsync(context, context.AccessToken, context.ProjectId, context.PlayerId, new List<string> { key }); return result.Data.Results.First().Value; } catch (ApiException ex) { _logger.LogError("Failed to get data. Error: {Error}", ex.Message); throw new Exception($"Failed to get data for playerId {context.PlayerId}. Error: {ex.Message}"); } } public class ModuleConfig : ICloudCodeSetup { public void Setup(ICloudCodeConfig config) { config.Dependencies.AddSingleton(GameApiClient.Create()); } }}

AdminApiClient クラスの使用

AdminApiClient
クラスは、UGS サービスの管理機能にアクセスするためのものです。Cloud Code モジュールから UGS 管理関連サービスを呼び出すための簡略化されたインターフェースを提供します。この例では、AdminApiClient を使用してリーダーボードを作成する方法を示し、管理タスク用のユーティリティを紹介します。
AdminApiClient
インターフェースを使用するには、
AdminApiClient
を シングルトン として
ICloudCodeSetup
コンフィギュレーターに登録します。
public class ModuleConfig : ICloudCodeSetup{ public void Setup(ICloudCodeConfig config) { config.Dependencies.AddSingleton(AdminApiClient.Create()); }}

使用例

GameApiClient
と同様に、
AdminApiClient
クラスは、CloudCodeFunction にアトリビュートする任意の関数で使用できます。
AdminApiClient
クラスを使用する場合は、
IAdminApiClient
インターフェースをパラメーターとして関数に渡します。
注
ノート: admin SDK で管理機能を使用するには、
Leaderboards Admin
プロジェクトロールを持つ有効なサービスアカウント認証情報が必要です。サービスアカウントを作成するには、管理者認証 を参照してください。
重要
注意: この Cloud Code の例では、ハードコードされたプレーンテキストのサービスアカウント認証情報の使用方法を示しています。シークレットが入った認証情報とコードを処理する場合は注意してください。セキュリティを確保するために、シークレットをバージョン管理にコミットしないことをお勧めします。認証情報が侵害された場合は、サービスアカウント認証情報をすぐに再生成できます。Cloud Code に認証情報を保存するためのより安全な方法を開発中です。
以下の例は、リーダーボードを作成する方法を示しています。
using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Logging;using Unity.Services.CloudCode.Apis;using Unity.Services.CloudCode.Apis.Admin;using Unity.Services.CloudCode.Core;using Unity.Services.CloudCode.Shared;using Unity.Services.Leaderboards.Admin.Model;namespace ExampleModule;public class ModuleMain{ private static ILogger<ModuleMain> _logger; public ModuleMain(ILogger<ModuleMain> logger) { _logger = logger; } [CloudCodeFunction("CreateLeaderboard")] public async Task CreateLeaderboard(IExecutionContext context, IAdminApiClient adminApiClient) { try { await adminApiClient.Leaderboards.CreateLeaderboardAsync( executionContext: context, serviceAccountKey: "YOUR_SERVICE_ACCOUNT_KEY", serviceAccountSecret: "YOUR_SERVICE_ACCOUNT_SECRET", projectId: Guid.Parse(context.ProjectId), environmentId: Guid.Parse(context.EnvironmentId), leaderboardIdConfig: new LeaderboardIdConfig( id: "new-leaderboard", name: "new-leaderboard", sortOrder: SortOrder.Asc, updateType: UpdateType.KeepBest ) ); } catch (ApiException ex) { _logger.LogError("Failed to create a Leaderboard. Error: {Error}", ex.Message); throw new Exception($"Failed to create a Leaderboard. Error: {ex.Message}"); } } public class ModuleConfig : ICloudCodeSetup { public void Setup(ICloudCodeConfig config) { config.Dependencies.AddSingleton(AdminApiClient.Create()); } }}

REST API を通じた UGS への接続

C# SDK がまだないサービスを使用する場合は、それらの REST API を通じてサービスに直接接続することもできます。

認証

ユースケースに応じて、
AccessToken
または
ServiceToken
を使用して API 呼び出しを認証できます。
ServiceToken
を使用して UGS Client API を認証する場合は、呼び出すサービスでサービストークンがサポートされていることを確認します。サービストークンをサポートするサービスとユースケースのリストについては、サービスとアクセストークンのサポート のドキュメントを参照してください。
注
ノート: 呼び出すサービスで Cloud Code C# SDK が提供される場合は、サービス API を直接呼び出すかわりに SDK を使用できます。詳細については、利用可能なライブラリ のリストを参照してください。

API の呼び出し

依存性注入 により、API インターフェースをシングルトンとして作成し、モジュールに挿入できます。
注
UGS API に加えて、外部 API をシングルトンとして実装することもできます。外部 API の実装方法の例については、外部サービスとのインテグレーション の方法に関するドキュメントを参照してください。

Copyright © 2026 Unity Technologies
法規事項プライバシーポリシークッキーDocumentation Terms of Use私の個人情報を販売または共有しないプライバシーに関する選択 (クッキー設定)

"Unity" の名称、Unity のロゴ、およびその他の Unity の商標は、米国およびその他の国における Unity Technologies またはその関係会社の商標または登録商標です (詳しくはこちら)。その他の名称またはブランドは該当する所有者の商標です。

一部のページは利便性向上のため機械翻訳を使用しており、内容に不正確な表現が含まれる場合があります。内容に齟齬または不一致が生じた場合は、英語版を正本とします。

  • このページ
    • UGS SDK を使用して UGS に接続する

      • API クライアント

      • GameApiClient クラスの使用

        • 使用例

      • AdminApiClient クラスの使用

        • 使用例

    • REST API を通じた UGS への接続

      • 認証

      • API の呼び出し


このページの問題を報告する