Skip to content

P1 Unity: feat(attributes): 完整实现客户端玩家属性系统 #50

Description

@AlianBlank

目的

一次性完成 Unity 客户端玩家属性系统配套实现,消费服务端属性快照和增量变化,并提供客户端缓存、事件和最小展示验证。

原因

服务端属性系统由 GameFrameX.Server#88 统一实现并保持权威。Unity 侧不需要拆成多个 Orca 扫描任务,保留一个客户端主任务即可完成客户端闭环和一次性验收。

对应服务端任务

  • GameFrameX.Server#88 P1 Server: feat(attributes): 完整实现玩家属性系统端到端闭环

合并来源

本任务吸收以下客户端拆分任务的全部范围:

本次范围

  • 明确 Unity 侧只消费服务端属性快照和增量变化,不拥有权威属性计算。
  • 增加与服务端协议一致的 AttributeType 或协议生成等价类型映射。
  • 增加玩家属性缓存模型,支持快照覆盖和单项增量更新。
  • 核心属性值使用 long 或协议生成等价整数类型保存,不使用 float 作为核心存储。
  • 登录后接收属性快照,重连/重新登录时覆盖旧缓存。
  • 属性增量消息更新对应属性,不影响未变化属性。
  • 提供统一属性读取入口和客户端属性变化事件。
  • 值未变化时不重复派发事件。
  • 增加最小玩家属性展示入口或调试面板,完成 Server -> Unity 的端到端验证。

不在本次范围

  • 不实现客户端本地战斗判定。
  • 不允许客户端写服务端属性。
  • 不做完整角色属性面板美术重构。
  • 不实现装备、Buff、技能来源展示。

验收标准

  • Unity 侧属性类型与服务端协议可一一映射。
  • 登录后本地缓存包含服务端属性快照中的基础属性。
  • 增量消息能更新对应属性,并触发必要的客户端变化事件。
  • 重连或重新登录快照能覆盖旧数据,避免旧属性残留。
  • UI 或业务模块可以通过统一入口读取玩家属性,不直接解析网络消息。
  • 相同值更新不会重复通知。
  • 退出登录或切换账号后事件订阅不会引用旧玩家数据。
  • 最小展示入口能显示第一批基础属性:生命、物理攻击、魔法攻击、物理防御、魔法防御、暴击、爆伤、精准、格挡。
  • 验证记录包含运行步骤、截图或日志证据,覆盖登录后快照展示和属性变化刷新。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions