docs: 添加通用技能系统使用指南文档
- 创建通用技能系统使用指南 - 更新README.md,添加对新文档的引用
This commit is contained in:
127
03_核心功能/Entity/通用技能系统使用指南.md
Normal file
127
03_核心功能/Entity/通用技能系统使用指南.md
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
# 通用技能系统使用指南
|
||||||
|
|
||||||
|
## 概述
|
||||||
|
|
||||||
|
通用技能系统(HFGenericSkillSystem)是一个适用于角色和怪物的统一技能管理系统,提供了一套标准化的技能操作接口。
|
||||||
|
|
||||||
|
## 架构设计
|
||||||
|
|
||||||
|
### 系统组成
|
||||||
|
- **HFGenericSkillSystem** - 通用技能系统(继承自 AbsHFSkillSystem<HFGenericSkillModel>)
|
||||||
|
- **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<HFGenericSkillSystem>(); // 替代原来的 HFSkillSystem
|
||||||
|
```
|
||||||
|
|
||||||
|
### 敌人实体
|
||||||
|
在 `HFEntity_Enemy` 和 `HFEntity_Boss` 中,技能系统被自动添加:
|
||||||
|
```csharp
|
||||||
|
AddSystem<HFGenericSkillSystem>(); // 替代原来的 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<enHFCTCEvent>
|
||||||
|
{
|
||||||
|
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. 合理设置技能冷却时间以平衡游戏体验
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
#### Entity相关
|
#### Entity相关
|
||||||
- [Entity开发指南](03_核心功能/Entity/Entity开发指南.md) - Entity创建规范、生命周期、System-Model架构、属性系统、对象池
|
- [Entity开发指南](03_核心功能/Entity/Entity开发指南.md) - Entity创建规范、生命周期、System-Model架构、属性系统、对象池
|
||||||
- [UnityEntities注意事项](03_核心功能/Entity/UnityEntities注意事项.md) - 枚举定义、ESM架构、数据表字段映射、动画系统、AI系统、错误处理、架构模式
|
- [UnityEntities注意事项](03_核心功能/Entity/UnityEntities注意事项.md) - 枚举定义、ESM架构、数据表字段映射、动画系统、AI系统、错误处理、架构模式
|
||||||
|
- [通用技能系统使用指南](03_核心功能/Entity/通用技能系统使用指南.md) - 通用技能系统架构、使用方法、配置管理、事件系统
|
||||||
|
|
||||||
#### UI相关
|
#### UI相关
|
||||||
- [UI开发指南](03_核心功能/UI/UI开发指南.md) - 窗口开发、组件使用、事件绑定、对象池、开发规范
|
- [UI开发指南](03_核心功能/UI/UI开发指南.md) - 窗口开发、组件使用、事件绑定、对象池、开发规范
|
||||||
|
|||||||
Reference in New Issue
Block a user