使用鼠标Unity围绕对象旋转相机

时间:2018-07-03 19:44:49

标签: c# unity3d camera rotation

我要在游戏对象周围移动相机,换句话说:当我按住鼠标中键并移动鼠标时,相机应该在该游戏对象周围移动(就像地球围绕太阳,但在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);
    }
}

1 个答案:

答案 0 :(得分:2)

我只需在要观察的位置添加一个空对象,然后将照相机作为子对象添加到其中即可。

然后,您可以将旋转应用于父对象,并且相机应围绕其父对象旋转并始终面向它。

如果要更改目标,只需删除父级子级,将前父级的位置更改为新位置,将相机旋转到该位置(使用transform.LookAt())并设置父级子级就像以前一样。