Как ограничить полет космического корабля? - Форум Игроделов
Пн, 20 Май 2024, 00:44 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Как ограничить полет космического корабля?
Как ограничить полет космического корабля?
kokonДата: Пт, 13 Июн 2014, 09:57 | Сообщение # 1
Нет аватара
 
Сообщений: 2
Награды: 0
Репутация: 0
Статус: Offline
Здравствуйте! Делаю игру гонки в космосе. И тут столкнулся с проблемой. Надо каким-то образом ограничить полет игроков, т.е. чтобы они не разлетались по всему космосу, а в пределах какого-то объема могли двигаться свободно, но все равно летели бы к концу маршрута. Думал сначала сделать огромную трубу(невидимую), игрок бы внутри нее летел, а за пределы вылететь не мог, но она в юнити как-то странно отображается, стенки ее то исчезают, снова появляются. Можно конечно программно ограничить, но только я не знаю как это с помощью векторов сделать. У кого-нибудь есть идеи?

Нашел скрипт полета. В нем само движение осуществляется в этих строках:
Код

velocityTarget = (rigidbody.rotation * Vector3.forward) *(Speed + MoveSpeed);
   rigidbody.velocity = Vector3.Lerp(rigidbody.velocity,velocityTarget,Time.fixedDeltaTime);


получается надо проверять выходит ли transform.position за определенную границу, а velocityTarget ограничивать, если корабль выходит за границы. Но как это сделать что-то я не пойму. Пытался (Speed + MoveSpeed) обнулять, но тогда корабль при выходе за границу вообще перестает двигаться.
 
СообщениеЗдравствуйте! Делаю игру гонки в космосе. И тут столкнулся с проблемой. Надо каким-то образом ограничить полет игроков, т.е. чтобы они не разлетались по всему космосу, а в пределах какого-то объема могли двигаться свободно, но все равно летели бы к концу маршрута. Думал сначала сделать огромную трубу(невидимую), игрок бы внутри нее летел, а за пределы вылететь не мог, но она в юнити как-то странно отображается, стенки ее то исчезают, снова появляются. Можно конечно программно ограничить, но только я не знаю как это с помощью векторов сделать. У кого-нибудь есть идеи?

Нашел скрипт полета. В нем само движение осуществляется в этих строках:
Код

velocityTarget = (rigidbody.rotation * Vector3.forward) *(Speed + MoveSpeed);
   rigidbody.velocity = Vector3.Lerp(rigidbody.velocity,velocityTarget,Time.fixedDeltaTime);


получается надо проверять выходит ли transform.position за определенную границу, а velocityTarget ограничивать, если корабль выходит за границы. Но как это сделать что-то я не пойму. Пытался (Speed + MoveSpeed) обнулять, но тогда корабль при выходе за границу вообще перестает двигаться.

Автор - kokon
Дата добавления - 13 Июн 2014 в 09:57
AltairДата: Пт, 13 Июн 2014, 10:32 | Сообщение # 2
Unity 3D PRO Developer
 
Сообщений: 758
Награды: 6
Репутация: 195
Статус: Offline
kokon, ты попробуй всё таки ещё раз через коллайдеры.
 
Сообщениеkokon, ты попробуй всё таки ещё раз через коллайдеры.

Автор - Altair
Дата добавления - 13 Июн 2014 в 10:32
commandobyДата: Пт, 13 Июн 2014, 13:18 | Сообщение # 3
Unity 3D Free
 
Сообщений: 836
Награды: 3
Репутация: 211
Статус: Offline
Можно сделать эту трубу (цилиндр) триггером, отслеживать нахождение игрока внутри трубы, а если он её покидает - выводить предупреждающую надпись, мол "Сбились с курса".


P.S. Тема Расположена не там.


Блог.

Сообщение отредактировал commandoby - Пт, 13 Июн 2014, 13:20
 
СообщениеМожно сделать эту трубу (цилиндр) триггером, отслеживать нахождение игрока внутри трубы, а если он её покидает - выводить предупреждающую надпись, мол "Сбились с курса".


P.S. Тема Расположена не там.

Автор - commandoby
Дата добавления - 13 Июн 2014 в 13:18
PinkPanterДата: Ср, 02 Июл 2014, 01:25 | Сообщение # 4
Нет аватара
 
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
Сделать по периметру колайдеры на пустышках, прописать им реакцию на колайдер кораблей.
Но не совсем понятно что значит ограничить? Что бы врезались и останавливались?
 
СообщениеСделать по периметру колайдеры на пустышках, прописать им реакцию на колайдер кораблей.
Но не совсем понятно что значит ограничить? Что бы врезались и останавливались?

Автор - PinkPanter
Дата добавления - 02 Июл 2014 в 01:25
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Как ограничить полет космического корабля?
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024