有時候我們在做第三人稱游戲的時候,想讓相機平滑的跟隨物體移動,下面這些代碼就能很快達到這個效果
using UnityEngine; using System.Collections; public class CameraMover : MonoBehaviour { public Transform follow;//目標的tansform public float distanceAway = 5.0f;//表示距離目標后方的距離 public float distanceUp=2.0f;//目標上方的高度 public float smooth = 1.0f;//插值系數 private Vector3 camPosition;//目標的位置 void LateUpdate() { //計算出相機應該在的位置 camPosition = follow.position + Vector3.up * distanceUp - follow.forward*distanceAway; //插值到相機應該的位置 transform.position=Vector3.Lerp(transform.position,camPosition,smooth*Time.deltaTime); //一個tranform中的函數,用於使一個物體正對着目標 transform.LookAt(follow);//理解成看着目標 } }
這里插入一張圖便於理解
如果想改變相機的朝向,可以通過直接改變
camPosition = follow.position + Vector3.up * distanceUp - follow.forward*distanceAway;句中的follow.forward的值,
比如說可以把
public float distanceAway = 5.0f;改成-5.0f則使攝像機正對着物體。如果想從側邊觀看,則改變為follow.right即可。