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`. Теперь камера будет ограничена в своих движениях и не будет выходить за заданные пределы.