首页 文章

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

提问于
浏览
1

我想在游戏对象周围移动相机,换句话说:当我按住鼠标中键并且我正在移动鼠标时,相机应该在这个游戏对象周围移动,(就像地球周围的太阳但是在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 回答

  • 2

    我只需在您要观察的位置添加一个空对象,并将相机作为子项添加到其中 .

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

    如果要更改目标,只需删除父子层次结构,移动将前父项的位置更改为新位置,将相机旋转到它(使用 transform.LookAt() )并再次设置父子层次结构,就像之前一样 .

相关问题