Получение результирующего вектора направления - Форум Игроделов
Ср, 08 Май 2024, 21:47 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Получение результирующего вектора направления
Получение результирующего вектора направления
NapalmRainДата: Вт, 05 Апр 2016, 15:27 | Сообщение # 1
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Всем доброго времени суток!
За последние дни я насоздавал тем, как истинный новичок, но то ли голова не работает, то ли я ищу информацию не там, где нужно.

Продолжаю познавать мир двухмерных игр, но сегодняшний вопрос касается наверное и трёхмерных одинаково. Итак, цель:

Сделать телепорт, сохраняющий физику.
У нас есть синий портал, в который с любой стороны произвольно влетает снаряд. Снаряд должен вылететь из красного портала, сохранив свои физические значение, но (это очень важно) именно по отношению к порталу из которого он выходит, а не к миру.

То есть система аналогичная тому, как это было реализовано в игре Portal.

На данный момент я сделал следующее: при попадании снаряда в портал я считываю его Velocity, затем меняю transform.position на новую позицию (переношу его на место выходного портала) и задаю его rigidBody новое ускорение, умножив transform.Forward выходного портала на модуль длины Velocity.
Получается, что как бы он не влетел, вылетать он всегда будет прямо, лишь сохранив своё ускорение, но не направление.

А очень сильно хотелось бы сохранить и направление,

То есть если ориентироваться на схему: если снаряд влетает в портал под углом -125 градусов по отношения к его transform.Forward, то чтоб с таким же углом он вылетел и из выходного портала.

перепробовал все методы Quatrenion, но ничего толкового не получилось.

Заранее благодарю за любой совет!
 
СообщениеВсем доброго времени суток!
За последние дни я насоздавал тем, как истинный новичок, но то ли голова не работает, то ли я ищу информацию не там, где нужно.

Продолжаю познавать мир двухмерных игр, но сегодняшний вопрос касается наверное и трёхмерных одинаково. Итак, цель:

Сделать телепорт, сохраняющий физику.
У нас есть синий портал, в который с любой стороны произвольно влетает снаряд. Снаряд должен вылететь из красного портала, сохранив свои физические значение, но (это очень важно) именно по отношению к порталу из которого он выходит, а не к миру.

То есть система аналогичная тому, как это было реализовано в игре Portal.

На данный момент я сделал следующее: при попадании снаряда в портал я считываю его Velocity, затем меняю transform.position на новую позицию (переношу его на место выходного портала) и задаю его rigidBody новое ускорение, умножив transform.Forward выходного портала на модуль длины Velocity.
Получается, что как бы он не влетел, вылетать он всегда будет прямо, лишь сохранив своё ускорение, но не направление.

А очень сильно хотелось бы сохранить и направление,

То есть если ориентироваться на схему: если снаряд влетает в портал под углом -125 градусов по отношения к его transform.Forward, то чтоб с таким же углом он вылетел и из выходного портала.

перепробовал все методы Quatrenion, но ничего толкового не получилось.

Заранее благодарю за любой совет!

Автор - NapalmRain
Дата добавления - 05 Апр 2016 в 15:27
ЛевшаДата: Ср, 06 Апр 2016, 12:09 | Сообщение # 2
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата NapalmRain ()
А очень сильно хотелось бы сохранить и направление

Не нужно умножать форвард на велосити.
Сохраняй отдельно направление и отдельно скорость.
Затем рассчитывай направление уже по отношению к новому порталу.


X.cor.R (Prologue)
 
Сообщение
Цитата NapalmRain ()
А очень сильно хотелось бы сохранить и направление

Не нужно умножать форвард на велосити.
Сохраняй отдельно направление и отдельно скорость.
Затем рассчитывай направление уже по отношению к новому порталу.

Автор - Левша
Дата добавления - 06 Апр 2016 в 12:09
NapalmRainДата: Ср, 06 Апр 2016, 14:20 | Сообщение # 3
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Цитата Левша ()
Сохраняй отдельно направление и отдельно скорость.
Затем рассчитывай направление уже по отношению к новому порталу.

Именно в этом и состоит вопрос, в голове белый шум, когда пытаюсь придумать, как это сделать
 
Сообщение
Цитата Левша ()
Сохраняй отдельно направление и отдельно скорость.
Затем рассчитывай направление уже по отношению к новому порталу.

Именно в этом и состоит вопрос, в голове белый шум, когда пытаюсь придумать, как это сделать

Автор - NapalmRain
Дата добавления - 06 Апр 2016 в 14:20
ЛевшаДата: Ср, 06 Апр 2016, 16:55 | Сообщение # 4
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата NapalmRain ()
как это сделать

Измерять текущую скорость (пройденное расстояние за отрезок времени) в реалТайме, например в FixedUpdate()
Ну а как сохранить направление думаю сам догадаешся, как вариант через localRotation. smile


X.cor.R (Prologue)
 
Сообщение
Цитата NapalmRain ()
как это сделать

Измерять текущую скорость (пройденное расстояние за отрезок времени) в реалТайме, например в FixedUpdate()
Ну а как сохранить направление думаю сам догадаешся, как вариант через localRotation. smile

Автор - Левша
Дата добавления - 06 Апр 2016 в 16:55
NapalmRainДата: Ср, 06 Апр 2016, 20:37 | Сообщение # 5
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Со скоростью всё понятно, а вот с направлением
Цитата Левша ()
как вариант через localRotation.


Сначала мне показалось это очень свежей мыслью и я прям обрадовался, но потом всё снова встало на свои места: проблема в том, что снаряд не летит всегда вперёд, он управляется физикой и может быть повёрнут в любую сторону. То есть он может лететь и при этом крутиться...
 
СообщениеСо скоростью всё понятно, а вот с направлением
Цитата Левша ()
как вариант через localRotation.


Сначала мне показалось это очень свежей мыслью и я прям обрадовался, но потом всё снова встало на свои места: проблема в том, что снаряд не летит всегда вперёд, он управляется физикой и может быть повёрнут в любую сторону. То есть он может лететь и при этом крутиться...

Автор - NapalmRain
Дата добавления - 06 Апр 2016 в 20:37
ЛевшаДата: Ср, 06 Апр 2016, 23:53 | Сообщение # 6
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
А это ведь ничего не меняет.
Тогда как и выше писал сохраняеш скорость и направление перемещения за последние 2 тика перед входным порталом.
Пересчитать направление относительно выходного портала думаю проблем не составит.


X.cor.R (Prologue)
 
СообщениеА это ведь ничего не меняет.
Тогда как и выше писал сохраняеш скорость и направление перемещения за последние 2 тика перед входным порталом.
Пересчитать направление относительно выходного портала думаю проблем не составит.

Автор - Левша
Дата добавления - 06 Апр 2016 в 23:53
NapalmRainДата: Чт, 07 Апр 2016, 07:49 | Сообщение # 7
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Цитата Левша ()
Пересчитать направление относительно выходного портала думаю проблем не составит.

К сожалению, пока составляет... Собственно из-за этого и была создана тема.
Попробую ещё подумать в этом направлении, авось осенит.

Тут проблема даже не в том, как потом пересчитать направление относительно нового портала. Скорее проблема, как его считать, относительно первого.
Если просто измерять угол межу велосити и форвардом портала, то это не даст точного значения, так как угол всегда будет положительным. А больше ни одной мысли нет...
 
Сообщение
Цитата Левша ()
Пересчитать направление относительно выходного портала думаю проблем не составит.

К сожалению, пока составляет... Собственно из-за этого и была создана тема.
Попробую ещё подумать в этом направлении, авось осенит.

Тут проблема даже не в том, как потом пересчитать направление относительно нового портала. Скорее проблема, как его считать, относительно первого.
Если просто измерять угол межу велосити и форвардом портала, то это не даст точного значения, так как угол всегда будет положительным. А больше ни одной мысли нет...

Автор - NapalmRain
Дата добавления - 07 Апр 2016 в 07:49
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Получение результирующего вектора направления
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024