Summary
A simple keyless Finite State Machine system.
- Assembly
- Animancer
.dll - Namespace
- Animancer
.FSM - Interfaces
- Base Types
-
- Object
- Derived Types
graph BT
Type-->Base0["Object"]
Type-.->Interface0["IStateMachine"]
click Interface0 "/animancer-v7-4/api/Animancer.FSM/IStateMachine"
Type["StateMachine<TState>"]
class Type type-node
Derived0["StateMachine<TState>.WithDefault"]-->Type
click Derived0 "/animancer-v7-4/api/Animancer.FSM/WithDefault"
Derived1["StateMachine<TKey, TState>"]-->Type
click Derived1 "/animancer-v7-4/api/Animancer.FSM/StateMachine_2"
Syntax
[HelpURL(StateExtensions.APIDocumentationURL + nameof(StateMachine<TState>) + "_1")]
[Serializable]
public class StateMachine<TState> : IStateMachine where TState : class, IState
Remarks
This class doesn't keep track of any states other than the currently active one.
See
Animancer.FSM.StateMachine`2 for a system that allows states to be pre-registered and accessed
using a separate key.
See Animancer.FSM.StateMachine`1.InitializeAfterDeserialize if using this class in a serialized field.
Documentation: Finite State Machines
Attributes
| Type | Description |
|---|---|
| HelpURLAttribute | |
| Serializable |
Type Parameters
| Name | Description |
|---|---|
| TState |
Constructors
| Name | Summary |
|---|---|
| StateMachine |
Creates a new Animancer.FSM.StateMachine`1, leaving the Animancer.FSM.StateMachine`1.CurrentState null. |
| StateMachine |
Creates a new Animancer.FSM.StateMachine`1 and immediately enters the `state`. |
Properties
| Name | Value | Summary |
|---|---|---|
| AllowNullStates | bool |
[Assert-Only] Should the
Animancer.FSM.StateMachine`1.CurrentState be allowed to be set to null? Default is false. |
| CurrentState | TState |
[
UnityEngine.SerializeField] The currently active state. |
| GUILineCount | int |
[Editor-Only] The number of standard size lines that
Animancer.FSM.StateMachine`1.DoGUI will use. |
| NextState | TState |
The
Animancer.FSM.StateChange`1.NextState. |
| PreviousState | TState |
The
Animancer.FSM.StateChange`1.PreviousState. |
Methods
| Name | Value | Summary |
|---|---|---|
| CanSetState |
TState |
Returns the first of the `states` which can currently be entered.
|
| CanSetState |
bool |
Is it currently possible to enter the specified `state`?
|
| DoGUI |
void |
[Editor-Only] Draws GUI fields to display the status of this state machine.
|
| DoGUI |
void |
[Editor-Only] Draws GUI fields to display the status of this state machine in the given `area`.
|
| ForceSetState |
void |
Calls
Animancer.FSM.IState.OnExitState on the Animancer.FSM.StateMachine`1.CurrentState then changes it to the
specified `state` and calls Animancer.FSM.IState.OnEnterState on it.
|
| Initialize |
void |
Call this after deserializing to properly initialize the
Animancer.FSM.StateMachine`1.CurrentState. |
| SetAllowNullStates |
void |
[Assert-Conditional] Sets
Animancer.FSM.StateMachine`1.AllowNullStates. |
| ToString |
string |
Returns a string describing the type of this state machine and its
Animancer.FSM.StateMachine`1.CurrentState. |
| TryResetState |
bool |
Attempts to enter any of the specified `states` and returns true if successful.
|
| TryResetState |
bool |
Attempts to enter the specified `state` and returns true if successful.
|
| TrySetState |
bool |
Attempts to enter any of the specified `states` and returns true if successful.
|
| TrySetState |
bool |
Attempts to enter the specified `state` and returns true if successful.
|