Глюк с осями(Помогите выявить глюк)

Общие вопросы о Unity3D

Глюк с осями(Помогите выявить глюк)

Сообщение Skval 06 дек 2010, 10:05

Народ, мне тут старнный косяк в [unity 3D] попался, создайте кубик, поверните его по оси X на 270, а потом попробуйте плюсовать к оси Z с помощью самого простого кода через (c#) или (js). У меня почему то градусы меняются по оси Y, т.е. если я плюсую к Z то увеличивается Y и если к Y то тоже увеличивается Y (P) у меня из-за этого косяка проблемы не малые позже могу и сборку выложить, но тут по сути я хотел бы что бы кто-нибудь сам попробывал собрать, да посмотреть, авось такой стрёмный глюк тока у меня...
Skval
UNец
 
Сообщения: 9
Зарегистрирован: 29 мар 2010, 18:59

Re: Глюк с осями(Помогите выявить глюк)

Сообщение Multirezonator 06 дек 2010, 11:44

Правильно перемещать по оси Z в глобальных координатах будет например так:

transform.Translate(Vector3.forward*Time.deltaTime, Space.World);

У меня все работает правильно и объекты двигаются именно по Z, приведите пример своего скрипта, конкретно как вы двигаете объект?
Скрытый текст:



Аватара пользователя
Multirezonator
UNITрон
 
Сообщения: 248
Зарегистрирован: 15 фев 2010, 16:12
Откуда: Украина, Луганск
  • Сайт

Re: Глюк с осями(Помогите выявить глюк)

Сообщение Skval 06 дек 2010, 13:18

Я говорил не про перемещение, а про вращение, насколько помню градусы используются именно для этого. :ymbringiton:
Skval
UNец
 
Сообщения: 9
Зарегистрирован: 29 мар 2010, 18:59

Re: Глюк с осями(Помогите выявить глюк)

Сообщение Zaicheg 06 дек 2010, 13:50

Skval писал(а):Я говорил не про перемещение, а про вращение, насколько помню градусы используются именно для этого. :ymbringiton:

Строго говоря, для этого используются кватернионы.
А глюк ваш от того, что Transform.Rotate по умолчанию работает с локальной системой координата. Задайте явно мировую (дополнительный аргумент, в справке есть).
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Глюк с осями(Помогите выявить глюк)

Сообщение Multirezonator 06 дек 2010, 13:59

Multirezonator писал(а):Правильно перемещать по оси Z в глобальных координатах будет например так:

transform.Translate(Vector3.forward*Time.deltaTime, Space.World);

У меня все работает правильно и объекты двигаются именно по Z, приведите пример своего скрипта, конкретно как вы двигаете объект?
Skval писал(а):Я говорил не про перемещение, а про вращение, насколько помню градусы используются именно для этого. :ymbringiton:

Все нормально работает, вместо Translate используем Rotate и учим геометрию.
Zaicheg писал(а):Строго говоря, для этого используются кватернионы.
А глюк ваш от того, что Transform.Rotate по умолчанию работает с локальной системой координата. Задайте явно мировую (дополнительный аргумент, в справке есть).

По одной оси можно и без кватернионов вращать правильно, главное понимать что делаешь..
Скрытый текст:



Аватара пользователя
Multirezonator
UNITрон
 
Сообщения: 248
Зарегистрирован: 15 фев 2010, 16:12
Откуда: Украина, Луганск
  • Сайт

Re: Глюк с осями(Помогите выявить глюк)

Сообщение Zaicheg 06 дек 2010, 14:13

Multirezonator писал(а):По одной оси можно и без кватернионов вращать правильно, главное понимать что делаешь..

Я имею в виду, что все входы в углах Эйлера переводятся в кватернионы.
"Unity internally uses Quaternions to represent all rotations."
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Глюк с осями(Помогите выявить глюк)

Сообщение Skval 06 дек 2010, 17:04

Вот я прекрепил сценку прошу обратить внимание что объект должен вращаться по другой оси, попробуйте в коде элементарно заменить Z на Y ничего не изменится, хотя ось должна была смениться они же совпадать не могут.
У вас нет доступа для просмотра вложений в этом сообщении.
Skval
UNец
 
Сообщения: 9
Зарегистрирован: 29 мар 2010, 18:59

Re: Глюк с осями(Помогите выявить глюк)

Сообщение Zaicheg 06 дек 2010, 17:28

Код: Выделить всё
transform.eulerAngles += new Vector3(0, 0, Time.deltaTime * 30f);

Из справки по Transform.eulerAngles
"Only use this variable to read and set the angles to absolute values. Don't increment them, as it will fail when the angle exceeds 360 degrees. Use Transform.Rotate instead. "

Через Rotate я получаю ожидаемые и понятные результаты (и не забываем про аргумент типа Space).
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Глюк с осями(Помогите выявить глюк)

Сообщение Skval 06 дек 2010, 17:46

а если мне повернуть надо на определённый градус, а не постоянно вращать? я пробывал через rotation тоже самое происходит если наклон 270
Skval
UNец
 
Сообщения: 9
Зарегистрирован: 29 мар 2010, 18:59

Re: Глюк с осями(Помогите выявить глюк)

Сообщение Zaicheg 06 дек 2010, 18:34

Skval писал(а):а если мне повернуть надо на определённый градус, а не постоянно вращать?

void Start() { transform.Rotate(new Vector(0, 0, определённый_градус), Space.Self) }
Например.

я пробывал через rotation тоже самое происходит если наклон 270

Не через rotation, а через Rotate.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Глюк с осями(Помогите выявить глюк)

Сообщение Skval 06 дек 2010, 19:06

Да дело в том что я нахожу наклон через нормали для объекта в кватерионах и мне надо, ещё дополнительно повернуть объект вокруг своей оси...ну ладно попробую сам что нибудь намутить...
Skval
UNец
 
Сообщения: 9
Зарегистрирован: 29 мар 2010, 18:59

Re: Глюк с осями(Помогите выявить глюк)

Сообщение Zaicheg 06 дек 2010, 19:13

Skval писал(а):Да дело в том что я нахожу наклон через нормали для объекта в кватерионах и мне надо, ещё дополнительно повернуть объект вокруг своей оси...ну ладно попробую сам что нибудь намутить...

Метод Rotate полностью решает вашу задачу.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Глюк с осями(Помогите выявить глюк)

Сообщение Golandez 06 дек 2010, 22:42

Поскольку подглючил ТС, тема перемещена в соответствующий раздел.
Ты нужен только тогда,когда нужен.(С)
Сказать спасибо
Аватара пользователя
Golandez
Пилигрим
 
Сообщения: 1637
Зарегистрирован: 06 авг 2009, 13:55
Откуда: Харьков
Skype: lestardigital


Вернуться в Общие вопросы

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15