Как мы строим пути для юнитов
Alex Silaev
На этапе редактора у нас все поле - это сетка, на которой работает A*. Первым этапом мы строим путь от домика в другой домик, на карте есть препятствия, которые нужно обходить, с чем успешно справляется A*.
Вторым этапом мы создаем на основе этого пути цепочку из кубов-коллайдеров - joints, где размер коллайдера равен размеру юнита в игре. А таких путей из домика в домик у нас 8 штук, т.е. 8 цепочек коллайдеров.
Третьим этапом мы запускаем симуляцию физики, прокручивая 50 кадров вперед, таким образом мы получаем хорошие пути в узких проходах и нормальные обходы домиков.

Когда этап редактирования завершен, мы сохраняем наши сплайны в виде точек для построения catmull-rom уже в рантайме на старте игры.
Когда юниты идут из домика в домик, они не разбивают ряд, что красиво смотрится и сильно влияет на ощущения от игры:

Такой вариант построения путей позволяет очень эффективно перемещать юнитов с точки зрения производительности, т.к. в рантайме строить пути и сплайны было бы дорого, у нас все же может быть 4к юнитов.
https://t.me/unsafecsharp