Поворот камеры вокруг объекта с помощью мыши Unity - PullRequest
0 голосов
/ 03 июля 2018

Я хочу переместить камеру вокруг игрового объекта, другими словами: когда я держу среднюю кнопку мыши и двигаю мышь, камера должна перемещаться вокруг этого игрового объекта (как планета Земля вокруг Солнца, но также и по оси 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 голосов
/ 03 июля 2018

Я бы просто добавил пустой объект в то место, которое вы хотите наблюдать, и добавил бы к нему камеру как ребенка.

Затем вы можете применить вращение к родительскому объекту, и камера должна вращаться вокруг своего родителя и всегда быть направленной к нему.

Если вы хотите изменить цель, просто удалите родительскую дочернюю иерархию, переместите, измените положение прежнего родителя на новое местоположение, поверните камеру к нему (с помощью transform.LookAt()) и снова установите родительско-дочернюю иерархию. как и раньше.

...