Unity SDK

SDK chính của MAJACLOUD: C# cho Unity với API async/await và coroutine, cửa sổ thiết lập và mẫu Starter.

Chú thích trong mã và tên API được giữ nguyên tiếng Anh để khớp với SDK.

Trên trang này

Yêu cầu#

  • Unity 2021.3 LTS trở lên, bao gồm Unity 6. Built-in, URP và HDRP đều được hỗ trợ: SDK không chứa mã kết xuất đồ họa.
  • Chỉ dùng các module có sẵn của Unity (UnityWebRequest, JSON, uGUI). Mẫu Starter dùng TextMesh Pro.
  • Editor, Windows, macOS, Linux, Android, iOS và WebGL. SDK không dùng luồng, nên async/await an toàn trên WebGL. Tương thích IL2CPP.

Cài đặt#

  1. Tải file .unitypackage từ trang dự án hoặc trang tải xuống.
  2. Trong Unity: Assets ▸ Import Package ▸ Custom Package…, chọn file và nhập toàn bộ.
  3. Khi Unity hỏi có nhập TMP Essentials cho mẫu hay không, hãy đồng ý.

Mọi thứ nằm trong Assets/Majacloud: Runtime (SDK), Editor (công cụ thiết lập), Samples/Starter và Tests.

Kết nối dự án#

Tools ▸ Majacloud ▸ Setup (cũng có trong Project Settings ▸ Majacloud) ghi file Assets/Resources/MajacloudSettings.asset. SDK tự khởi tạo từ file này trước khi scene đầu tiên được tải.

TrườngGiá trị
Base URLĐịa chỉ của bản cài đặt này. https://majacloud.majanite.com
Project IDBảng điều khiển ▸ Khóa API.
Client KeyKhóa công khai bắt đầu bằng pk_live_. An toàn khi đưa vào bản build.

Test connection lưu tên dự án, gói và khóa công khai của cấu hình từ xa, nhờ đó việc xác minh chữ ký được ghim vào máy chủ của bạn.

Tuyệt đối không đưa khóa bí mật (sk_live_…) vào bản build game hay trang web. Mọi thứ gửi đến người chơi đều có thể bị đọc.

Cấu hình bằng mã#

Tạo cài đặt lúc chạy, ví dụ để trỏ các bản build phát triển tới máy chủ staging:

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 và coroutine#

Mọi phương thức async (…Async) đều có một phiên bản coroutine tương ứng nhận callback, dành cho mã không dùng 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");
}));

Mẫu Starter#

Samples/Starter/Scenes/MajacloudStarter.unity có năm tab: Leaderboard, Cloud save, Rewards, Config và Account. Scene này cần nội dung được tạo bởi Thêm nội dung mẫu Starter.

Các prefab tái sử dụng được nằm trong Samples/Starter/Prefabs: MajacloudLeaderboardView, MajacloudPlayerBadge và MajacloudDailyRewardButton. Kéo chúng vào UI và đặt slug hoặc khóa phần thưởng trong Inspector.

WebGL và di động#

  • Phục vụ bản build WebGL qua HTTPS: trình duyệt chặn yêu cầu http:// từ trang https://. API đã gửi sẵn các header CORS mà WebGL cần.
  • Trình duyệt chỉ mở tab mới khi có cú nhấp chuột. Để liên kết tài khoản trên WebGL, hãy bắt đầu luồng trước rồi mở trang trong trình xử lý sự kiện của nút (xem Người chơi).
  • Kiểm thử trên điện thoại với máy chủ chạy trên máy tính của bạn cũng cần HTTPS (hoặc, chỉ khi phát triển, bật ALLOW_INSECURE_HTTP trên máy chủ và cho phép tải qua HTTP trong Player Settings).
Mục menuChức năng
Tools ▸ Majacloud ▸ SetupKhóa, kiểm tra kết nối và các cài đặt hành vi.
Tools ▸ Majacloud ▸ Open Starter SampleMở scene Starter.
Tools ▸ Majacloud ▸ Rebuild Starter SampleTạo lại scene Starter và các prefab.
Tools ▸ Majacloud ▸ Export .unitypackageXuất SDK thành file .unitypackage.

Tìm theo tiêu đề trang, đề mục và nội dung.

↑↓ để di chuyển ↵ để mở Esc để đóng