Это поведение обеспечивает нахождение пути объектом и широко используется для расчета маршрутов вокруг препятствий в любых играх, даже не связанных с RTS. Действия этого поведения могут задать юниту цель, к которой надо двигаться, или серию точек, к которым он будет двигаться по очереди. Пример использования можно найти в RTS basics.
Свойства
Max speed (максимальная скорость) — максимальная скорость, которую может достичь объект, в пикселях в секунду.
Blocked speed (блокированная скорость) — максимальная скорость, когда объект заканчивает переезжание другого объекта, или когда он поворачивается по кругу, чтобы достичь своей цели. Эта скорость должна равняться примерно 1/3 максимальной скорости.
Acceleration (ускорение) — ускорение в пикселях в секунду в секунду.
Deceleration (замедление) — замедление в пикселях в секунду в секунду.
Rotate speed (скорость поворота) — максимальная скорость, с которой объект поворачивается, в градусах в секунду.
Если она маленькая, то объект будет часто замедляться до Blocked speed (блокированной скорости), чтобы достигнуть поворота.
Rotate object (поворот объекта) — если включено, то угол объекта будет меняться в соответствии с углом движения.
Path finding (нахождение пути):
- Off (выключить) — будет двигаться напрямую к цели.
- Around 'Solid' (вокруг твердых объектов) — когда движется к цели, будет объезжать объекты с атрибутом Solid.
- Custom (настраиваемый) — используйте действие Add path finding obstacle (добавить препятствие), чтобы определить, вокруг каких объектов нужно объезжать. Вы можете добавить отдельный атрибут или семью.
Cell size (размер ячейки) — затрагивает нахождение пути, если включена. Алгоритм нахождения пути делит уровень на сетку и помечает каждую ячейку как проходимую или непроходимую. Выбирайте размер ячейки размером примерно с сам объект с этим поведением. По умолчанию — 60х60. Не забывайте, что чем меньше размер ячейки, тем больше нагружается CPU во время нахождения пути.
Использование CPU
Действия Move to... (двигаться к…) немедленно запускают алгоритм нахождения пути, чтобы определить весь путь к точке назначения. Вызов этого действия еще раз сбросит выстроенный путь и полностью сгенерирует новый, что требует времени и нагружает CPU. Вы должны избегать частого вызова этих действий, если ваша цель не двигается, особенно если вы используете много объектов.
В общем, если вам не хватает одного действия «двигаться к цели», обновляйте путь хотя бы каждую секунду.
Избегание других юнитов
Используйте действие Set object to avoid (установить объект, который нужно избегать) и выберите атрибут, семью или такой же объект, чтобы задать, что юниты, когда двигаются, должны перемещаться вокруг друг друга так же, как и вокруг препятствий.
Нахождение пути
Нахождение пути в поведении RTS — модифицированное создание A*. Это означает, что юниты за сценой двигаются по сетке и перемещаются между точками (waypoints) на этой сетке. Ячейки сетки могут быть полностью заблокированы или открыты. То есть, узкие проходы могут пометиться как непроходимые, даже если юнит может через них пройти, только потому, что ячейки чуть заезжают на препятствие. Не забывайте об этом, когда делаете дизайн уровней.
Вам нужно «поиграть» с настройками размера ячеек, чтобы найти идеальный вариант.
