//把相机直接拖成要跟随的物体的子物体,这个就不举例子了
//利用差值,起点主相机的位置,终点玩家的位置
Camera.main.transform.position = transform.position - offut;
Camera.main .transform.position = Vector3.Lerp(transform.position,Tagat .transform .position , 0.3f);
//相机在人物后背多高多远
Vector3 v3 = Tagat.transform.position + hight * Tagat.transform.up - forword * Tagat.transform.forward;
transform.position = Vector3.Lerp(transform.position, v3, Time.deltaTime * PositionSpeed);
//跟lookat一样,只是缓慢差值旋转
Quaternion qu = Quaternion.LookRotation(Tagat.transform.position - v3);
transform.rotation = Quaternion.Slerp(transform.rotation, qu, Time.deltaTime * PositionSpeed);
//这个也是一种跟随方法,还有一些,最好自己理解,比较难,但是挺常用的
start = Player.transform.position + 4 * Player.transform.up - 4 * Player.transform.forward;
end = Player.transform.position + 4 * Player.transform.up;
v3[0] = start;
v3[4] = end;
for (int i = 1; i < v3.Length - 1; i++)
{
v3[i] = Vector3.Lerp(start, end, i / v3.Length);
}
Tagetpostion = start;
for (int i = 0; i < v3.Length; i++)
{
if (Fun(v3[i]))
{
Tagetpostion = v3[i];
break;
}
if (i == 4)
{
if (Fun(v3[i]))
{
Tagetpostion = end;
}
else
{
Tagetpostion = Player.transform.position - 0.5f * transform.forward;
}
}
}
摄像机跟随
最新推荐文章于 2024-11-08 14:09:51 发布