Unity3d 敌方追击AI与动画

Unity3d 敌方追击AI与动画,unity3d,unity3d-2dtools,Unity3d,Unity3d 2dtools,所以我在统一上做了一个2d RPG,我在敌人AI上遇到了麻烦。当我编写玩家移动脚本时,他的动画会随着输入x和输入y的变化而变化,因此很容易控制,但敌人不会有任何输入,因此我如何管理他的动画,使其在追逐玩家或逃跑时正确面对 这是我的播放器mov脚本> public class PlayerMovment : MonoBehaviour { Animator anim; Rigidbody2D playerRgdb; void Start () { anim = GetCo

所以我在统一上做了一个2d RPG,我在敌人AI上遇到了麻烦。当我编写玩家移动脚本时,他的动画会随着输入x和输入y的变化而变化,因此很容易控制,但敌人不会有任何输入,因此我如何管理他的动画,使其在追逐玩家或逃跑时正确面对

这是我的播放器mov脚本>

  public class PlayerMovment : MonoBehaviour {
  Animator anim;
  Rigidbody2D playerRgdb;

  void Start () {
    anim = GetComponent<Animator>();
    playerRgdb = GetComponent<Rigidbody2D>();
  }


  void Update () {
  Vector2 movement_vector = new      Vector2(Input.GetAxisRaw("Horizontal"),Input.GetAxisRaw("Vertical"));   
  if (movement_vector != Vector2.zero)
  {
    anim.SetBool("isWalking", true);
    anim.SetFloat("input_x", movement_vector.x);
    anim.SetFloat("input_y", movement_vector.y);

  }
  else
  {
    anim.SetBool("isWalking", false);
  }
  playerRgdb.MovePosition(playerRgdb.position + movement_vector *               Time.deltaTime);
   }
   }
public class PlayerMovment:单一行为{
动画师;
Rigidbody2D播放器rRGDB;
无效开始(){
anim=GetComponent();
playerRgdb=GetComponent();
}
无效更新(){
Vector2 movement_vector=新的Vector2(Input.GetAxisRaw(“水平”)、Input.GetAxisRaw(“垂直”);
if(运动向量!=Vector2.zero)
{
动画挫折(“isWalking”,真);
SetFloat(“输入x”,运动向量x);
设置浮点(“输入y”,运动矢量y);
}
其他的
{
动画设置工具(“isWalking”,false);
}
playergdb.MovePosition(playergdb.position+移动向量*时间.增量时间);
}
}

即使您的敌人实际上没有从控制器获取输入,但最好将其编程为从某处获取输入。这意味着你可以重用敌人的玩家代码来控制他们的共同点,比如动画。在你的代码中,你在哪里设置角色的方向?@Aleksandrus动画师有3个参数,输入x,输入y和isWalking,当isWalking为真时,他进入行走状态,wich播放4个动画:向上走(如果X=0,y=1)、向下走(如果X=0,y=1)、向右走(如果X=1,y=0)、向左走(如果X=1,y=0)