Как я могу естественным образом переместить транспортное средство в Unity из одной координаты в другую? - PullRequest
0 голосов
/ 06 ноября 2019

Я работаю над проектом, и я новичок в кодировании. Цель проекта состоит в том, чтобы прочитать лист Excel (содержит переднюю и заднюю координаты транспортного средства на конкретное время симуляции) и смоделировать результирующую анимацию в Unity. Я знаю, как переместить объект из одного места в другое. Однако я не могу двигать транспортное средство по дорожке дороги и достичь конечного пункта назначения. Помните, что у меня есть только две координатные позиции для автомобиля (одна для начальной позиции и другая для конечной позиции). Например, транспортное средство должно поворачивать на перекрестке автоматически, если конечный пункт назначения установлен на соседней дороге, как видно на изображении в приведенной ниже ссылке.

https://imgur.com/a/GA86BBn

Цель 1: Транспортное средство должно идентифицировать дороги.

Цель 2: Транспортное средство должно поворачивать автоматически в зависимости от следующего набора координат.

Цель 3: Транспортное средство должно двигаться естественным образом. Транспортное средство всегда должно быть направлено в том направлении, в котором оно движется. Проще говоря, он должен двигаться так, как транспортное средство будет двигаться в реальном мире.

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

То, что вы ищете, это NavMesh или алгоритмы поиска пути. Вы можете написать свой собственный алгоритм A *, это не сложно, и вы изучите кодирование. Затем вы определяете места, где машина может путешествовать или нет;вам, вероятно, придется делать это вручную, если вы не напишите скрипт, который может извлечь эту информацию из карты. Затем вы решаете, используя свой алгоритм поиска пути и следуя узлам.

Есть много объяснений онлайн , которые могут помочь Вы понимаете . Существуют и другие алгоритмы поиска пути, поэтому проверьте их.

Что касается направления туда, куда он идет, вы просто получите направление, в котором он движется, а затем поверните вектор вперед, чтобы соответствовать этому направлению.

Кстати, это не ваш сайт для решения домашних заданий. Вы должны проверить сообщества разработчиков игр, если вы хотите получить базовое объяснение или поиск в Интернете, там буквально сотни ресурсов.

0 голосов
/ 06 ноября 2019

Если вы говорите, что знаете, как переместить объект из одного места в другое, то я не вижу проблемы.

Вам нужно будет применить car.transform.localPosition (xCorrdinate, yCorrdinate) принимая для справки значения, которые вы имеете на листе Excel. Поместите это в метод update () и добавьте нужную задержку, чтобы можно было увидеть переход из одной точки в другую.

Итак, в обновлении:

Update() 
{  
   car.transform.localPosition = Vector2.Lerp(car.transform.localPosition,
      new Vector2(newXCoordinate,newYCoordinate), 
      Time.deltaTime * transitionSpeedTime); 
}

Затем добавьтеЕсли вы доберетесь до новой точки назначения, переходите к следующей.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...