Confusion with Tagging, Pointgraphs, and implementation

Forgive me if I come off as a little dense with these questions, but I’ve read through the documentation, and browsed through the forums, but have not been able to find definitive answers.

I’m using a pointgraph with around 30-40 points in a 3d space to represent energy flowing through conduits in a point-to-point manner. My first issue is understanding how tagging works with a 3D pointgraph; I assumed that I could tag child transforms under the root transform in the unity editor with a specific tag, set that tag to have a very high cost in the seeker component, and have my pathfinders avoid those nodes, but that doesn’t seem to be the case. I did some more research, and it looks like the tags being used are not necessarily the same tags that Unity uses to tag game object; I would need to manually assign tags through scripting to the node objects that get generated by the pointgraph, or through a GraphUpdateScene component. Am I completely missing a major step of configuration with the tags, or have my assumptions been correct so far?

Next, I tried using a GraphUpdateScene, but it seems to be optimized for use on 2D spaces, not 3D spaces. All of the examples seem to show implementations for 2D planes. Is this correct? If I wanted to update nodes in a 3D space using a GraphUpdateScene, what would be the ideal approach? Use the bounding boxes of the child Transforms (I used unity cube primitives to position my graph nodes)?

And lastly, I want to be able to put “efficiency ratings” on each of the nodes in my graph, which would impact the amount of energy that a pathfinding agent would be carrying as it traverses through the graph (An agent leaves the start point with x units of power, each node traversed subtracts a little power). What would be the best way of going about this? My initial idea was to call a function whenever an agent had traversed a node that would subtract power from the agent based on values set in a simple script attached to the child game object used to generate the node. I’m not really sure how I can get an agent to figure out when it’s traversed a node (I can probably figure this out by digging into documentation and code more thoroughly), and I’m not quite sure how I would go about accessing the game object that was used to generate the node. Any ideas?

Pathfinding tags are indeed different from Unity tags, sorry for the confusion.

Also, not really sure if this is relevant, but it’s a nice read anyway: http://en.wikipedia.org/wiki/Max_flow

GraphUpdateScene works great for 3D spaces. The reason most is in 2D is because I usually demonstrate with gridgraphs and they are in 2D. The bounds variable will be correctly checked in all dimensions. The shape variable is however intended for 2D (polygons don’t generalize well to 3D, for volumes it becomes a lot more complex).

Hm… Nodes don’t know about what GameObject was used to generate them. However you could have some script hold a Dictionary mapping nodes to some component you create (at Start you could loop over all nodes and put them in the Dictionary). All movement scripts could then access this central script which holds the dictionary (maybe in a static variable).

If you use the AIPath script, there is a point where it goes into a while loop and then increments some index variable, that’s where you could check if it has reached the next node.

Awesome, this gives me a lot to work off of!
Do the nodes generated from the child transforms under the root object maintain the same order? That is to ask, could I create my dictionary by looping through the Graph nodes and game objects and use the same indexer to associate them?

Yup. If I remember correctly it is just a depth first traversal, so they should retain the order.