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 にも対応しています。

インストール#

  1. プロジェクトページまたはダウンロードページから .unitypackage をダウンロードします。
  2. Unity で Assets ▸ Import Package ▸ Custom Package… を選び、ファイルを選択してすべてインポートします。
  3. サンプル用に 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 Keypk_live_ で始まる公開キーです。ビルドに含めても安全です。

Test connection を押すと、プロジェクト名、プラン、リモートコンフィグの公開鍵が保存されます。この公開鍵によって、署名検証の対象があなたのサーバーに固定されます。

シークレットキー(sk_live_…)は、ゲームのビルドや Web ページに絶対に含めないでください。プレイヤーに配布したものは、すべて読み取られる可能性があります。

コードから設定する#

実行時に設定を作成することもできます。たとえば、開発ビルドをステージングサーバーに接続する場合は次のようにします。

C#
// 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 を使わないコードで利用できます。

C#
// 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 SampleStarter シーンを開きます。
Tools ▸ Majacloud ▸ Rebuild Starter SampleStarter シーンとプレハブを再生成します。
Tools ▸ Majacloud ▸ Export .unitypackageSDK を .unitypackage としてエクスポートします。

ページタイトル、見出し、本文を検索します。

↑↓ で移動 ↵ で開く Esc で閉じる