我要在游戏对象周围移动相机,换句话说:当我按住鼠标中键并移动鼠标时,相机应该在该游戏对象周围移动(就像地球围绕太阳,但在y轴上一样),我有这个代码,但是它在做奇怪的事情:
private void RotateCamera()
{
if (Input.GetKey(KeyCode.Mouse2))
{
yaw += _horizontalSpeed * Input.GetAxis("Mouse X"); //Horizontal speed and vertical are both equal 10, It's just how fast camera should move
pitch += _verticalSpeed * -Input.GetAxis("Mouse Y");
pitch = ClampAngle(pitch, -90, 90);
transform.position = new Vector3(pitch + target.position.x, yaw + target.position.y, 0);
}
}
答案 0 :(得分:2)
我只需在要观察的位置添加一个空对象,然后将照相机作为子对象添加到其中即可。
然后,您可以将旋转应用于父对象,并且相机应围绕其父对象旋转并始终面向它。
如果要更改目标,只需删除父级子级,将前父级的位置更改为新位置,将相机旋转到该位置(使用transform.LookAt()
)并设置父级子级就像以前一样。