refactor(enemy): 删除 AiPhase 影子层,动画统一由 locomotion/反应态/能力驱动
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System.Collections;
|
||||
using Animancer;
|
||||
using BaseGames.AI;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BaseGames.Enemies.Abilities
|
||||
@@ -67,8 +68,8 @@ namespace BaseGames.Enemies.Abilities
|
||||
|
||||
yield return EnemyAbilityWaits.Get(_recoveryTime);
|
||||
|
||||
// SetAiPhase(Patrol) 自动播放 AnimConfig.Walk(地面移动动画)
|
||||
_enemy.SetAiPhase(AiPhase.Patrol);
|
||||
// PlayLocomotionClip(Patrol) 播放 AnimConfig.Walk(地面移动动画)
|
||||
_enemy.PlayLocomotionClip(LocomotionMode.Patrol);
|
||||
}
|
||||
|
||||
private bool IsGrounded()
|
||||
|
||||
@@ -19,7 +19,6 @@ namespace BaseGames.Enemies.Abilities
|
||||
|
||||
_animancer.Play(_appearClip);
|
||||
yield return EnemyAbilityWaits.Get(_appearClip.Clip.length);
|
||||
_enemy.SetAiPhase(AiPhase.Combat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,11 +22,11 @@ namespace BaseGames.Enemies.Abilities
|
||||
protected override IEnumerator ExecuteCoroutine()
|
||||
{
|
||||
Phase = AbilityRunState.Active;
|
||||
_enemy.SetEngaged(true);
|
||||
|
||||
// 追击行为的速度/阶段声明归本能力(AI 只触发能力,不做这些执行)
|
||||
if (_enemy.Nav != null && _enemy.Stats != null)
|
||||
_enemy.Nav.SetSpeed(_enemy.Stats.RunSpeed);
|
||||
_enemy.SetAiPhase(AiPhase.Chase);
|
||||
|
||||
if (_loopClip.Clip != null)
|
||||
_animancer.Play(_loopClip);
|
||||
@@ -55,6 +55,7 @@ namespace BaseGames.Enemies.Abilities
|
||||
{
|
||||
if (_contactDamage != null)
|
||||
_contactDamage.enabled = false;
|
||||
_enemy.SetEngaged(false);
|
||||
_enemy.Locomotion?.Stop();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user