unity3d攝像機跟隨人物平滑移動的一個簡單方法
阿新 • • 發佈:2018-12-26
一,場景中建立一個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);
- }
這樣一個簡單的攝像機跟隨功能就完成了。