Demo_玩家移动(主要注意动画的设置)

using UnityEngine;
using System.Collections;

public class NewPlayerMove : MonoBehaviour {

    private float hor,ver;
    private Animator ani;
    //转身速度
    public float turnSpeed = 10;

    void Awake()
    {
        ani = GetComponent<Animator> ();
    }

    void Update()
    {
        hor = Input.GetAxis ("Horizontal");
        ver = Input.GetAxis ("Vertical");
        //移动
        Move (ver);
        //转身
        Turn (hor, ver);
    }

    void Move(float ver)
    {
        if (ver != 0 || hor != 0) {
            //求实际距离
            float result = Mathf.Sqrt (hor * hor + ver * ver);
            //设置Speed参数
            ani.SetFloat ("Speed", Mathf.Abs (result));
        } else {
            //让角色停止移动
            ani.SetFloat ("Speed", -1f);
        }
    }

    void Turn(float hor,float ver)
    {
        //如果玩家按下了任意一个方向键
        if (hor != 0 || ver != 0) {
            //获取方向向量
            Vector3 dir = new Vector3 (hor, 0, ver);
            //获取方向向量所代表的四元数
            Quaternion qua = Quaternion.LookRotation (dir);
            //玩家缓慢移动到目标四元数所代表的旋转
            transform.rotation = Quaternion.Lerp (transform.rotation,
                qua, Time.deltaTime * turnSpeed);
        }
    }
}

 

转载于:https://www.cnblogs.com/VR-1024/p/6021151.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值