游戏属性配置表(cfg_att_score)详解
课程目标
掌握游戏属性配置表的核心字段含义、配置逻辑及注意事项,能够独立完成自定义属性的设计与实现。
一、配置表核心字段解析
-
物品序号(IDX)
- 功能:全局唯一标识符(GUID),用于数据索引与关联。
- 规范:
- 遵循数据库主键设计原则,禁止重复。
- 新增条目时需校验唯一性(哈希表/数据库约束)。
-
道具名称(ItemName)
- 功能:UI层物品显示名称(Localization Key)。
- 配置规范:
- 需与多语言表(如
cfg_language
)键值对应。
- 命名需符合游戏世界观(如奇幻/科幻风格统一)。
-
战略系数表(StrategyCoefficient)
- 功能:属性计算规则容器,用于数值公式解析。
- 约束:
- 官方系数表为只读模板,禁止直接修改。
- 扩展时需克隆官方模板,继承
BaseCoefficient
类。
-
数据类型(ValueType)
-
功能:定义数值计算逻辑的底层类型。
-
类型对照表
类型代码 |
说明 |
示例场景 |
0 |
固定值(Flat) |
攻击力+100 |
1 |
万分比(Permyriad) |
吸血比例0.1% → 10 |
2 |
百分比(Percent) |
暴击率+5% → 5 |
-
注意事项:
- 混合类型需通过
ValueConverter
进行单位转换。
-
属性描述(Description)
- 功能:Tooltip文本动态绑定的逻辑说明。
- 规范:
-
客户端显示标记(ClientDisplayFlag)
-
功能:控制属性在客户端的渲染策略。
-
枚举值:
值 |
说明 |
0 |
Hidden(始终隐藏) |
1 |
AlwaysShow(无条件显示) |
2 |
ConditionalShow(动态检测) |
3 |
ClassFilter(职业过滤显示) |
-
技术实现:
- 通过
UIComponent.Refresh()
动态更新显示状态。
-
属性颜色配置(DisplayColor)
- 功能:视觉分层与属性品质标识。
- 实现方案:
- 使用RGB/HEX色值映射(如
#FFD700
对应传说品质)。
- 颜色渐变需通过
Color.Lerp()
插值处理。
二、高级配置技巧
-
显示排序优化(DisplayPriority)
- 规则:
- 数值越小,渲染层级越高(Z-Index)。
- 推荐分组区间:核心属性(1-10)、次级属性(11-20)。
-
元素属性标记(IsElemental)
- 作用:
- 参与元素反应计算(如
Fire + Ice = Melt
)。
- 影响抗性穿透公式(
ElementPenetration
)。
-
跨表关联设计
- 示例:
- 与
cfg_buff
表联动,通过BuffID
触发被动效果。
- 与
cfg_equip_set
表绑定套装属性。
三、常见配置错误与调试
-
ID冲突:
- 现象:道具属性加载异常。
- 解决方案:使用
CRC32
校验工具预生成唯一ID。
-
类型误配:
- 案例:将百分比类型误设为固定值,导致数值膨胀。
- 调试工具:Unity Inspector数值监控插件。
-
显示逻辑漏洞:
课后练习
-
设计一个自定义吸血属性,要求:
- 万分比类型,基础值50(即0.5%)
- 仅对刺客职业显示
- 显示颜色为深红色(RGB: 139,0,0)
-
分析以下配置错误的原因:
{
"IDX": 1001,
"ValueType": 2,
"Description": "攻击速度+20",
"ClientDisplayFlag": 3
}
课件设计说明
- 采用模块化结构,便于分阶段教学。
- 关键术语使用高亮标注(如GUID、Permyriad)。
- 结合代码片段与配置示例,增强实践关联性。