- Home /
Modify NavMeshPath for Tactical FPS (slicing the pie/sweeping maneuver)
Hi all! I am creating a tactical fps with bots. One of the tasks that a bot must be able to perform is to move to a destination in another room tactically. This means that the bot will have to predict which rooms or areas might contain enemies, and then move through those areas such that, if there are multiple enemies in an area, the bot will be able to engage them one at a time, rather than all at once.
My problem with the standard Unity pathfinding solution is that it attempts to find the shortest path possible to reach a destination, which is not always good for a tactical fps. In fact, it often leads to situations in which the agent may quickly expose himself to multiple enemies at once, increasing the chances of dying.
My question is, is there any way to modify the NavMeshPath that unity automatically generates in order to create the tactical behavior shown in my diagram?
Diagram: https://postimg.org/image/kwnrumqsn/
Possible Solutions:
I noticed that often my tactical path was the LEAST optimal path to take (in terms of distance). This is because, while the Unity path is often take the inside corners of the polygons of the NavMesh (The agent will reach the destination by always steering towards the next visible corner of the corridor.)(https://docs.unity3d.com/Manual/nav-InnerWorkings.html), my tactical path often takes the OUTSIDE corners of the polygons. Is there a way to create two NavMeshPaths, one that takes the outside corners, and one that takes the inside corners, and just have the agent switch between them depending on if he needs to be tactical, and if he needs to be quick (when he knows that there are no enemies in the upcoming areas)
Thanks for any help!! :)
Your answer
Follow this Question
Related Questions
Ignoring or overruling a NavMeshAgent destination 0 Answers
NavMesh Agent glitches in trees 3 Answers
Possible to edit the movement of NavMeshAgent ? 2 Answers
Editing NavMesh Paths? 0 Answers
Horde of NavMeshAgents - stops to recalculate path. 4 Answers