using UnityEngine; namespace BaseGames.Enemies { /// /// 敌人移动意图信号。 /// 持久字段/):写入后持续生效, /// 解决 FixedUpdate 频率快于 Update 时的空帧抖动;由 显式清零。 /// 一次性脉冲字段/): /// EnemyMovement 消费后自动清零,无需 BD 任务每帧续写。 /// public struct EnemyMoveInput { /// /// 水平移动方向:-1 左 / +1 右。持久——写入后保持,直到 WantStop 被置 true 或 /// 再次写 0。不写 = 维持上一次方向(不会自动停止)。 /// public float MoveDir; /// 显式移动速度。0 = 使用配置中的 WalkSpeed。持久,随 MoveDir 同步清零。 public float MoveSpeed; /// /// 一次性脉冲:置 true 后 EnemyMovement 立即停止并将 MoveDir/MoveSpeed 清零, /// 然后自动将本字段清零。BD 任务在 OnEnd() 中调用 StopMovement() 即可,无需每帧续写。 /// public bool WantStop; /// 一次性脉冲:本 FixedUpdate 帧处理朝向对准后自动清零。 public bool WantFace; /// 朝向目标的世界坐标(WantFace 为 true 且 FaceDir == 0 时生效)。 public Vector2 FaceTargetPos; /// 直接指定朝向方向:+1 右 / -1 左 / 0 表示由 FaceTargetPos 计算。 public int FaceDir; } }