快速入门
大约五分钟,从零到第一次请求。
代码注释和 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。