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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions