Chuyển từ V1
V1 (các Manager của ProjectZ-CrossSDK, ProjectZ.Backend, Assets/_Game/Backend)
đã ngừng sử dụng. ProjectV Client V3 đã gỡ payload backend V1; game giờ chỉ
dùng presenter V3.
Khái niệm
| V1 | V3 |
|---|---|
[Inject] IXxxManager | [Inject] IProjectVXxxPresenter từ SilverTiger.ProjectV.Unity.Presentation.* |
IReadOnlyReactiveProperty<T>.Subscribe | SubscribeAsync(Action<ProjectVXxxSnapshot>) trả về Task<IDisposable> |
TResponse<T> (IsSuccess, Data, Message) | ProjectVXxxCommandResult (IsSuccess, Snapshot) |
event Action<T> cho hoàn tất/lỗi | Snapshot.Status và Snapshot.Error |
Bus toàn cục IEventSubscriber | Không có; đăng ký nhận (subscribe) presenter sở hữu dữ liệu đó |
SdkRuntime, ICrossSdk, provider, chuyển đổi UGS/Nakama | Nội bộ; một backend Nakama V3, chọn trong ProjectVSettings |
DLL rời trong Assets | Hai Git package, com.silvertiger.projectv và com.silvertiger.crosssdk, mỗi package pin vào một release tag |
RefreshAsync sau mỗi command (lệnh) | Không cần; các màn tự cập nhật sau command |
Từ Manager sang presenter
| Manager V1 | V3 |
|---|---|
ILoginManager | Authentication + Startup |
IVersionManager, IAppConfigManager, IBackendControlManager | Admission của Startup (Maintenance, UpdateRequired, ContractMismatch) |
IPlayerManager | Hồ sơ ở Lobby; đăng xuất và xoá tài khoản ở Account |
IPlayerStaminaManager | Stamina (thể lực) và đếm ngược ở Header; chi phí vào nhiệm vụ ở Campaign |
IInventoryManager | Tiền tệ ở Header; vật phẩm và UseInventoryItemAsync ở Character |
ICharacterManager, ISkillTreeManager | Character |
IShopManager | Shop |
IIAPManager | Gói (offer) store của Shop; IAP vẫn tắt cho tới khi commerce phía backend được cấu hình |
IMissionManager, IGameplayManager, IRewardManager (phần thưởng nhiệm vụ) | Campaign + Gameplay data |
IViewStateManager | Nội bộ trong SDK |
IAchievementManager, IBattlePassManager, ILeaderBoardManager, IFriendManager, IRealtimeNotificationManager, IAdsManager, IVehicleManager | Chưa có presenter V3. Hỏi team SDK trước khi làm các màn này |
ISettingsManager (cài đặt local) | Do game sở hữu; không thuộc SDK |
Phần thưởng đăng nhập hằng ngày (IRewardManager) | Chưa có presenter V3 |
Các pattern đã bỏ
- Mission coordinator phía Client, EXP journal và helper hiển thị phần thưởng: SDK sở hữu admission, quyết toán và phần thưởng (Gameplay data).
- Bảng alias cho ID vật phẩm: V3 dùng trực tiếp ID của server; ánh xạ chúng sang asset bằng một bảng tường minh.
- Tính phần thưởng, stamina hay chi phí nâng cấp trong Client.
- Gọi Nakama hoặc RPC từ code game.