
กลับไปที่ Unity
DryreL Software Unity
Supabase Game Achievements
ความสำเร็จแบบออฟไลน์ก่อนสำหรับเกม Unity
ปลดล็อกความสำเร็จได้ทันทีแม้ออฟไลน์ แล้วซิงก์อย่างปลอดภัยเมื่อผู้เล่นกลับมาออนไลน์ มีบน GitHub แล้ว
มีบน GitHub
- 0 msการรอเครือข่ายเมื่อปลดล็อก
- 3Assembly และแกนหลักที่ไม่ขึ้นกับเอนจิน
- MITฟรีบน GitHub
ภาพรวม
มันทำอะไร
ความสำเร็จแบบออฟไลน์ก่อนสำหรับเกม: ปลดล็อกในเครื่องทันที บันทึกที่ทนต่อการแครช ซิงก์กับเซิร์ฟเวอร์เป็นชุดแบบ idempotent โอเวอร์เลย์แจ้งปลดล็อก (ไม่บังคับ) และ Unity Localization (ไม่บังคับ)
- Unity
- C#
- Supabase
- uGUI
- สัญญาอนุญาต MIT
วิธีการทำงาน
จากศูนย์สู่ใช้งานได้
- สร้างแค็ตตาล็อกรันสคริปต์ SQL สั้น ๆ หนึ่งครั้งต่อเกมใน SQL editor ของ Supabase
- เพิ่มแพ็กเกจติดตั้งจาก Git URL แล้ว bootstrap หนึ่งครั้งในซีนแรก
- ปลดล็อกจากเกมเพลย์เรียก TryUnlock ได้ผลทันที บันทึกในเครื่อง และซิงก์อยู่เบื้องหลัง
ฟีเจอร์
สร้างมาให้ใช้ได้เลย
- ออฟไลน์ก่อนTryUnlock ไม่รอเครือข่ายเลย การปลดล็อกเกิดทันทีและเก็บไว้ในเครื่อง
- บันทึกที่ทนต่อการแครชความคืบหน้าอยู่รอดแม้เกมแครชหรือถูกปิด
- ซิงก์เซิร์ฟเวอร์อย่างปลอดภัยการปลดล็อกส่งไป Supabase เป็นชุด และการซิงก์ซ้ำไม่ทำให้ข้อมูลซ้ำ
- โอเวอร์เลย์แจ้งปลดล็อกการแจ้งเตือนบนจอ (ไม่บังคับ) เมื่อปลดล็อกความสำเร็จ
- การแปลภาษารองรับ Unity Localization (ไม่บังคับ) สำหรับชื่อและคำอธิบาย
- แกนหลักที่ไม่ขึ้นกับเอนจินassembly หลักไม่มีการอ้างอิงเอนจิน จึงทดสอบได้ง่าย
- Achievement Dashboardหน้าต่างใน editor สำหรับจัดการความสำเร็จ ปรับสไตล์การแจ้งเตือนพร้อมพรีวิวสด และตั้งกฎโดยไม่ต้องเขียนโค้ด
- ความสำเร็จแบบมีเงื่อนไขตัวนับ เควสต์ และกฎ "ไม่พลาด" จากแท็บ Rules ของแดชบอร์ดหรือในโค้ด
- การแจ้งเตือนที่ไม่เกะกะเลื่อนเข้ามา เข้าคิวแทนการซ้อนทับ เล่นเสียง และไม่บล็อกการควบคุม
- รองรับ Dialogue Systemปลดล็อกจาก Dialogue System for Unity ได้ (ไม่บังคับ) พร้อมตัวอย่างการผสานรวม Patreon
เริ่มต้นใช้งาน
ติดตั้งและใช้งาน
- เปิด Package Managerใน Unity เลือก Window, Package Manager แล้วกดปุ่ม +
- เพิ่มจาก Git URLวาง URL ของ repository แล้วกด Add
จากนั้นในโค้ดของคุณ
- ปลดล็อก
AchievementManager.TryUnlock("first_blood")ทันทีและปลอดภัยแม้ออฟไลน์ ไม่รอเครือข่ายเลย - ตรวจสอบ
AchievementManager.HasUnlocked("first_blood")ดูว่าผู้เล่นมีอะไรอยู่แล้ว - ตอบสนอง
AchievementManager.AchievementUnlocked += ...รันโค้ดของคุณเองทุกครั้งที่ปลดล็อก - ซิงก์
await AchievementManager.SyncAsync()ไม่บังคับ: ใช้เฉพาะเมื่อต้องรู้ผลลัพธ์
ความต้องการ
ก่อนเริ่ม
- Unity 2022.3 ขึ้นไป (ทดสอบบน 6000.3)
- แพ็กเกจ Newtonsoft Json (com.unity.nuget.newtonsoft-json)
- uGUI
