Quay lại Unity

DryreL Software Unity

Supabase Game Achievements

Thành tựu ưu tiên ngoại tuyến cho game Unity

Mở khóa thành tựu tức thì, kể cả khi ngoại tuyến, và đồng bộ an toàn khi người chơi trực tuyến trở lại. Đã có trên GitHub.

Có trên GitHub

  • 0 msChờ mạng khi mở khóa
  • 3Assembly, lõi không phụ thuộc engine
  • MITMiễn phí trên GitHub

Tổng quan

Nó làm gì

Thành tựu ưu tiên ngoại tuyến cho game: mở khóa cục bộ tức thì, lưu an toàn khi crash, đồng bộ máy chủ theo lô và idempotent, lớp phủ thông báo mở khóa tùy chọn và Unity Localization tùy chọn.

  • Unity
  • C#
  • Supabase
  • uGUI
  • Giấy phép MIT

Cách hoạt động

Từ con số không đến chạy được

  1. Tạo danh mụcChạy một đoạn SQL ngắn một lần cho mỗi game trong trình soạn SQL của Supabase.
  2. Thêm packageCài từ Git URL và khởi tạo một lần trong scene đầu tiên.
  3. Mở khóa từ gameplayGọi TryUnlock. Nó tức thì, lưu cục bộ và đồng bộ ở nền.

Tính năng

Làm ra để cứ thế hoạt động

  • Ngoại tuyến trướcTryUnlock không bao giờ chờ mạng; việc mở khóa diễn ra tức thì và được lưu cục bộ.
  • Lưu an toàn khi crashTiến trình vẫn còn sau khi crash hay tắt game.
  • Đồng bộ máy chủ an toànCác lần mở khóa được gửi lên Supabase theo lô, và đồng bộ lại không bao giờ tạo bản trùng.
  • Lớp phủ mở khóaMột thông báo tùy chọn trên màn hình khi mở khóa thành tựu.
  • Bản địa hóaHỗ trợ tùy chọn Unity Localization cho tiêu đề và mô tả.
  • Lõi không phụ thuộc engineAssembly lõi không tham chiếu engine, nên dễ kiểm thử.
  • Achievement DashboardMột cửa sổ editor để quản lý thành tựu, đổi giao diện thông báo với xem trước trực tiếp và thiết lập quy tắc không cần code.
  • Thành tựu có điều kiệnBộ đếm, nhiệm vụ và quy tắc "không thất bại", từ thẻ Rules của dashboard hoặc trong code.
  • Thông báo không cản đườngTrượt vào, xếp hàng thay vì chồng lên nhau, phát âm thanh và không bao giờ chặn thao tác.
  • Hỗ trợ Dialogue SystemMở khóa tùy chọn từ Dialogue System for Unity, kèm một mẫu tích hợp Patreon.

Bắt đầu

Cài đặt và sử dụng

  1. Mở Package ManagerTrong Unity chọn Window, Package Manager, rồi nút +.
  2. Thêm từ Git URLDán URL của repository và nhấn Add.

Rồi trong code của bạn

  • Mở khóaAchievementManager.TryUnlock("first_blood")Tức thì và an toàn khi ngoại tuyến. Không bao giờ chờ mạng.
  • Kiểm traAchievementManager.HasUnlocked("first_blood")Biết người chơi đã có những gì.
  • Phản hồiAchievementManager.AchievementUnlocked += ...Chạy code của riêng bạn ở mỗi lần mở khóa.
  • Đồng bộawait AchievementManager.SyncAsync()Tùy chọn: chỉ khi bạn cần biết kết quả.

Yêu cầu

Trước khi bạn bắt đầu

  • Unity 2022.3 trở lên (đã thử trên 6000.3)
  • Package Newtonsoft Json (com.unity.nuget.newtonsoft-json)
  • uGUI