Gli Stati
Last updated
Last updated
Uno Stato rappresenta un tipo di comportamento che il gameobject dovrebbe mantenere ad quando vi entra, fino a che non ne esce. Una serie di stati collegati vengono spesso utilizzati per realizzare una sorta di intelligenza artificiale.
Bolt permette di creare tre tipi di Stati:
Flow States
Super States
Any State
Gli stati sono connessi tra di loro tramite Transizioni, che regolano il passaggio da uno stato all'altro.
Durante l'esecuzione di uno State Graph, uno o più stati dovranno essere definiti come quelli di partenza (Start State): uno stato di questo genere viene individuato dal colore verde. Se più stati sono selezionati come quelli di partenza, questi verranno tutti eseguiti in parallelo.
Un Flow State contiene un Flow Graph: questo vuole dire che al suo interno potrete utilizzare le unità nello stesso identico modo.
Per creare un Flow State, è sufficiente cliccare con il pulsante destro in una zona libera del grafo e scegliere Create Flow State.
Per modificare il comportamento di un Flow State, è sufficiente effettuare un doppio click su di esso.
All'interno di un Flow State, il comportamento è molto simile ad una Flow Machine.
Solitamente sono presenti tre eventi:
Update: viene eseguito una volta per frame
On Enter State: viene eseguito non appena si entra in questo stato
On Exit State: viene eseguito appena prima di uscire da questo stato
Ovviamente è possibile aggiungere qulsiasi altro evento, come nei Flow States.
I valori di Input ed Output vengono solamente utilizzati per le Super Unit e non hanno un valore effettivo in questo caso
Un Super State è uno stato che contiene altri State Graph, permettendo una organizzazione gerarchica delle State Machines.
Per creare un Super State, è sufficiente cliccare con il pulsante destro in una zona libera del grafo e scegliere Create Super State.
Per modificare la struttura di un Super State, è sufficiente effettuare un doppio click su di esso.
Lo stato Any State permette di creare una transizione da un qualsiasi stato (indifferentemente da quale sia) ad un altro specifico stato.
Per creare un Any State, è sufficiente cliccare con il pulsante destro in una zona libera del grafo e scegliere Create Any State.
Una State Unit si comporta in modo molto simile ad una Super Unit: permettono di innestare un grafo in una singola unità di un grafo genitore.
Per creare una State Unit, è sufficiente cliccare con il pulsante destro in una zona libera del grafo e selezionare Nesting > State Unit.
Una State Unit possiede due ingressi, che definiscono quando entrare e quando uscire dal nodo e due uscite che definiscono cosa fare, rispettivamente.