Unity SDK
MAJACLOUD のメイン SDK です。async/await とコルーチンの API、セットアップウィンドウ、Starter サンプルを備えた Unity 向けの C# SDK です。
コードのコメントと API 名は、SDK と一致させるため英語のままにしています。
動作要件#
- Unity 2021.3 LTS 以降(Unity 6 を含む)。SDK にはレンダリング関連のコードがないため、Built-in、URP、HDRP のいずれでも動作します。
- 使用するのは Unity の組み込みモジュール(UnityWebRequest、JSON、uGUI)のみです。サンプルでは TextMesh Pro を使用します。
- エディター、Windows、macOS、Linux、Android、iOS、WebGL に対応しています。スレッドを使用しないため、WebGL でも async/await を安全に使えます。IL2CPP にも対応しています。
インストール#
- プロジェクトページまたはダウンロードページから
.unitypackageをダウンロードします。 - Unity で Assets ▸ Import Package ▸ Custom Package… を選び、ファイルを選択してすべてインポートします。
- サンプル用に TMP Essentials のインポートを求められたら、承認します。
すべてのファイルは Assets/Majacloud 内にあります:Runtime(SDK 本体)、Editor(セットアップツール)、Samples/Starter、Tests。
プロジェクトを接続する#
Tools ▸ Majacloud ▸ Setup(Project Settings ▸ Majacloud からも開けます)で Assets/Resources/MajacloudSettings.asset が作成されます。SDK は、最初のシーンが読み込まれる前にこのアセットを使って自動的に初期化されます。
| フィールド | 値 |
|---|---|
| Base URL | このサーバーのアドレスです。 https://majacloud.majanite.com |
| Project ID | ダッシュボード ▸ API キー。 |
| Client Key | pk_live_ で始まる公開キーです。ビルドに含めても安全です。 |
Test connection を押すと、プロジェクト名、プラン、リモートコンフィグの公開鍵が保存されます。この公開鍵によって、署名検証の対象があなたのサーバーに固定されます。
sk_live_…)は、ゲームのビルドや Web ページに絶対に含めないでください。プレイヤーに配布したものは、すべて読み取られる可能性があります。コードから設定する#
実行時に設定を作成することもできます。たとえば、開発ビルドをステージングサーバーに接続する場合は次のようにします。
// Switch environments from code (e.g. a staging server in development builds)
var settings = ScriptableObject.CreateInstance<MajacloudSettings>();
settings.Configure("https://staging.yourstudio.com", "<project id>", "pk_live_…");
Majacloud.Initialize(settings);async とコルーチン#
すべての非同期メソッド(…Async)には、コールバックを受け取るコルーチン版があります。async/await を使わないコードで利用できます。
// Every async method has a coroutine version with a callback
StartCoroutine(Majacloud.Leaderboards.GetTop("coins", 10, result =>
{
if (result.Ok) Debug.Log(result.Value.Total + " players");
}));Starter サンプル#
Samples/Starter/Scenes/MajacloudStarter.unity には、Leaderboard、Cloud save、Rewards、Config、Account の 5 つのタブがあります。Starter サンプルコンテンツを追加 で作成されるコンテンツを前提としています。
Samples/Starter/Prefabs には、再利用できるプレハブ MajacloudLeaderboardView、MajacloudPlayerBadge、MajacloudDailyRewardButton があります。UI に配置し、インスペクターでスラッグまたは報酬キーを設定してください。
WebGL とモバイル#
- WebGL ビルドは HTTPS で配信してください。ブラウザは
https://ページからのhttp://リクエストをブロックします。WebGL に必要な CORS ヘッダーは、API がすでに送信しています。 - ブラウザは、クリック操作からしか新しいタブを開きません。WebGL でアカウント連携を行う場合は、先にフローを開始してから、ボタンのハンドラー内でページを開いてください(プレイヤーを参照)。
- スマートフォンから PC 上のサーバーに接続してテストする場合も HTTPS が必要です(開発時に限り、サーバーで
ALLOW_INSECURE_HTTPを設定し、Player Settings で HTTP ダウンロードを許可する方法もあります)。
エディターメニュー#
| メニュー項目 | 機能 |
|---|---|
Tools ▸ Majacloud ▸ Setup | キー、接続テスト、動作の設定。 |
Tools ▸ Majacloud ▸ Open Starter Sample | Starter シーンを開きます。 |
Tools ▸ Majacloud ▸ Rebuild Starter Sample | Starter シーンとプレハブを再生成します。 |
Tools ▸ Majacloud ▸ Export .unitypackage | SDK を .unitypackage としてエクスポートします。 |