不多说 先上效果图
上代码
Animator thisAni;//自身的动画控制器
private void Awake(){
//获取自身的动画控制器
thisAni = this.GetComponent<Animator>();
}
private void Update()
{
//任意键按下时进入
if(Input.anyKey)
{
//求出主角朝向的坐标 如图 0为主角
/*
1
-1 0 1
-1
*/
Vector3 dir = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
//修改主角朝向
this.transform.LookAt(this.transform.position + dir);
}
//如果有轴输入 就说明需要移动
if (Input.GetButton("Vertical")||Input .GetButton ("Horizontal"))
{
//Shift加速
if (Input.GetKey(KeyCode.LeftShift))
{
//向正前方移动
this.transform.Translate(Vector3.forward * Time.deltaTime * 2);
//修改状态机参数
thisAni.SetFloat("speed", 2);
}
else
{
向正前方移动
this.transform.Translate(Vector3.forward * Time.deltaTime * 1);
//修改状态机参数
thisAni.SetFloat("speed", 1);
}
}else
{
//修改状态机参数
thisAni.SetFloat("speed", 0);
}
}