Grid Graph Update Performance Question

Hello everyone,

I was experimenting using a Grid Graph for a mobile project I’m working on. However, I’ve seen in a few places that updating a grid graph during runtime can be a big issue (especially on mobile) [from the Docs: “A high number of erode iterations can seriously slow down graph updates during runtime (GraphUpdateObject) and should be kept as low as possible.”, Forum Post on This Topic]. So I was wondering from a performance standpoint:

  1. Do AstarPath.UpdatePaths(), DynamicGridObstacle.UpdatePaths(), and GraphUpdateScene.Apply() all update the entire graph? Or do the arguments of some allow for only updating relevant node points? (I know that you can pass bounds, among other things as an argument, but I don’t know if the rest of the graph still gets updated).

  2. If I were to update a GraphUpdateScene but not update physics, erosion, or walk-ability (essentially just location / tag) could significant performance savings be gained?

  3. Is using a GraphUpdateScene in place of a DynamicGridObstacle a bad idea for performance? I would guess that the DynamicGridObstacle is somehow optimized but I have almost no control over it (unlike a GUS).

In the end, I need to decide if a Grid Graph will work, or if I will have to / should go with a Navmesh.

Any ideas are appreciated, thank you for reading.