Ограничить вращение объекта по одной из осей

142
14 февраля 2022, 01:30

Как ограничить вращение объекта по одной из осей, например, на 30 градусов?
Объект двигается зажатой кнопкой мыши.

void OnMouseDrag()
{
    float rotaion = Input.GetAxis("Mouse X") * rotationSpeed * Time.deltaTime;
    if (Input.GetKey(KeyCode.Mouse0))
    transform.Rotate(Vector3.down, rotaion, Space.Self);
}
Answer 1
void OnMouseDrag()
{
    float rotaion = Input.GetAxis("Mouse X") * rotationSpeed * Time.deltaTime;
    float rotateAngle = 30,0f;
    Vector3 startRotation;
    if (Input.GetKey(KeyCode.Mouse0))
    {
        float minRotation = startRotation.y - rotateAngle / 2;
        float maxRotation = startRotation.y + rotateAngle / 2;
        Vector3 currentRotation = transform.eulerAngles;
        if(minRotation <= currentRotation.y + rotaion && currentRotation.y + rotaion <= maxRotation)
        {
            transform.Rotate(Vector3.down, rotaion, Space.Self);
        }
    }
}

Тут он проверяет - если во время поворота предмет не выйдет за границ поворота, то поворачивается.
Легко и просто :-)

READ ALSO
как управлять MODBUS? [закрыт]

как управлять MODBUS? [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме

139
Как сделать переход между background-color двух divов

Как сделать переход между background-color двух divов

Нужно сделать плавный переход между двумя блоками, но не знаю как это можно реализоватьс #C4C4C4 к #000000

120
При просмотре кода появился длинный прямоугольник, это нормально и что делать?

При просмотре кода появился длинный прямоугольник, это нормально и что делать?

Вобщем делаю я меню и просмотрел код элемента появился вот этот длинный прямоугольникМеню находиться в теге section

89
Блокируется свойство &quot;background&quot;

Блокируется свойство "background"

В браузерах Chrome и Firefox перестали отображаться логотип и другие иконки - блокируется свойство "background"В других браузерах все нормально отображается

81