Как установить ограничение вертикального вращения камеры Unity3DC#

Место общения программистов C#
Ответить
Anonymous
 Как установить ограничение вертикального вращения камеры Unity3D

Сообщение Anonymous »

Я хочу повернуть камеру вокруг объекта на 360 градусов по горизонтали и ограничить вертикальное вращение от -45 до 45 градусов. Я нашел какое-то решение в Интернете, но ни одно из них не работает при вводе щелчком мыши.
Вот мой рабочий код без ограничения вертикального вращения:

Код: Выделить всё

[SerializeField]
private Camera _camera;

[SerializeField]
private Transform target;

private Vector3 previousPosition;

// Start is called before the first frame update
void Start()
{
}

// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
previousPosition = _camera.ScreenToViewportPoint(Input.mousePosition);
}

if (Input.GetMouseButton(0))
{
Vector3 direction = previousPosition - _camera.ScreenToViewportPoint(Input.mousePosition);

_camera.transform.position = target.position;

_camera.transform.Rotate(new Vector3(1, 0, 0), direction.y * 180);
_camera.transform.Rotate(new Vector3(0, 1, 0), -direction.x * 180, Space.World);
_camera.transform.Translate(new Vector3(0, 0.3f, -3));

previousPosition = _camera.ScreenToViewportPoint(Input.mousePosition);
}
}
Как ограничить вертикальное вращение?

Подробнее здесь: https://stackoverflow.com/questions/725 ... tion-limit
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»