diff --git a/03_核心功能/Entity/UnityEntities注意事项.md b/03_核心功能/Entity/UnityEntities注意事项.md new file mode 100644 index 0000000..dcce386 --- /dev/null +++ b/03_核心功能/Entity/UnityEntities注意事项.md @@ -0,0 +1,73 @@ +# Unity Entities 注意事项和最佳实践 + +## 1. 枚举定义相关 + +### enHFCTCEvent 枚举 +- **新增项**:`Custom = 281` - 用于自定义事件 +- **用途**:在HFEvent_OnDamage等自定义事件中使用 +- **注意**:添加新事件时,确保数值不与其他事件冲突 + +### enEntityLayer 枚举 +- **现有项**:`None=0`, `Role`, `Monster`, `Max` +- **注意**:没有`Enemy`项,敌人应归类为`Monster` + +## 2. 实体-系统-模型 (ESM) 架构相关 + +### HFAbsEntity 访问方式 +- **Transform访问**:使用 `entity.gameObject.transform.position` 而不是 `entity.transform.position` +- **属性访问**:使用公共属性如 `entity.NormalATK` 而不是私有字段 `entity.m_NormalATK` +- **系统获取**:HFAbsEntity 没有 `GetSystem()` 方法,只有 `GetModel()` 方法 +- **模型获取**:通过 `entity.GetModel()` 获取模型实例 + +### 系统间通信 +- **推荐方式**:通过事件系统进行通信,而不是直接获取其他系统 +- **事件分发**:使用 `event.Dispatch()` 而不是 `HFFunCatalogue.Event.TCEvent.SendEvent()` + +## 3. 数据表字段映射 + +### Role表字段 +- `Lifefold` -> 生命值 +- `Attackfold` -> 攻击力 +- `Defensefold` -> 防御力 +- `AttackRange` -> 攻击范围 +- `CriticalRate` -> 暴击率 +- `CriticalDamage` -> 暴击伤害 +- **注意**:Role表中没有速度字段 (SPD) + +## 4. 动画系统相关 + +### FSM (有限状态机) 系统 +- **HFFMSModel** 现在包含 `CurrentSkeletonAnimation` 属性 +- **访问方式**:通过 `FSM.CurrentSkeletonAnimation` 访问SkeletonAnimation +- **动画速度设置**:使用 `skeletonAnimation.timeScale = speed` + +## 5. AI系统相关 + +### HFAIModel_Enemy +- **伤害处理**:通过事件系统 (`HFEvent_OnDamage`) 而不是直接获取系统 +- **攻击逻辑**:创建并分发伤害事件,让其他系统处理实际伤害计算 + +## 6. 错误处理和调试 + +### 常见错误类型 +- **CS0117**: 枚举中不包含指定定义 - 检查枚举项是否存在 +- **CS1061**: 类型不包含指定定义 - 检查属性/方法名是否正确 +- **CS0122**: 成员因保护级别不可访问 - 使用公共API而不是私有字段 + +### 修复策略 +- 优先使用公共属性而不是私有字段 +- 通过事件系统进行组件间通信 +- 正确访问GameObject的Transform组件 +- 使用正确的枚举值 + +## 7. 架构模式 + +### 系统-模型 (System-Model) 模式 +- **AbsHFMoveSystem** 需要指定泛型参数 +- **AbsHFAIModel** 不能直接获取系统,应通过事件或模型进行通信 +- **AbsHFAnimationModel** 需要配合AbsHFFMSModel使用 + +### 事件驱动架构 +- 自定义事件需继承 `AbsHFEventArg` +- 事件ID使用 `enHFCTCEvent.Custom` 或其他预定义事件 +- 事件分发使用 `Dispatch()` 方法 \ No newline at end of file diff --git a/README.md b/README.md index 82bcd28..948953f 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ #### Entity相关 - [Entity开发指南](03_核心功能/Entity/Entity开发指南.md) - Entity创建规范、生命周期、System-Model架构、属性系统、对象池 +- [UnityEntities注意事项](03_核心功能/Entity/UnityEntities注意事项.md) - 枚举定义、ESM架构、数据表字段映射、动画系统、AI系统、错误处理、架构模式 #### UI相关 - [UI开发指南](03_核心功能/UI/UI开发指南.md) - 窗口开发、组件使用、事件绑定、对象池、开发规范