Не эквивалентные повороты

136
28 августа 2019, 13:10

Не могу понять, почему эти две строки работают по-разному:

transform.Rotate(-90 * Time.deltaTime, 0, 0);
transform.eulerAngles = 
    new Vector3(transform.eulerAngles.x + (-90 * Time.deltaTime), 0, 0);

Проблема видна на видео: Видео

Где тот что нормально крутиться то через Rotate

Answer 1

Не с этим ли связано (относительно чего вращение)?

Rotate

public void Rotate(Vector3 eulers, Space relativeTo = Space.Self);

If relativeTo is not specified or set to Space.Self the rotation is applied around the transform's local axes. If relativeTo is set to Space.World the rotation is applied around the world x, y, z axes.

По установке углов eulerAngles, кстати, есть такая ремарка:

Don't increment them, as it will fail when the angle exceeds 360 degrees.

Answer 2

для вращения используй только Quaternion, Vector3 - только для установки значений (чтобы было удобно читать)
https://docs.unity3d.com/ScriptReference/Transform-rotation.html

READ ALSO
C# Программное создание потоков

C# Программное создание потоков

Как создать определенное количество потоков при помощи кода? Пробовал так, но программа зависает и работает медленнее, чем если объявлять...

124
Поиск скрытого компонента (Visible = false)

Поиск скрытого компонента (Visible = false)

После InitializeComponent(); скрываю пункты MenuStripДелаю это следующим образом:

97
Нужен простой конвертер byte[] to Image WPF

Нужен простой конвертер byte[] to Image WPF

Есть бд MSSQL в ней таблица в которой в поле Logo типа Image хранятся изображения формата jpeg(да, я знаю что так делать не есть хорошо но у меня такое...

107
WPF + ссылка на сайт кнопкой

WPF + ссылка на сайт кнопкой

Столкнулся с проблемой в создании ссылки на определенный сайт с помощью кнопки в WPF, можно ли вообще её как-нибудь сделать, или нет? Если можно,...

129