Unity SDK

SDK หลักของ MAJACLOUD: C# สำหรับ Unity พร้อม API แบบ async/await และโครูทีน หน้าต่างตั้งค่า และตัวอย่าง Starter

คอมเมนต์ในโค้ดและชื่อ API ยังคงเป็นภาษาอังกฤษเพื่อให้ตรงกับ SDK

ในหน้านี้

ความต้องการของระบบ#

  • Unity 2021.3 LTS ขึ้นไป รวมถึง Unity 6 ใช้ได้ทั้ง Built-in, URP และ HDRP เพราะ SDK ไม่มีโค้ดด้านการเรนเดอร์
  • ใช้เฉพาะโมดูลในตัวของ Unity (UnityWebRequest, JSON, uGUI) ส่วนตัวอย่างใช้ TextMesh Pro
  • Editor, Windows, macOS, Linux, Android, iOS และ WebGL ไม่มีการใช้เธรด async/await จึงปลอดภัยบน WebGL และรองรับ IL2CPP

การติดตั้ง#

  1. ดาวน์โหลด .unitypackage จากหน้าโปรเจกต์หรือหน้า ดาวน์โหลด
  2. ใน Unity: Assets ▸ Import Package ▸ Custom Package… เลือกไฟล์แล้วนำเข้าทั้งหมด
  3. เมื่อ Unity ถามว่าจะนำเข้า 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 Keyคีย์สาธารณะที่ขึ้นต้นด้วย pk_live_ ใส่ไว้ในบิลด์ได้อย่างปลอดภัย

Test connection จะเก็บชื่อโปรเจกต์ แพ็กเกจ และคีย์สาธารณะของรีโมตคอนฟิก ซึ่งใช้ปักหมุดการตรวจสอบลายเซ็นไว้กับเซิร์ฟเวอร์ของคุณ

ห้ามใส่คีย์ลับ (sk_live_…) ไว้ในบิลด์เกมหรือหน้าเว็บ ทุกสิ่งที่ส่งถึงผู้เล่นสามารถถูกอ่านได้

ตั้งค่าจากโค้ด#

สร้างการตั้งค่าตอนรันไทม์ได้ เช่น ให้บิลด์สำหรับพัฒนาชี้ไปที่เซิร์ฟเวอร์ 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 และโครูทีน#

ทุกเมธอด 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 ซีนนี้ต้องใช้เนื้อหาที่สร้างจาก เพิ่มเนื้อหาตัวอย่าง Starter

พรีแฟบที่นำกลับมาใช้ได้ใน Samples/Starter/Prefabs: MajacloudLeaderboardView, MajacloudPlayerBadge และ MajacloudDailyRewardButton วางลงใน UI แล้วกำหนด slug หรือคีย์รางวัลใน Inspector

WebGL และมือถือ#

  • ให้บริการบิลด์ WebGL ผ่าน HTTPS เพราะเบราว์เซอร์จะบล็อกคำขอ http:// จากหน้า https:// และ API ส่งเฮดเดอร์ CORS ที่ WebGL ต้องการให้อยู่แล้ว
  • เบราว์เซอร์จะเปิดแท็บใหม่ได้เฉพาะเมื่อมีการคลิก สำหรับการเชื่อมบัญชีบน WebGL ให้เริ่มโฟลว์ไว้ก่อน แล้วเปิดหน้าเว็บภายในตัวจัดการการคลิกปุ่ม (ดู ผู้เล่น)
  • การทดสอบบนโทรศัพท์กับเซิร์ฟเวอร์ในคอมพิวเตอร์ของคุณก็ต้องใช้ HTTPS เช่นกัน (หรือเฉพาะระหว่างพัฒนา ให้ตั้ง ALLOW_INSECURE_HTTP บนเซิร์ฟเวอร์และอนุญาตการดาวน์โหลดผ่าน HTTP ใน Player Settings)
เมนูหน้าที่
Tools ▸ Majacloud ▸ Setupคีย์ การทดสอบการเชื่อมต่อ และการตั้งค่าการทำงาน
Tools ▸ Majacloud ▸ Open Starter Sampleเปิดซีน Starter
Tools ▸ Majacloud ▸ Rebuild Starter Sampleสร้างซีนและพรีแฟบ Starter ใหม่
Tools ▸ Majacloud ▸ Export .unitypackageส่งออก SDK เป็น .unitypackage

ค้นหาจากชื่อหน้า หัวข้อ และเนื้อหา

↑↓ เพื่อเลื่อน ↵ เพื่อเปิด Esc เพื่อปิด