Страница 1 из 1

Оси вращения

СообщениеДобавлено: 20 ноя 2017, 18:11
Yaro
Здравствуйте, помогите разобраться.
Написал простой скрипт по вращению go по 3ем осям с указаной скоростью.
Синтаксис:
Используется csharp
public Vector3 Speed;
void Update () {
        float dt = Time.deltaTime;
        Vector3 rot = gameObject.transform.eulerAngles;
        Vector3 newrot = new Vector3 (rot.x + Speed.x * dt, rot.y + Speed.y * dt, rot.z + Speed.z * dt);
        gameObject.transform.eulerAngles = newrot;
}

Если указать скорость Speed.y, go нормально вращается.
Если указать скорость Speed.z, go нормально вращается.
Если указать скорость Speed.y и Speed.z, go нормально вращается, но в инспекторе видно, как Transform.Rotation.x переодически прыгает на -180 и обратно на 0, хотя Speed.x на 0.
Если указать скорость Speed.x, вращается доходит до 90/-90 и Transform.Rotation.x/y/z сходит с ума в диапазоне 1.52.
Чем x ось болеет?

Re: Оси вращения

СообщениеДобавлено: 20 ноя 2017, 18:27
waruiyume
Складывание рамок?

Re: Оси вращения

СообщениеДобавлено: 20 ноя 2017, 19:32
Yaro
waruiyume писал(а):Складывание рамок?

Gimbal lock, да тут целая эпидемия.
(3A4OT)

Re: Оси вращения

СообщениеДобавлено: 20 ноя 2017, 19:33
snezhok_13
Шарнирный замок?

Re: Оси вращения

СообщениеДобавлено: 20 ноя 2017, 19:53
Yaro
snezhok_13 писал(а):Шарнирный замок?

Шарнирный замок, Блокировка осей, Складывание рамок.
Русская терминология сильно разрознена. англ. термин Gimbal lock!
Детали работы углов Эйлера методично вращаясь, сварачивают мозг в трубочку...
"Я твой угол по оси вертел" мне в данный момент кажется более матерным, чем ДОТАвское "Я твою маму ХХХХ в кино водил".