@NikitaRusan

Как ограничить поворот по оси X?

Когда поворот по оси X будет равным -40, нужно чтоб он таким и остался. с другой стороны когда X равен 26, он таким же и оставался. вот код:
float currentRotationY = transform.eulerAngles.y;

currentRotationY -= Input.GetAxis("Mouse Y") * rotationSpeed * Time.deltaTime;

if (currentRotationY < 180 && currentRotationY > 0)
    currentRotationY = Mathf.Clamp(currentRotationY, 0f, 50f);
if (currentRotationY < 0)
    currentRotationY += 360;
if (currentRotationY > 180)
    currentRotationY = Mathf.Clamp(currentRotationY, 310f, 360f);

transform.Rotate(currentRotationY * new Vector3(1f, 0f, 0f));
  • Вопрос задан
  • 38 просмотров
Решения вопроса 1
@DrRen7
При считывании мыши не надо домножать на дельту, там и так идет дельта от предыдущий позиции. Не совсем понял что вам тут нужно, по коду ограничить поворот 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 изменить на другую
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы