Bắt đầu nhanh
Từ con số không đến yêu cầu đầu tiên trong khoảng năm phút.
Chú thích trong mã và tên API được giữ nguyên tiếng Anh để khớp với SDK.
1. Tạo dự án#
- Tạo tài khoản và đăng nhập vào bảng điều khiển.
- Tạo dự án và để tùy chọn Thêm nội dung mẫu Starter ở trạng thái bật. Tùy chọn này tạo bảng xếp hạng
coins, phần thưởngdaily_coinsvà một vài khóa cấu hình được dùng xuyên suốt tài liệu này. - Mở Khóa API để lấy Base URL, ID dự án và khóa client (
pk_live_…).
2. Cài đặt SDK#
- Tải Unity SDK từ trang dự án và nhập bằng Assets ▸ Import Package ▸ Custom Package…
- Mở Tools ▸ Majacloud ▸ Setup, dán Base URL, ID dự án và khóa client, rồi nhấn Test connection.
- Tùy chọn: mở Tools ▸ Majacloud ▸ Open Starter Sample và nhấn Play để thử mọi dịch vụ.
- Tải Godot SDK và giải nén vào dự án để có thư mục
addons/majacloud. - Bật Majacloud trong Project ▸ Project Settings ▸ Plugins. Thao tác này thêm autoload
Majacloud. - Điền Project Settings ▸ Majacloud, rồi chạy Project ▸ Tools ▸ Majacloud: Test connection.
- Thêm thẻ script bên dưới vào trang của bạn (hoặc sao chép
majacloud.jsvào dự án). - Tạo client với Base URL, ID dự án và khóa client. Phục vụ trang qua HTTPS (localhost vẫn dùng được khi phát triển).
<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>Mọi HTTP client đều dùng được. Gửi X-Project-ID và X-Client-Key trong mọi yêu cầu, và Authorization: Bearer <access_token> cho các lệnh gọi của người chơi.
3. Đăng nhập và gọi một dịch vụ#
Dán đoạn mã này vào game. Đoạn mã đăng nhập người chơi với tư cách khách, gửi một điểm số và đọc một giá trị cấu hình.
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. Kiểm tra bảng điều khiển#
Mở dự án trong bảng điều khiển: thẻ Bắt đầu chuyển sang Đã kết nối, và mọi yêu cầu xuất hiện trong Nhật ký kèm trạng thái, độ trễ và ID yêu cầu.
Bước tiếp theo#
- Người chơi và đăng nhập: tên hiển thị và liên kết tài khoản khách với email hoặc Google.
- Bảng xếp hạng: đặt lại, các kỳ và chống gian lận.
- Cấu hình từ xa: giá trị trực tiếp kèm xác minh chữ ký.
- Lưu trữ đám mây và phần thưởng.