Transitions are what connect states to determine when the active state should switch.
Creating a Transition
To create a transition, right-click the source state and select Make Transition. Then, click on the destination state.
You can also end the transition at an empty space in the graph to create a new state automatically:
As a shortcut, you can hold Ctrl (Cmd on Mac) on the source node and drag to create a transition.
Editing a Transition
Just like flow states, a transition is also... a nested flow graph!
If you double-click its node or click the Edit Graph button, you will dig into the transition's graph. By default, it is configured like this:
The Trigger State Transition unit is a special unit that tells the parent state it should branch via the current transition.
In other words, this graphs means that after a first Update event of the parent state, the transition will trigger. Therefore, by default, transitions are "auto-finish". Usually, however, we want to define events and conditions for transitioning. Fortunately, you can use any unit in a state transition graph, like other events or branches.
For example, if we want to transition to the chase state only when an object with the Player tag enters the trigger on the enemy, we could have a transition graph that looks like this:
Finally, if we want to customize the label our transition will have in the parent state graph, we can deselect all units and edit the graph's title in the graph inspector:
When we go back to the parent state, our transition looks like so:
If you don't assign a custom title for your transition, the name and description of the event will be used.
By default, transition labels are always visible. If you find this takes up too much screen real-estate in your graph, you can change their display trigger under Preferences > Bolt > State Graphs > Transitions Reveal.
Sometimes, it might be useful for a state to transition to itself. To do so, right-click the state and choose Make Self Transition.
For example, imagine you want an enemy to patrol by changing its destination to a random position every 3 seconds.
Your patrol state's flow graph could be:
And your self-transition's flow graph could be:
In the parent state graph, it would look like:
There is no limit to how many transitions can be added to a state. However, there is no notion of priority between transitions. You have to use conditions to make sure the right transition gets chosen.
Customer support service by UserEcho