Как исправить инвертированное отображение скрипта по горизонтали в Unity?

Как можно улучшить скрипт управления камерой в Unity, чтобы реализовать перемещение камеры вокруг целевого объекта и при этом ограничить углы поворота камеры?
  • 19 июня 2024 г. 11:01
Ответы на вопрос 1
1. Для исправления инвертированного отображения скрипта по горизонтали в Unity можно добавить следующий код в скрипт, отвечающий за управление камерой:

```csharp
void Update()
{
    float mouseX = Input.GetAxis("Mouse X");
    transform.Rotate(Vector3.up, mouseX * Time.deltaTime * sensitivity);
}
```

2. Для улучшения скрипта управления камерой и ограничения углов поворота можно использовать следующий код:

```csharp
public float minVerticalAngle = -90f;
public float maxVerticalAngle = 90f;

void Update()
{
    float mouseX = Input.GetAxis("Mouse X");
    float mouseY = Input.GetAxis("Mouse Y");
    
    float rotationX = transform.localEulerAngles.x - mouseY * sensitivity;
    rotationX = Mathf.Clamp(rotationX, minVerticalAngle, maxVerticalAngle);
    
    transform.localEulerAngles = new Vector3(rotationX, transform.localEulerAngles.y, 0);
    transform.Rotate(Vector3.up, mouseX * sensitivity);
}
```

В этом коде устанавливаются минимальные и максимальные углы поворота камеры по вертикали и ограничивается их изменение с помощью метода `Mathf.Clamp`. Теперь камера будет ограничена в своих движениях и не будет выходить за заданные пределы.
Похожие вопросы