Для моего стелс-проекта мне пришлось сделать патрулирующих охранников. Однако я решил смешать его с некоторыми случайно выбранными альтернативными путями и «направлением взгляда».

Сегодняшняя цель: создать простую модульную охрану с искусственным интеллектом, которая будет патрулировать некоторые путевые точки и иногда выбирать 1 из 2 путевых точек для перехода.

Создание системы:

Переменные:

Я создаю новый класс под названием «AIWaypointPatroller», который будет содержать весь код ИИ для патрулирования набора путевых точек.

Я хочу разрешить смотреть в указанном направлении, находясь в каждой путевой точке, а также возможность альтернативных положений путевой точки (которую я добавлю во второй части), поэтому я создаю пользовательскую структуру для списка‹›. вместо просто Vector3.

Я также хочу показать путевые точки в представлении «Сцена» для облегчения отладки.

Наконец, частные переменные:

Функции:

Бодрствующий:

Обновлять:

Функции, вызываемые при обновлении:

Наконец, чтобы нарисовать красивые линии отладки в представлении «Сцена», создайте метод OnDrawGizmos():

Я хочу нарисовать 3 части:

  • Текущее положение,
  • Путевые точки и линии между ними,
  • И направление взгляда каждой путевой точки.

Результат:

Наконец, вся эта работа окупается очень красивой системой путевых точек!

В Части 2, моей следующей публикации, я добавлю возможность для альтернативных путей и добавлю функциональность для медленного поворота лицом к Направление взгляда.