Візуалізація шляху для nav mesh agent - nullcode studio, ігри, unity, скрипти

При використанні карти навігації, наприклад, в грі з видом зверху, коли персонаж пересувається по кліку. Може знадобитися можливість візуалізувати шлях для конкретного NavMeshAgent. Тобто виходить, що якщо призначити шлях агенту, то спочатку буде «намальований» шлях, а потім по ньому, почне рух сам агент. Шлях для NavMeshAgent, від стартової і до кінцевої позиції, складається з масиву ключових точок, чи то пак координат. Наше завдання, отримати даний масив і на його основі розставити об'єкти, що позначають ключову точку. Потім, з'єднати точки лініями, як лінії, так само буде виступати заздалегідь підготовлений об'єкт.


Отже, перед тим як продовжити, у вас вже повинен бути готовий персонаж з налаштованим компонентом NavMeshAgent. плюс, створена карта навігації для агента, простий приклад створення карти див. тут. Якщо все це є, тоді приступаємо до створення об'єктів, з яких і буде створюватися шлях.

Для початку зробимо лінію, додаємо на сцену порожній об'єкт і Обнуляємо позицію. Потім додаємо стандартний Quad. робимо його дочірнім до порожнього об'єкту і теж Обнуляємо позицію. Розгортаємо Quad по осі Х на 90. щоб при створенні наш квадрат відображався в площині ХZ. Товщину лінії можна відрегулювати змінюючи Scale по осі Y. але не міняйте масштаб по осі Х - це важливо! Тому як, цей параметр буде регулюватися через скрипт і для коректних розрахунків, потрібно щоб вихідне значення було за замовчуванням.

Наприклад може вийде ось так:

Візуалізація шляху для nav mesh agent - nullcode studio, ігри, unity, скрипти


Матеріал вибираємо за смаком, готовий об'єкт перетягуємо в папку з префаб і видаляємо зі сцени вихідний.

Префаб для ключових точок, робиться точно так же, але вже можна вільно регулювати масштаб.

Далі, чіпляємо, припустимо на камеру, скрипт DrawPath:


Після настройки змінних, можна приступати до тестування.

Варто зазначити що в поточному варіанті, "малювання" шляху заточене під плоску поверхню, тому як це лише приклад. Якщо говорити про нерівній поверхні, підйомах і спусках. То тоді як лінії варто використовувати щось об'ємне, циліндр допустимо, підігнавши його довжину по Х, як у стандартного квадрата. Плюс, накладати ці об'єкти через додаткову камеру, щоб вони завжди були поверх інших. Загалом це вже деталі, головне що є основа.

Ви не можете завантажувати файли з нашого сервера

Схожі статті