กลับไปที่ Unity

DryreL Software Unity

Supabase Game Achievements

ความสำเร็จแบบออฟไลน์ก่อนสำหรับเกม Unity

ปลดล็อกความสำเร็จได้ทันทีแม้ออฟไลน์ แล้วซิงก์อย่างปลอดภัยเมื่อผู้เล่นกลับมาออนไลน์ มีบน GitHub แล้ว

มีบน GitHub

  • 0 msการรอเครือข่ายเมื่อปลดล็อก
  • 3Assembly และแกนหลักที่ไม่ขึ้นกับเอนจิน
  • MITฟรีบน GitHub

ภาพรวม

มันทำอะไร

ความสำเร็จแบบออฟไลน์ก่อนสำหรับเกม: ปลดล็อกในเครื่องทันที บันทึกที่ทนต่อการแครช ซิงก์กับเซิร์ฟเวอร์เป็นชุดแบบ idempotent โอเวอร์เลย์แจ้งปลดล็อก (ไม่บังคับ) และ Unity Localization (ไม่บังคับ)

  • Unity
  • C#
  • Supabase
  • uGUI
  • สัญญาอนุญาต MIT

วิธีการทำงาน

จากศูนย์สู่ใช้งานได้

  1. สร้างแค็ตตาล็อกรันสคริปต์ SQL สั้น ๆ หนึ่งครั้งต่อเกมใน SQL editor ของ Supabase
  2. เพิ่มแพ็กเกจติดตั้งจาก Git URL แล้ว bootstrap หนึ่งครั้งในซีนแรก
  3. ปลดล็อกจากเกมเพลย์เรียก TryUnlock ได้ผลทันที บันทึกในเครื่อง และซิงก์อยู่เบื้องหลัง

ฟีเจอร์

สร้างมาให้ใช้ได้เลย

  • ออฟไลน์ก่อนTryUnlock ไม่รอเครือข่ายเลย การปลดล็อกเกิดทันทีและเก็บไว้ในเครื่อง
  • บันทึกที่ทนต่อการแครชความคืบหน้าอยู่รอดแม้เกมแครชหรือถูกปิด
  • ซิงก์เซิร์ฟเวอร์อย่างปลอดภัยการปลดล็อกส่งไป Supabase เป็นชุด และการซิงก์ซ้ำไม่ทำให้ข้อมูลซ้ำ
  • โอเวอร์เลย์แจ้งปลดล็อกการแจ้งเตือนบนจอ (ไม่บังคับ) เมื่อปลดล็อกความสำเร็จ
  • การแปลภาษารองรับ Unity Localization (ไม่บังคับ) สำหรับชื่อและคำอธิบาย
  • แกนหลักที่ไม่ขึ้นกับเอนจินassembly หลักไม่มีการอ้างอิงเอนจิน จึงทดสอบได้ง่าย
  • Achievement Dashboardหน้าต่างใน editor สำหรับจัดการความสำเร็จ ปรับสไตล์การแจ้งเตือนพร้อมพรีวิวสด และตั้งกฎโดยไม่ต้องเขียนโค้ด
  • ความสำเร็จแบบมีเงื่อนไขตัวนับ เควสต์ และกฎ "ไม่พลาด" จากแท็บ Rules ของแดชบอร์ดหรือในโค้ด
  • การแจ้งเตือนที่ไม่เกะกะเลื่อนเข้ามา เข้าคิวแทนการซ้อนทับ เล่นเสียง และไม่บล็อกการควบคุม
  • รองรับ Dialogue Systemปลดล็อกจาก Dialogue System for Unity ได้ (ไม่บังคับ) พร้อมตัวอย่างการผสานรวม Patreon

เริ่มต้นใช้งาน

ติดตั้งและใช้งาน

  1. เปิด Package Managerใน Unity เลือก Window, Package Manager แล้วกดปุ่ม +
  2. เพิ่มจาก 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