Как заставить NavMeshAgent подойти максимально близко к точке, лежащей за границами NavMesh?
Ситуация следующая: делаю RTS, на юнитах висит NavMeshAgent. На зданиях - NavMeshObstacle. Когда пытаюсь отправить юнитов к зданию - команда игнорируется, потому что точка назначения лежит в зоне NavMeshObstacle.
Как можно получить точку на границе NavMeshObstacle зоны здания, ближайшую к юниту, что бы отправить юнита к ней?
Или может есть способ как-то заставить NavMeshAgent следовать к точке, даже если пути к ней не существует, пока не упрется в непроходимый участок?
Ответы (1 шт):
Вопрос решен. В настройках NavMeshObstacle необходимо снять галку "Carve". И всё. В этом случае объект не будет резать сетку проходимости, но в тоже время останется препятствием, через которое нельзя пройти. При задании точки внутри этого объекта агенту в качестве точки назначения - он будет туда следовать до тех пор, пока не упрется в препятствие, и будет безуспешно пытаться туда попасть - этот момент уже отловлю коллайдером "здания" и буду сбрасывать точку назначения агента через ResetPath или переназначать её на текущую позицию юнита (в контексте логики моей игры - этот вариант будет более логичным, для выхода из состояния).