unity3d摄像机跟随人物平滑移动的一个简单方法

分类栏目:unity3d教程

292

一,场景中创建一个cube,绑定一个cube的移动方法的脚本CubeMove,代码如下:

 

void Update ()

    {

        //使用虚拟轴移动

        float h = Input.GetAxis ("Horizontal");

        float v = Input.GetAxis ("Vertical");

        transform.position += new Vector3 (h, 0, v);

    }

二,给摄像机绑定摄像机跟随脚本FollowCamera,代码如下:

 

public Transform target;//摄像机要跟随的目标,cube

    public float dist = 10.0f;//摄像机距离cube的距离

    public float height = 3.0f;//摄像机的高度

    public float dampTrace = 20.0f;//摄像机跟随的移动速度

    Transform tran;//摄像机的Transform

    void Start ()

    {

       //获取摄像机的Transform组件

        tran = GetComponent<Transform> ();

    }

    //LateUpdate晚于Update执行

    void LateUpdate ()

    {

       //平滑移动

        tran.position = Vector3.Lerp (tran.position, target.position - (target.forward * dist) + Vector3.up * height, dampTrace * Time.deltaTime);

       //摄像机一直看着cube

        tran.LookAt (target.position);

    }

这样一个简单的摄像机跟随功能就完成了。