Как настроить неограниченный поворот объекта вокруг оси X в Unity?

Как можно настроить данный код, чтобы при значении поворота по оси X равном -40° он оставался неизменным, а при значении 26° также не изменялся?
  • 25 мая 2024 г. 21:40
Ответы на вопрос 2
Для этого можно использовать код вот так:

```csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RotateObject : MonoBehaviour
{
    void Start()
    {
        
    }

    void Update()
    {
        float rotationX = transform.rotation.eulerAngles.x;

        if(rotationX < -40f || rotationX > 26f)
        {
            transform.rotation = Quaternion.Euler(-40f, transform.rotation.eulerAngles.y, transform.rotation.eulerAngles.z);
        }
    }
}
```

Этот код будет проверять текущий угол поворота объекта по оси X и, если он меньше -40° или больше 26°, то объект будет поворачиваться обратно к данным значениям. Таким образом, объект будет оставаться на месте при достижении нужных значений.
При считывании мыши не надо домножать на дельту, там и так идет дельта от предыдущий позиции. Не совсем понял что вам тут нужно, по коду ограничить поворот 310-50 
[SerializeField] float rotationSpeed = 360f;
    [SerializeField] float _inputPower=5f;
    float _inputY;

    private void Update()
    {
        _inputY -= Input.GetAxis("Mouse Y") * _inputPower;
        _inputY = Mathf.Clamp(_inputY, -50f, 50f);
        transform.rotation = Quaternion.RotateTowards(transform.rotation, Quaternion.Euler(Vector3.up * _inputY), rotationSpeed * Time.deltaTime);
    }

если с осью поворота не угадал то Vector3.up изменить на другую
Похожие вопросы