效果图:

原理:
1.相机跟随player经行移动
2.相机一直跟在人物的身后,不会旋转
旋转是个大麻烦。
涉及到欧拉角或者四元数,研究了半天。发现在unity API中四元素Quaternion.operator ,他满足相机的需求且简单。
描述:用rotation旋转point点。此运算符的作用是对参数坐标点point进行rotation变换。返回的结果是Vector3,就是这个point按照rotation旋转后的另一个。
代码:
public GameObject camera;
public Transform playerTransform;
public float awayZ=3f;
public float awayY = 3f;
void Update()
{
Quaternion r = playerTransform.rotation;
Vector3 end = (playerTransform.position - (r * Vector3.forward) * awayZ) + (r * Vector3.up * awayY);
Debug.DrawLine(playerTransform.position, end, Color.red);
camera.transform.position = end;
camera.transform.LookAt(playerTransform);
}
网友评论