C# 团结敌人前进

C# 团结敌人前进,c#,unity2d,C#,Unity2d,我有一个统一的敌人,敌人跟随玩家,当玩家在特定距离时,我希望敌人不停地跑X个单位。这个想法是,敌人逃跑,然后他会感到疲劳,玩家可以从后面攻击他 我怎样才能让敌人不停地向前跑X距离 我怎样才能让敌人不停地向前跑X距离 取决于很多事情,在你的游戏中如何处理移动?是2D吗?3D?等等 例如,如果你在敌人的游戏对象上使用角色控制器(2D) Vector2 moveDirection=Vector2.0; 无效更新(){ CharacterController player=GetComponent();

我有一个统一的敌人,敌人跟随玩家,当玩家在特定距离时,我希望敌人不停地跑X个单位。这个想法是,敌人逃跑,然后他会感到疲劳,玩家可以从后面攻击他

我怎样才能让敌人不停地向前跑X距离

我怎样才能让敌人不停地向前跑X距离

取决于很多事情,在你的游戏中如何处理移动?是2D吗?3D?等等

例如,如果你在敌人的游戏对象上使用角色控制器(2D)

Vector2 moveDirection=Vector2.0;
无效更新(){
CharacterController player=GetComponent();
如果(player.isGrounded)
{             
//不断地水平移动
moveDirection.x=值速度;
player.Move(moveDirection*Time.deltaTime);
}
}
这只是一些基本理论。对于三维,可以添加尺寸标注,并使用当前正向向量左右选择方向


至于检查X值,你可以做的是,在你的敌人职业中,当“运行模式”被触发时,你保存原点位置,在更新中,你检查当前位置和原点之间的距离(矢量3.距离(…),只要距离小于X,你就让他运行。如果没有,则表示您没有处于“运行模式”。

基本上,您需要计算敌人的新位置,并在当前位置和新位置之间设置动画。
Vector2 moveDirection = Vector2.zero;
void Update(){
     CharacterController player = GetComponent<CharacterController>();
     if (player.isGrounded)
     {             
     // constantly move horizontally
     moveDirection.x = valuespeed;
     player.Move(moveDirection * Time.deltaTime);
     }
 }