# Skill 系统总结
# Skill
Skill
类是所有技能类的基础类,提供通用的技能逻辑和方法。
# 主要特点
# 1. 冷却机制
通过
cooldown
和cooldownTimer
属性管理技能的冷却时间。每帧更新冷却计时器。
# 实现方式:
1 | protected virtual void Update() |
# 2. 技能使用逻辑
提供
CanUseSkill()
方法检查技能是否可以使用。如果可以使用技能,则重置冷却时间并调用
UseSkill()
。
# 实现方式:
1 | public virtual bool CanUseSkill() |
# 3. 解锁检测
提供
CheckUnlock()
方法,用于子类实现具体的解锁逻辑。在
Start()
方法中调用。
# 实现方式:
1 | protected virtual void Start() |
# 4. 最近敌人查找
- 提供
FindClosestEnemy()
方法,用于查找指定范围内最近的敌人。
# 实现方式:
1 | protected virtual Transform FindClosestEnemy(Transform _checkTransform) |
# 子类继承
Skill
类提供了基础功能,供所有技能类继承和扩展。例如:
Sword_Skill
Dash_Skill
Clone_Skill
子类可以重写以下方法以实现自定义逻辑:
Start()
Update()
UseSkill()
CheckUnlock()
# SkillManager
SkillManager
类是技能系统的核心组件,负责初始化并提供对所有技能实例的全局访问。
# 主要特点
# 1. 单例模式
确保
SkillManager
全局仅有一个实例。可通过静态属性
instance
进行访问。
# 实现方式:
1 | private void Awake() |
如果已有另一个实例,销毁当前游戏对象。
否则,将当前对象设置为全局实例。
# 2. 技能实例管理
为每个技能维护私有字段,并通过只读公共属性提供访问。
动态加载附加在同一游戏对象上的技能组件。
# 初始化方式:
1 | private void Start() |
使用
GetComponent<T>()
获取以下组件:Dash_Skill
Clone_Skill
Sword_Skill
Blackhole_Skill
Crystal_Skill
Parry_Skill
Dodge_Skill
# 管理的技能字段
dash
: 对应Dash_Skill
实例。clone
: 对应Clone_Skill
实例。sword
: 对应Sword_Skill
实例。blackhole
: 对应Blackhole_Skill
实例。crystal
: 对应Crystal_Skill
实例。parry
: 对应Parry_Skill
实例。dodge
: 对应Dodge_Skill
实例。
# 系统角色
SkillManager
是所有技能相关操作的主要访问点。其他游戏组件通过该管理器与技能交互,确保操作集中化。
# 各技能类
# 1. Sword_Skill
Sword_Skill
是 Skill
的派生类,专注于与剑相关的技能逻辑,包括多种剑类型及其相应的解锁和使用机制。
# 主要特点
# 1. 剑的类型
提供 4 种剑类型:
Regular(普通)
Bounce(弹射)
Pierce(穿刺)
Spin(旋转)
不同类型剑有独特的属性,如重力、弹射次数、旋转持续时间等。
# 类型定义:
1 | public enum SwordType |
# 2. 解锁机制
每种剑类型通过解锁按钮控制。
提供以下方法来解锁对应剑类型:
UnlockSword()
UnlockBounceSword()
UnlockPierceSword()
UnlockSpinSword()
UnlockTimeStop()
(时间停止被动技能)UnlockVulnurable()
(脆弱被动技能)
# 解锁逻辑:
1 | private void UnlockSword() |
# 3. 辅助瞄准
提供瞄准点(Aim Dots)功能,显示剑的预计轨迹。
瞄准点的位置由抛物线计算决定。
# 实现方式:
1 | public Vector2 AimDirection() |
# 4. 创建剑
CreateSword()
方法用于生成剑,并根据当前剑类型配置剑的行为。每种剑类型调用对应的
Setup
方法配置独特行为。
# 实现方式:
1 | public void CreateSword() |
# 5. 其他功能
时间停止(Time Stop)和脆弱(Vulnerable)被动技能:
- 解锁后会自动激活对应效果。
解锁状态检测:在
CheckUnlock()
方法中检查所有解锁按钮状态。
# 总结
提供与剑相关的技能逻辑和实现。
支持多种剑类型和扩展功能,如辅助瞄准和被动技能。
与
Skill
基类和SkillManager
交互,共享技能系统的框架。
# 2. Blackhole_Skill.cs
- 功能:实现黑洞技能,生成黑洞并吸引敌人,同时支持黑洞的生长和收缩机制。
- 特性:
- 黑洞的大小、持续时间、以及攻击次数可配置。
- 可在特定状态下触发结束。
- 技能关联:
- 调用
SkillManager.instance
来播放音效或控制黑洞状态。
- 调用
# 3. Clone_Skill.cs
- 功能:实现召唤克隆体的技能,并支持多种克隆相关特性。
- 特性:
- 支持攻击型克隆、侵略性克隆、多重克隆和水晶替代克隆。
- 提供克隆生成的延迟机制。
- 技能关联:
Crystal_Skill
可以替代克隆生成。- 与其他技能(如
Dash_Skill
和Dodge_Skill
)的特性协同。
# 4. Crystal_Skill.cs
- 功能:实现水晶技能,水晶可以作为防御机制,也支持爆炸和移动特性。
- 特性:
- 支持多层堆叠水晶的生成和使用。
- 提供爆炸型和移动型水晶解锁机制。
- 可与克隆技能互相替代。
- 技能关联:
- 与
Clone_Skill
协作实现水晶和克隆的互相替代功能。
- 与
# 5. Dash_Skill.cs
- 功能:实现冲刺技能,支持冲刺时生成克隆体或抵达目标位置后生成克隆体。
- 特性:
- 可解锁冲刺克隆和到达克隆两种特性。
- 技能关联:
- 调用
Clone_Skill
来生成克隆。
- 调用
# 6. Dodge_Skill.cs
- 功能:实现闪避技能,支持闪避镜像功能。
- 特性:
- 提升闪避数值,并提供镜像闪避的解锁选项。
- 技能关联:
- 使用
Clone_Skill
生成镜像。
- 使用
# 7. Parry_Skill.cs
- 功能:实现格挡技能,可恢复生命值或生成镜像。
- 特性:
- 支持恢复生命值的解锁选项。
- 在成功格挡时触发镜像生成。
- 技能关联:
- 通过
Clone_Skill
实现镜像生成。
- 通过
# 文件之间的联系
- SkillManager.cs 负责管理所有技能类,是各技能的单一入口。
- 技能之间的交互:
- 多个技能通过
SkillManager
调用其他技能实例。例如:Dash_Skill
和Dodge_Skill
会调用Clone_Skill
。Sword_Skill
和Crystal_Skill
之间有能力互相替代。
- 大部分技能类使用基础类
Skill.cs
提供的通用逻辑。
- 多个技能通过
如需进一步补充或优化,请告诉我!