クイックスタート
ゼロから最初のリクエストまで、約 5 分で完了します。
コードのコメントと API 名は、SDK と一致させるため英語のままにしています。
1. プロジェクトを作成する#
- アカウントを作成し、ダッシュボードにログインします。
- プロジェクトを作成し、Starter サンプルコンテンツを追加をオンのままにします。これにより、このドキュメント全体で使用する
coinsリーダーボード、daily_coins報酬、いくつかのコンフィグキーが作成されます。 - API キーを開くと、ベース URL、プロジェクト ID、クライアントキー(
pk_live_…)を確認できます。
2. SDK をインストールする#
- プロジェクトページから Unity SDK をダウンロードし、Assets ▸ Import Package ▸ Custom Package… でインポートします。
- Tools ▸ Majacloud ▸ Setup を開き、ベース URL、プロジェクト ID、クライアントキーを貼り付けて Test connection を押します。
- 任意:Tools ▸ Majacloud ▸ Open Starter Sample を開いて Play を押すと、すべてのサービスを試せます。
- Godot SDK をダウンロードし、
addons/majacloudができるようにプロジェクト内に解凍します。 - Project ▸ Project Settings ▸ Plugins で Majacloud を有効にします。これにより
Majacloudオートロードが追加されます。 - Project Settings ▸ Majacloud の各項目を入力し、Project ▸ Tools ▸ Majacloud: Test connection を実行します。
- 次の script タグをページに追加します(または
majacloud.jsをプロジェクトにコピーします)。 - ベース URL、プロジェクト ID、クライアントキーでクライアントを作成します。ページは HTTPS で配信してください(開発中は localhost でも問題ありません)。
<script src="https://majacloud.majanite.com/downloads/majacloud-web-1.0.0.js"></script>
<script type="module">
const mc = Majacloud.createClient({ baseUrl: 'https://majacloud.majanite.com', projectId: '<project id>', clientKey: 'pk_live_…' });
</script>任意の HTTP クライアントを使用できます。すべてのリクエストに X-Project-ID と X-Client-Key を付け、プレイヤー向けの呼び出しには Authorization: Bearer <access_token> も付けます。
3. ログインしてサービスを呼び出す#
次のコードをゲームに貼り付けます。プレイヤーをゲストとしてログインさせ、スコアを送信し、コンフィグの値を読み取ります。
using MajacloudSdk;
using UnityEngine;
public class GameStart : MonoBehaviour
{
private async void Start()
{
// Restores the saved session or creates a guest
var signIn = await Majacloud.Auth.SignInAnonymouslyAsync();
if (!signIn.Ok)
{
Debug.LogWarning(signIn.Error.Message);
return;
}
Debug.Log("Hello " + signIn.Value.DisplayName);
await Majacloud.Leaderboards.SubmitScoreAsync("coins", 120);
int damage = Majacloud.RemoteConfig.GetInt("enemy_damage", 25);
}
}extends Node
func _ready() -> void:
# Restores the saved session or creates a guest
var signed_in := await Majacloud.auth.sign_in_anonymously()
if not signed_in.ok:
push_warning(signed_in.message)
return
print("Hello ", signed_in.value.display_name)
await Majacloud.leaderboards.submit_score("coins", 120)
var damage := Majacloud.remote_config.get_int("enemy_damage", 25)const mc = Majacloud.createClient({
baseUrl: 'https://majacloud.majanite.com',
projectId: '<project id>',
clientKey: 'pk_live_…',
});
// Restores the saved session or creates a guest
const signIn = await mc.auth.signInAnonymously();
if (!signIn.ok) throw new Error(signIn.error.message);
console.log('Hello ' + signIn.value.display_name);
await mc.leaderboards.submitScore('coins', 120);
await mc.remoteConfig.fetch();
const damage = mc.remoteConfig.getInt('enemy_damage', 25);export PROJECT_ID="<project id>" CLIENT_KEY="pk_live_…"
# Create a guest; keep access_token and refresh_token from the response
curl -X POST https://majacloud.majanite.com/v1/auth/guest -H "X-Project-ID: $PROJECT_ID" -H "X-Client-Key: $CLIENT_KEY" \
-H "Content-Type: application/json" -d '{}'
export TOKEN="<access_token>"
curl -X POST https://majacloud.majanite.com/v1/leaderboards/coins/scores -H "X-Project-ID: $PROJECT_ID" -H "X-Client-Key: $CLIENT_KEY" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" -d '{"score": 120}'4. ダッシュボードを確認する#
ダッシュボードでプロジェクトを開くと、はじめにカードが接続済みに切り替わり、すべてのリクエストがステータス、レイテンシ、リクエスト ID とともにログに表示されます。
次のステップ#
- プレイヤーとログイン:表示名、ゲストとメールアドレスや Google との連携。
- リーダーボード:リセット、期間、チート対策。
- リモートコンフィグ:署名検証付きのライブ値。
- クラウドセーブと報酬。