I am currently working on a custom MoveTo function which is supposed to be able to tell if there is a destoyable object blocking an AIs path.
Those objects (like walls) use a custom NavArea Class and the AI can calculate a path right through them. I don’t want them to walk around them because the AI can destroy those objects if they a crossing their paths.
In the AIController Class the MoveTo function basically works by getting a path and then sending a move request. My idea was to check the path after getting it and checking if the path crosses my NavArea class. If it does I would abort the MoveTo and attack the object instead.
The FNavigationPath struct has a lot in it but I can’t figure out if this is possible. Like there are functions like FNavigationPath::ContainsNode() that sound like what I’m looking for but I think this is for a specific node on the navmesh and not a navarea type I think.
If anyone has an idea how I could do this, that would be very helpful.