Повороты объектов

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

Повороты объектов

Сообщение Tolking 05 фев 2010, 16:55

Код: Выделить всё
      if (tgl.Checked)
        {
            cam.transform.Rotate(-cam.transform.localEulerAngles, Space.Self);
            cam.transform.Rotate(new Vector3(180, 0, 0), Space.Self);
            cam.transform.Rotate(new Vector3(0, 0, 180), Space.Self);
        }
        else
        {
            cam.transform.LookAt(cam.transform.parent.transform);
       };


Что-то я нифига не понимаю как в Юнити с углами работать! Камера прицеплена к пивоту нужно чтобы при установке галочки она смотрела четко вниз при любом повороте парента. В моей "подгонке" под результат:
Код: Выделить всё
   cam.transform.Rotate(-cam.transform.localEulerAngles, Space.Self);
            cam.transform.Rotate(new Vector3(180, 0, 0), Space.Self);
            cam.transform.Rotate(new Vector3(0, 0, 180), Space.Self);

Работает только если парента не крутить. Где я опять туплю?
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2718
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Повороты объектов

Сообщение Neodrop 05 фев 2010, 16:58

Сделай проект-пример и прикрепи тут. Так куда проще будет тебе помочь.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Повороты объектов

Сообщение Satan 08 фев 2010, 20:42

Не вдавался в суть проблемы (занят немного) - а попробуй крутить парент в одну сторону, и на столько же камеру - в противоположную!Это не выход из ситуации...а врменное решение ИМХО. И не надо в меня кидаться камнями , выход через (полная Ж) это тоже выход)
My name is Legion : For we are many
Аватара пользователя
Satan
UNец
 
Сообщения: 15
Зарегистрирован: 21 янв 2010, 22:52
Откуда: Молдова,Кишинёв

Re: Повороты объектов

Сообщение gnoblin 08 фев 2010, 22:55

повесь го-пустышку снизу и делай на него LookAt() :)
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Повороты объектов

Сообщение Tolking 09 фев 2010, 12:09

Ну тут можно и без ГО обойтись вроде, Vector3 собрать и на него направится. Хочу разобраться с поворотами.

Я привык с эйлерами работать в локальных или глобальных, а тут все серьезно! Углы непойму в чем в градусах или в радианах,(и так пробовал и так) возвращаются углы толи глобальные, толи локальные. Шкала углов толи 0/360 толи +180/-180 Вобщем офигел от обилия возможностей изменить углы объекта и получить эти углы...

Собрать демку и выложить пока немогу, с выложить проблемы. :(
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2718
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Повороты объектов

Сообщение Tolking 09 фев 2010, 14:08

Код: Выделить всё
            Vector3 vec = new Vector3(cam.transform.position.x, -1000, cam.transform.position.z);
            cam.transform.LookAt(vec);


При таком подходе смотрит в верном направлении, но вверх ногами.
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2718
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Повороты объектов

Сообщение gnoblin 09 фев 2010, 16:10

Доворачивай по Z на 180 градусов тогда :)
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Повороты объектов

Сообщение Tolking 09 фев 2010, 17:02

Не катит все это. Это просто подгонка под результат. Если приходится на начальном этапе такой фигней заниматься, то что дальше будет?

Я просто чего-то недогоняю и туплю... А где туплю и чего недогоняю? С этим нужно переспать....
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2718
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Повороты объектов

Сообщение Kann 09 фев 2010, 23:55

так не пойдет поворачивать ? вроде в градусах...
Код: Выделить всё
go.localRotation = Quaternion.Euler(0, 30, 0);
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

Re: Повороты объектов

Сообщение Slava 10 фев 2010, 03:38

А если так:

if (tgl.Checked)
{
cam.transform.rotation = Quaternion.FromToRotation (Vector3.forward, -Vector3.up);
}
else
{
cam.transform.LookAt(cam.transform.parent.transform);
}
Добавить slava-1234 в Skype
Slava
UNIт
 
Сообщения: 135
Зарегистрирован: 05 апр 2009, 05:14

Re: Повороты объектов

Сообщение Tolking 10 фев 2010, 09:17

Kann писал(а):так не пойдет поворачивать ? вроде в градусах...
Код: Выделить всё
go.localRotation = Quaternion.Euler(0, 30, 0);

Вот что я не догонял! Как устанавливать напрямую углы!

Slava писал(а):if (tgl.Checked)
{
cam.transform.rotation = Quaternion.FromToRotation (Vector3.forward, -Vector3.up);
}
else
{
cam.transform.LookAt(cam.transform.parent.transform);
}

Проверять не буду, но вроде камера будет выравниваться в глобальных координатах.

Собственно, как обычно, в итоге все сложнее:
Код: Выделить всё
     Camera cam = Camera.mainCamera;
     float dist = cam.transform.localPosition.magnitude;
      if (tgl.Checked)
        {
            cam.transform.localPosition =new Vector3(0,dist,0);
            cam.transform.Rotate(90-cam.transform.localEulerAngles.x,0,0);
        }
        else
        {
         dist = Mathf.Sin(45*Mathf.Deg2Rad)*dist;
         cam.transform.localPosition = new Vector3(0, dist, dist);
         cam.transform.LookAt(cam.transform.parent.transform);
        };

Т.к. камера у меня еще и "зумится". Простым поворотом не обошелся.
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2718
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула


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

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

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