General
Navigation
Scene Management
? ?Activate Loaded Scenes Node
Activates all the Scenes that have been loaded by SceneLoaders and are ready to be activated and then jumps instantly to the next node in the Graph.
It does that by sending the system Game Event ‘ActivateLoadedScenes‘
When loading a scene, Unity first loads the scene (load progress from 0% to 90%) and then activates it (load progress from 90% to 100%). It’s a two state process.
A scene is ready to be activated if the load progress is at 0.9 (90%). This node activates these scenes (that have been loaded by SceneLoader and that have AllowSceneActivation set to false).
The next node in the Graph is the one connected to this node?s output socket.
NOTE: If the output socket is not connected, the UI navigation can get stuck in this node.
ON ENTER NODE
Sends the system Game Event 'ActivateLoadedScenes'
Then activates the next node in Graph.
? ?Back Button Node
The Back Button Node enables or disables the ‘Back’ button functionality and jumps instantly to the next node in the Graph.
The next node in the Graph is the one connected to this node’s output socket.
NOTE: If the output socket is not connected, the UI navigation can get stuck in this node.
ON ENTER NODE
Enables/Disables the 'Back' button functionality.
Then activates the next node in Graph.
? ?Enter Node
Is the fist node in a SubGraph to be activated. It activates instantly the next node in the SubGraph.
The next node in the SubGraph is the one connected to this node’s output socket.
NOTE: If the output socket is not connected, the UI navigation can get stuck in this node.
ON ENTER NODE
Activates the next node in SubGraph.
? ?Exit Node
Is the last node in a SubGraph to be activated. It activates instantly the next node in the parent Graph.
The next node in the parent Graph is the one connected to the SubGraphNode’s output socket, that referenced the parent SubGraph of this ExitNode.
NOTE: If the SubGraphNode output socket is not connected (in the parent Graph), the UI navigation can get stuck in this node.
ON ENTER NODE
Activates the next node in the parent Graph.
? ?Game Event Node
The Game Event Node sends a game event (string value) and jumps instantly to the next node in the Graph.
The next node in the Graph is the one connected to this node’s output socket.
NOTE: If the output socket is not connected, the UI navigation can get stuck in this node.
ON ENTER NODE
Sends the set Game Event (string value).
Then activates the next node in Graph.
? ?Load Scene Node
Loads any Scene either by scene name or scene build index via a Scene Loader and jumps instantly to the next node in the Graph.
The next node in the Graph is the one connected to this node?s output socket.
NOTE: If the output socket is not connected, the UI navigation can get stuck in this node.
ON ENTER NODE
Creates a Scene Loader that initiates the loading of the Scene with the given settings.
Then activates the next node in Graph.
? ?Portal Node
The Portal Node is a global node that listens for a set game event (string value). When triggered it jumps instantly to the next node in the Graph.
A global node is active as long as its parent Graph is active.
This particular node allows for jumping from one part of the UI flow to another, without the need of a direct connection.
Due to the way it works, this node can also be considered as a ‘virtual connection’ between multiple active Graphs.
NOTE: If the output socket is not connected, the UI navigation can get stuck in this node.
ON ENTER NODE
Starts listening for Game Events (string values)
ACTIVE STATE
Idle until the set Game Event (string value) is received.
When the set Game Event is received, it activates the next node in Graph.
ON EXIT NODE
Stops listening for Game Events (string values)
? ?Random Node
Picks a weighted random connection in a memory-efficient way.
It does that by picking a random number between 1 and the sum of all the weights (similar to a raffle).
The result is that the higher weighted connections are selected more often than lower weighted ones.
NOTE: At least one output socket should be connected, otherwise the UI navigation can get stuck in this node.
ON ENTER NODE
Selects a random connection using a random weights algorithm.
Then activates the next node in Graph, that corresponds to the selected connection.
? ?Sound Node
Plays a sound or stops, pauses, unpauses, mutes or unmutes all sounds and jumps instantly to the next node in the Graph.
It can play a sound through a Soundy Controller either by using a sound name or a direct reference to an AudioClip, or it can trigger MasterAudio to play a set sound name.
The next node in the Graph is the one connected to this node?s output socket.
NOTE: If the output socket is not connected, the UI navigation can get stuck in this node.
ON ENTER NODE
Executes the set sound action (Play, Stop, Pause, Unpause, Mute, Unmute).
Then activates the next node in Graph.
? ?Start Node
Is the fist node in the Graph to be activated. It activates instantly the next node in the Graph.
The next node in the Graph is the one connected to this node’s output socket.
NOTE: If the output socket is not connected, the UI navigation can get stuck in this node.
ON ENTER NODE
Activates the next node in Graph.
? ?SubGraph Node
Activates the referenced SubGraph inside the parent Graph. It allows for endless nesting and helps managing complex UI flow structures.
This node is particularly important as it allows for Graphs to be split in multiple SubGraphs and be easier to manage.
Also a SubGraph can be split into two or more SubGraphs allowing for the creation of very deep and complex UI flows.
NOTE: If the output socket is not connected, the UI navigation can get stuck in this node.
ON ENTER NODE
Activates the referenced SubGraph.
ACTIVE STATE
Idle until the ExitNode inside the SubGraph is activated.
Then activates the next node in the Graph.
? ?Switch Back Node
The Switch Back Node remembers the source (input) node when going to a target (output) node. After that, when returning from the target (output) node, it goes back to the source node from where it came from.
Example:
The ‘Settings Menu’ node needs to be accessed from different parts of the UI and you need to go back from the area of the UI where you came from.
To do this, set up one or more sources (‘Main Menu’ and ‘Game Menu’ for example) and set the ‘Settings Menu’ as the target.
When you access the ‘Settings Menu’ from the ‘Main Menu’, the Switch Back Node will remember ‘Main Menu’ as the source. And, when returning from the ‘Settings Menu’ (via a ‘Back’ button for example), the UI flow will be redirected to the ‘Main Menu’
When you access the ‘Settings Menu’ from the ‘Game Menu’, the Switch Back Node will remember ‘Game Menu’ as the source. And, when returning from the ‘Settings Menu’, the UI flow will be redirected to the ‘Game Menu’ as this was the last recorded source.
ON ENTER NODE
Connecting from a Source
1. Stores the info about the source node.
2. Activates the target node.
Connecting from the Target
1. Checks to see the last recorded Source (if no record is found, it selects the first connected source)
2. Activates the selected source node.
? ?Theme Node
Activates a target variant of the target theme.
The next node in the Graph is the one connected to this node?s output socket.
NOTE: If the output socket is not connected, the UI navigation can get stuck in this node.
? ?TimeScale Node
Sets the scale at which the time is passing (it updates Time.timeScale). This can be used for slow motion effects.
It does that either instantly or over a set duration (animated).
The node can wait until the current Time.timeScale value has reached the target value, before activating the next node in the Graph.
The next node in the Graph is the one connected to this node?s output socket.
NOTE: If the output socket is not connected, the UI navigation can get stuck in this node.
ON ENTER NODE
Sets the Time.timeScale value, instantly or over a set duration.
Then, it it's not set to wait for the animation, it activates the next node in Graph.
If it's set to wait for the animation, it will wait until the current Time.timeScale value has reached the target value, before activating the next node in the Graph.
? ?UIDrawer Node
The UIDrawer Node opens, closes or toggles a target UIDrawer (identified by name) and?jumps instantly to the next node in the Graph.
The next node in the Graph is the one connected to this node?s output socket.
NOTE: If the output socket is not connected, the UI navigation can get stuck in this node.
ON ENTER NODE
Executes the set action Open/Close/Toggle UIDrawer.
Then activates the next node in Graph.
? ?UINode
The UINode is the core UI Navigation node. It shows and/or hides UIViews and listens for button events, game events or waits for a set delay before signaling the Graph to activate another node.
ON ENTER NODE
Shows/Hides any set UIViews
ACTIVE STATE
Idle until any output connection trigger becomes active
ON EXIT NODE
Shows/Hides any set UIViews
Output Connection Triggers
- Button Click -?listens for UIButtons OnClick behaviors and reacts only to the button with the set Button Name (category is ignored)
- Button Double Click -? same as for the Button Click, but it listens for UIButton OnDoubleClick
- Button Long Click -?same as for the Button Click, but it listens for UIButton OnLongClick
- Game Event -?listens for all Game Events and reacts only when the set game event name (string value) is received
- Time Delay – gets automatically activated after ON ENTER NODE actions are executed and, after the set delay, the output connection is triggered
? ?Unload Scene Node
Tells the Scene Director to unload a Scene either by scene name or scene build index. This will destroy all GameObjects associated with the given Scene and remove the Scene from the SceneManager.
Besides unloading a Scene, the Unload Scene Node can wait until the target Scene has been unloaded before activating the next node in the Graph.
The next node in the Graph is the one connected to this node?s output socket.
NOTE: If the output socket is not connected, the UI navigation can get stuck in this node.
ON ENTER NODE
Tells the Scene Director to unload a Scene either by scene name or scene build index.
Then activates the next node in Graph.
? ?Wait Node
It waits for a set Time duration or for a Game Event (string value) or for a Scene to load or for a Scene to unload or for the active scene to change. Then it activates the next node in the Graph.
The next node in the Graph is the one connected to this node?s output socket.
NOTE: If the output socket is not connected, the UI navigation can get stuck in this node.
Wait For
- Time – waits for a set duration or for a random duration between a min and a max value
- Game Event -?waits for a set Game Event (string value) or any Game Event (any Game Event to be sent)
- Scene Load -?waits for a Scene to load (checking by either its name or build index) or any Scene (any scene to load)
- Scene Unload -?waits for a Scene to unload (checking by either its name or build index) or any Scene (any scene to unload)
- Active Scene Change -?waits for the active Scene to change (checking by either its name or build index) or any Scene (any active scene change)
ON ENTER NODE
Depending on the Wait For it does the following:
TIME - Starts a timer for a set duration (or random duration between min and max values)
GAME EVENT - Start listening for Game Events
SCENE LOAD - Starts listening for SceneDirector.Instance.OnSceneLoaded
SCENE UNLOAD - Starts listening for SceneDirector.Instance.OnSceneUnloaded
ACTIVE SCENE CHANGE - Starts listening for SceneDirector.Instance.OnSceneUnloaded
ACTIVE STATE
Depending on the Wait For it does the following:
TIME - Idle until timer runs out
GAME EVENT - Idle until the set Game Event (string value) is received.
SCENE LOAD - Idle until any or the set Scene (name or build index) is loaded.
SCENE UNLOAD - Idle until any or the set Scene (name or build index) is unloaded.
ACTIVE SCENE CHANGE - Idle until any or the set Scene (name or build index) is activated.
ON EXIT NODE
Depending on the Wait For it does the following:
TIME - Nothing
GAME EVENT - Stops listening for Game Events
SCENE LOAD - Stops listening for SceneDirector.Instance.OnSceneLoaded
SCENE UNLOAD - Stops listening for SceneDirector.Instance.OnSceneUnloaded
ACTIVE SCENE CHANGE - Stops listening for SceneDirector.Instance.OnSceneUnloaded