U3D游戏第一视角和第三视角
Vector3.Lerp平移摄像机(第三视角)
Vector3.lerp主要是线性插值:(from:Vector3,to:Vector3,float:速度)
首先创建一个脚本move,定义这几个:
private Transform cam;//需要跟踪的摄像机
private Transform player;//角色位置
Vector3 offsen;//摄像机到角色位置的差量
Vector3 Toposition;
float speed = 10f;
在Start()初始化
void Start()
{
player = this.transform;
cam = GameObject.Find("Main Camera").GetComponent<Transform>();//获取摄像机
offsen = gameObject.transform.position- cam.transform.position;//得到差量
}
在Update()具体实现
void Update()
{
if (Input.GetKey(KeyCode.W))
{
player.transform.Translate(Vector3.forward * Time.deltaTime);
}
Toposition = player.transform.position + player.TransformDirection(offsen);//把这个差量通过主角的位置计算出来
cam.transform.position = Vector3.Lerp(cam.transform.position, Toposition, speed * Time.deltaTime);