实现相机平滑跟随物体移动
有时候我们在做第三人称游戏的时候,想让相机平滑的跟随物体移动,下面这些代码就能很快达到这个效果
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即可。