Угол наклона объекта в градусах

Программирование на Юнити.

Угол наклона объекта в градусах

Сообщение Sandirk 31 мар 2020, 19:21

Здравствуйте, потратил пол дня, пытаясь написать скрипт, который измерял локальный угол наклона тела в оси X, вышло не очень.
Использую строку кода Deg = Rigidbody.transform.localEulerAngles.x; Она хоть и считывает угол, но делает это неправильно. К примеру если начать отклонять объект влево, будут следующие значения: 0...30...60...90...60...30...0. После наклона тела на 90 градусов и при дальнейшем вращении цифра начинает уменьшаться обратно к нулю. Следовательно поворачивая тело на 180 градусов я получаю вместо набора уникальных значений угла несколько повторяющихся. (надеюсь понятно объяснил). Скажите как мне считать правильный угол наклона, основываясь на Rigidbody. Очень желательно, чтобы кто-то исправил ту строчку кода, что я написал выше. Потратил уйму времени на изучение этого вопроса, но так и на нашёл ответа.
Аватара пользователя
Sandirk
UNITрон
 
Сообщения: 150
Зарегистрирован: 04 фев 2019, 21:48

Re: Угол наклона объекта в градусах

Сообщение 1max1 01 апр 2020, 09:16

Всё она считает правильно, это же углы Эйлера. Хочешь найти угол отклонения, сравнивай напрямую.
Синтаксис:
Используется csharp
    void Update()
    {
        var f = Vector3.Cross(transform.right, Vector3.up);
        print(Vector3.SignedAngle(f, transform.forward, transform.right));
    }
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: GoGo.Ru [Bot] и гости: 11