From 5e5b9f8c802b365ccd757b97b0204e675b76fa62 Mon Sep 17 00:00:00 2001 From: Shiliang Date: Tue, 2 Jun 2026 10:30:55 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0=E9=80=9A=E7=94=A8?= =?UTF-8?q?=E6=8A=80=E8=83=BD=E7=B3=BB=E7=BB=9F=E4=BD=BF=E7=94=A8=E6=8C=87?= =?UTF-8?q?=E5=8D=97=E6=96=87=E6=A1=A3=20-=20=E5=88=9B=E5=BB=BA=E9=80=9A?= =?UTF-8?q?=E7=94=A8=E6=8A=80=E8=83=BD=E7=B3=BB=E7=BB=9F=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E6=8C=87=E5=8D=97=20-=20=E6=9B=B4=E6=96=B0README.md=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AF=B9=E6=96=B0=E6=96=87=E6=A1=A3=E7=9A=84?= =?UTF-8?q?=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 03_核心功能/Entity/通用技能系统使用指南.md | 127 +++++++++++++++++++++ README.md | 1 + 2 files changed, 128 insertions(+) create mode 100644 03_核心功能/Entity/通用技能系统使用指南.md diff --git a/03_核心功能/Entity/通用技能系统使用指南.md b/03_核心功能/Entity/通用技能系统使用指南.md new file mode 100644 index 0000000..bf80962 --- /dev/null +++ b/03_核心功能/Entity/通用技能系统使用指南.md @@ -0,0 +1,127 @@ +# 通用技能系统使用指南 + +## 概述 + +通用技能系统(HFGenericSkillSystem)是一个适用于角色和怪物的统一技能管理系统,提供了一套标准化的技能操作接口。 + +## 架构设计 + +### 系统组成 +- **HFGenericSkillSystem** - 通用技能系统(继承自 AbsHFSkillSystem) +- **HFGenericSkillModel** - 通用技能模型(继承自 HFAbsModel) +- **HFEvent_OnSkillUsed** - 技能使用事件 + +### 核心功能 + +#### 1. 技能管理 +```csharp +// 添加技能 +skillSystem.AddSkill(skillId); + +// 移除技能 +skillSystem.RemoveSkill(skillId); + +// 检查技能是否就绪 +bool isReady = skillSystem.IsSkillReady(skillId); + +// 获取技能冷却时间 +float cooldown = skillSystem.GetSkillCooldown(skillId); +``` + +#### 2. 技能使用 +```csharp +// 使用技能(指定目标) +skillSystem.UseSkill(skillId, targetEntity); + +// 使用技能(指定位置) +skillSystem.UseSkillAtPosition(skillId, worldPosition); +``` + +#### 3. 冷却管理 +```csharp +// 检查是否有技能在冷却 +bool hasCooldown = skillSystem.HasSkillInCooldown(); + +// 清除所有技能冷却 +skillSystem.ClearAllCooldowns(); +``` + +## 使用场景 + +### 角色实体 +在 `HFEntity_Role` 中,技能系统被自动添加: +```csharp +AddSystem(); // 替代原来的 HFSkillSystem +``` + +### 敌人实体 +在 `HFEntity_Enemy` 和 `HFEntity_Boss` 中,技能系统被自动添加: +```csharp +AddSystem(); // 替代原来的 HFSkillSystem +``` + +## 技能配置 + +### 技能配置结构 +```csharp +public struct stSkillConfig +{ + public int Id; // 技能ID + public string Name; // 技能名称 + public float Cooldown; // 冷却时间 + public float Range; // 作用范围 + public float Damage; // 伤害值 + public string Description; // 描述 +} +``` + +### 技能加载 +系统会根据实体配置自动加载对应的技能: +```csharp +// 从EntityConfig表加载技能 +var config = HFFunCatalogue.NDB.ds_EntityConfig_Sheet_TableData_1FC4334A.ReadTable(ownerEntity.EntityId); +if (config != null && config.SkillID > 0) +{ + AddSkill(config.SkillID); +} +``` + +## 事件系统 + +### 技能使用事件 +当技能被使用时,系统会触发 `HFEvent_OnSkillUsed` 事件: +```csharp +public class HFEvent_OnSkillUsed : AbsHFEventArg +{ + public HFAbsEntity Caster { get; set; } // 施法者 + public int SkillId { get; set; } // 技能ID + public HFAbsEntity Target { get; set; } // 目标 + public Vector3 Position { get; set; } // 位置(可选) +} +``` + +## 扩展接口 + +### Buff管理 +```csharp +// 添加Buff +skillSystem.AddBuff(buffTemplate); + +// 移除Buff +skillSystem.RemoveBuff(buffId); +``` + +## 最佳实践 + +1. **统一接口**:角色和怪物使用相同的技能系统接口 +2. **自动配置**:技能配置根据实体类型自动加载 +3. **冷却管理**:内置技能冷却机制 +4. **事件驱动**:通过事件系统处理技能效果 +5. **类型安全**:使用强类型的技能ID和配置 + +## 注意事项 + +1. 技能释放器的具体实现需要根据游戏需求进行定制 +2. 技能效果逻辑应在事件处理器中实现 +3. 确保技能ID在项目中唯一 +4. 合理设置技能冷却时间以平衡游戏体验 \ No newline at end of file diff --git a/README.md b/README.md index d7523d9..d1d5241 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ #### Entity相关 - [Entity开发指南](03_核心功能/Entity/Entity开发指南.md) - Entity创建规范、生命周期、System-Model架构、属性系统、对象池 - [UnityEntities注意事项](03_核心功能/Entity/UnityEntities注意事项.md) - 枚举定义、ESM架构、数据表字段映射、动画系统、AI系统、错误处理、架构模式 +- [通用技能系统使用指南](03_核心功能/Entity/通用技能系统使用指南.md) - 通用技能系统架构、使用方法、配置管理、事件系统 #### UI相关 - [UI开发指南](03_核心功能/UI/UI开发指南.md) - 窗口开发、组件使用、事件绑定、对象池、开发规范