Correctly Using Links & RichSpecial Parts

I’m trying to understand how to correctly use these components.

First, what I’m trying to achieve is this:
In order for our AIs to move through out doors, they have to go to the door, and then wait till it opens (it is automatic) and at that point, continue their path.

This all works great, but i need a way to control the agent while he is crossing over the door way, and resume path find on the other end.

I have been trying to create those parts as RichSpecial parts, and use the example’s layout to interpret it. I’ve added NodeLink2 connections and transforms to the correct positions, but sometimes the path doesn’t even return these parts, although it obviously walking through the door.

Is there a way to force the path to do the special parts? is there a better solution? I’m using a recast graph as the main graph.


If it doesn’t return those paths, it means there is another path which doesn’t go through those links. Try to place an obstacle at the position of the door so that no navmesh is generated from one side of the door to the other.


When I do that, the agent can’t find the path between the links, and can’t pass through any doors, even if I destroy the obstacle on awake.

I think the issue is more in how i setup the graph.

Let me re-iterate and provide more information:

I have an environment setup with floors tagged, and a recast graph. Doors do not get picked up by this graph.

In the screen shot, you can clearly see the separation of areas beyond the doors.
This is what I expect. In this case the agent cannot find a path beyond the door.

In come Node Links. I create a game objects with NodeLink2 component on them,
place them on either side of door, and connect them.

Now the graph shows up connected, but you can see from the screen shot that the connection runs through the node link. I would expect to get the path part between the two links as a rich special, so i can do my special stuff.

However when requesting a path, even though I go through the nodes, I still don’t receive this part as special.

Am I going about this the wrong way?

The objective again is to get some sort of manual control over the agent when he is traversing this specific part of the path.

I seem to have found the issue.

I was creating my links via script, but I had no grid graph defined. It was created for me but with no raycast or max distance, which caused the graph to be globally connected, hence skipping the part.