Суббота, 24 Августа 2019, 14:51

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Поворот(физикой) игрока за 3д курсором
Поворот(физикой) игрока за 3д курсором
ShovelДата: Суббота, 26 Января 2019, 21:01 | Сообщение # 1
уже был
Сейчас нет на сайте
Вопрос по поводу вращения rb.Объект(игрок.может перемещаться через rb.velocity) должен вращаться за другим объектом(3д курсор). Угл на который необходимо поворачивать рассчитываю в полне правильно через Vector3.SignedAngle но вот с поворотами беда.При угле поворота больше чем скорость поворота всё происходит прекрасно(угл>скорость поворота).Вращение производил через rb.angularVelocity но начинаются проскакивания как только угл<скорость поворота.Уменьшение в разумных пределах fixedtimestep не решает проблемы при скорости к примеру 180+град/сек.Пробовал при оставшемся угле>скоростьПоворота вносить условие и поворачивать игрока через rb.MoveRotation в ручную к 0 град при углах +-N но появляется дребезжание.Много чего уже перепробовал и пока это лучшее что получилось для вращения физикой.Может есть у кого идеи или наработки? цель именно вращать rb объект за 3д курсором с некой угловой скоростью.Вариант с вращение+перемещение трансформом не рассматривается в связи с необходимостью отслеживать коллизию 2х и более перемещающихся объектов по сцене.Мне уже начинает казаться что проще погрузится в вопрос определение коллизий и написать свою коллизию,а затем перемещать и вращать трансформом, чем найти нормальное решение...
Один из примеров поворота:
Код

//_RotMaxSpeedStay - Cкорость поворота град/сек
// _angleRot - Угл на который осталось повернуть объект(всегда известен)

if (_angleRot > 0 && _angleRot != 0)
{
_rb.AddTorque(new Vector3(0, -_RotMaxSpeedStay * Time.fixedDeltaTime, 0), ForceMode.VelocityChange);
}
if (_angleRot < 0 && _angleRot != 0)
{
_rb.AddTorque(new Vector3(0, _RotMaxSpeedStay * Time.fixedDeltaTime, 0), ForceMode.VelocityChange);
}


Заранее благодарю.

p.s доворачивать трансформом включая в этот момент кинематик или снижать скорость при 0+-N град пока не рассматриваю.
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Поворот(физикой) игрока за 3д курсором
  • Страница 1 из 1
  • 1
Поиск:

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