feat(enemy): ContactChaseAbility 改造为 RushAbility(冲锋)
- 起手前锁定玩家 X 与方向(committed),终点改为身体整体越过锁定点(Body.HasPassed) - 终止条件:越过锁定点/撞墙(只判墙)/最大冲刺时长(SO 新增 maxDashDuration)/净位移卡死 - 冲锋期间经 EnemyMoveInput.AllowLedgeCross 放开悬崖夹紧,可冲下崖不悬停边缘 - 类与文件重命名(GUID 保留),脚手架与向导同步更新
This commit is contained in:
@@ -1,19 +0,0 @@
|
||||
using Animancer;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BaseGames.Enemies.Abilities
|
||||
{
|
||||
/// <summary>ContactChaseAbility 的配置:起手/循环/收招动画 + 冲刺速度。</summary>
|
||||
[CreateAssetMenu(menuName = "BaseGames/Enemies/Abilities/Contact Chase Ability", fileName = "ABL_")]
|
||||
public class ContactChaseAbilitySO : EnemyAbilitySO
|
||||
{
|
||||
[Header("动画(起手 / 循环 / 收招)")]
|
||||
public ClipTransition startClip; // Skill_Start:张口(一次性)
|
||||
public ClipTransition loopClip; // Skill_Loop:快速爬行追击(循环)
|
||||
public ClipTransition endClip; // Skill_End:收招(一次性)
|
||||
|
||||
[Header("冲刺")]
|
||||
[Tooltip("冲刺速度;<=0 时回退用 EnemyStatsSO.RunSpeed(追击速度)")]
|
||||
public float dashSpeed = 0f;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using Animancer;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BaseGames.Enemies.Abilities
|
||||
{
|
||||
/// <summary>RushAbility(冲锋)的配置:起手/循环/收招动画 + 冲刺速度与时长上限。</summary>
|
||||
[CreateAssetMenu(menuName = "BaseGames/Enemies/Abilities/Rush Ability", fileName = "ABL_")]
|
||||
public class RushAbilitySO : EnemyAbilitySO
|
||||
{
|
||||
[Header("动画(起手 / 循环 / 收招)")]
|
||||
public ClipTransition startClip; // Skill_Start:起手(一次性)
|
||||
public ClipTransition loopClip; // Skill_Loop:冲锋推进(循环)
|
||||
public ClipTransition endClip; // Skill_End:收招(一次性)
|
||||
|
||||
[Header("冲刺")]
|
||||
[Tooltip("冲刺速度;<=0 时回退用 EnemyStatsSO.RunSpeed(追击速度)")]
|
||||
public float dashSpeed = 0f;
|
||||
|
||||
[Tooltip("单次冲锋的最长时长(秒)。够不到锁定点时(掉坑/对岸/被非检测层挡住)由它收尾。" +
|
||||
"0 = 不限时长(仅靠越过锁定点/撞墙/卡死检测终止)。")]
|
||||
[Min(0f)] public float maxDashDuration = 2f;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user