Extensibility of GraphUpdateScene

First, some context:
I am using custom subclasses of LayerGridGraph and LevelGridNode.

Then, the question:
What should I do to be able to modify some custom fields of the nodes to fit my custom logic? It seems that GraphUpdateObject could allow me to do it since its Apply is virtual, but GraphUpdateScene GetGraphUpdate isn’t virtual. Shouldn’t it be?
In such case I could subclass it, make it return extended GUO, and be all set, right?

Or am I messing something up in here?

That’s a good point. I’ll make it virtual.

However. Since version 5, the GraphUpdateObject.Apply method is not called when using it on a grid graph. Instead, the ApplyJob method is called, which schedules a job to update the internal data of the nodes.

May I ask what these custom fields are, and how you are using them?

I just started tinkering about how to implement what I want. But the basic idea is to allow some units to stick to the walls, trees, etc. (and maybe do some wall runs as well). That’s why I am creating some invisible colliders under the ledges and using GraphUpdateScene to set valid tag for them. And since I am using the GraphUpdateScene I started to think that maybe it will be a decent idea to put some additional info there (as the type of ledge or object that will determine the used animation). I am not saying that it is well-thought but this is what it is atm.

Since this is very sparse information, it might be easier for you to keep a

Dictionary<GraphNode, ExtraMetadata> nodeMetadata;

externally. That way, you don’t have to deal with the internals of the package as much.