Четверг, 28 Марта 2024, 23:56

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Поворот объекта и проверка на разницу в углах
Поворот объекта и проверка на разницу в углах
lakorisДата: Понедельник, 04 Августа 2014, 16:50 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Ребятки, такой вопрос.
Поворачиваю объект к цели:
Код
Player.rotation = Quaternion.Slerp(Player.rotation, Quaternion.LookRotation(needPos - Player.position), 3 * Time.deltaTime);

---
Как мне проверить, повернулся ли он полностью на этот объект?
Код
Vector3 dir = needPos - Player.position;
Quaternion rot = Quaternion.LookRotation(dir);
if(transform.rotation == rot)...
не катит
ЛевшаДата: Понедельник, 04 Августа 2014, 17:17 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
Slerp или Lerp никогда не довернет обьект до конечного искомого угла, он будет лишь бесконечно к нему стремится.
Поэтому проверять на равенство нельзя, надо давать небольшой допуск.
О том что нельзя сравнивать Quaternion и Vector3 - это и так - само собой ясно...
Можно мерять угол между направлениями через Vector3.Angle() и сравнивать с малой величиной, которой можно пренебречь.


X.cor.R (Prologue)

Сообщение отредактировал Левша - Понедельник, 04 Августа 2014, 17:19
lakorisДата: Понедельник, 04 Августа 2014, 17:39 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Левша, спасибо! То что нужно. Очередной раз выручаешь)
Код
Player.rotation = Quaternion.Lerp(Player.rotation, rot, Time.deltaTime * 5);
                     float angle = Vector3.Angle(dir, transform.forward);
                     if(angle <= 0.25)
                     Player.position = Vector3.MoveTowards(Player.position, needPos, Time.deltaTime * 5);

Добавлено (04.08.2014, 17:39)
---------------------------------------------
Левша, + через 5 часов дать смогу)

allodsДата: Понедельник, 04 Августа 2014, 18:18 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
ну если ты девушка то я думаю он будет рад
ЛевшаДата: Понедельник, 04 Августа 2014, 18:55 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
Цитата allods ()
если ты девушка

Цитата lakoris ()
через 5 часов дать смогу

lol


X.cor.R (Prologue)
lakorisДата: Понедельник, 04 Августа 2014, 22:18 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Когда я писал это, я знал, что такое может произойти. Хахах biggrin Лови плюс)

Добавлено (04.08.2014, 22:18)
---------------------------------------------
Таки нет. еще пол часа

Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Поворот объекта и проверка на разницу в углах
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг