AnimationNodeStateMachine
Конечный автомат с несколькими AnimationRootNode, используемый AnimationTree.
Конечный автомат с несколькими AnimationRootNode, используемый AnimationTree.
Содержит несколько AnimationRootNode, представляющих состояния анимации, соединенные в граф. Переходы состояний можно настроить так, чтобы они происходили автоматически или через код, используя алгоритм кратчайшего пути. Извлеките объект AnimationNodeStateMachinePlayback из узла AnimationTree, чтобы управлять им программно.
var stateMachine = GetNode<AnimationTree>("AnimationTree").Get("parameters/playback") as AnimationNodeStateMachinePlayback;
stateMachine.Travel("some_state");Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
AnimationNodeStateMachineКонструктор
public AnimationNodeStateMachine();Свойства3
AllowTransitionToSelfСвойство
public bool AllowTransitionToSelf { get; set; }Если true, разрешает телепортацию в собственное состояние с помощью AnimationNodeStateMachinePlayback.Travel. Когда опция сброса включена в AnimationNodeStateMachinePlayback.Travel, анимация перезапускается. Если false, при телепортации в собственное состояние ничего не происходит.
ResetEndsСвойство
public bool ResetEnds { get; set; }Если true, обрабатывайте кроссфейд (cross-fade) к начальному и конечному узлам как смешение с анимацией RESET.
В большинстве случаев, когда дополнительные кроссфейды выполняются в родительском AnimationNode конечного автомата, установка этого свойства в false и сопоставление времени кроссфейда родительского AnimationNode и начального и конечного узлов конечного автомата дает хорошие результаты.
##= State_machine_тип
StateMachineTypeСвойство
public AnimationNodeStateMachine.StateMachineTypeEnum StateMachineType { get; set; }Это свойство может определять процесс переходов для различных вариантов использования. См. также AnimationNodeStateMachine.StateMachineTypeEnum.
Методы26
AddNodevoid
public void AddNode(StringName name, AnimationNode node, Vector2? position = default);Добавить новый анимационный узел к графику. position используется для отображения в редакторе.
| Имя | Тип | По умолчанию |
|---|---|---|
name | StringName | — |
node | AnimationNode | — |
position | Vector2? | default |
positionЕсли параметр не имеет значения, то значение по умолчанию: new Vector2(0.0f, 0.0f).
AddTransitionvoid
public void AddTransition(StringName from, StringName to, AnimationNodeStateMachineTransition transition);Добавляет переход между заданными узлами анимации.
| Имя | Тип | По умолчанию |
|---|---|---|
from | StringName | — |
to | StringName | — |
transition | AnimationNodeStateMachineTransition | — |
AreEndsResetbool
public bool AreEndsReset();boolGetGraphOffsetVector2
public Vector2 GetGraphOffset();Возвращает смещение отрисовки графика. Используется для отображения в редакторе.
Vector2GetNodeAnimationNode
public AnimationNode GetNode(StringName name);Возвращает узел анимации с заданным именем.
| Имя | Тип | По умолчанию |
|---|---|---|
name | StringName | — |
AnimationNodeGetNodeListReckfell.Collections.Array<StringName>
public Reckfell.Collections.Array<StringName> GetNodeList();Возвращает список, содержащий имена всех узлов анимации в этом конечном автомате.
Reckfell.Collections.Array<StringName>GetNodeNameStringName
public StringName GetNodeName(AnimationNode node);Возвращает имя указанного узла анимации.
| Имя | Тип | По умолчанию |
|---|---|---|
node | AnimationNode | — |
StringNameGetNodePositionVector2
public Vector2 GetNodePosition(StringName name);Возвращает координаты указанного узла анимации. Используется для отображения в редакторе.
| Имя | Тип | По умолчанию |
|---|---|---|
name | StringName | — |
Vector2GetStateMachineTypeAnimationNodeStateMachine.StateMachineTypeEnum
public AnimationNodeStateMachine.StateMachineTypeEnum GetStateMachineType();AnimationNodeStateMachine.StateMachineTypeEnumGetTransitionAnimationNodeStateMachineTransition
public AnimationNodeStateMachineTransition GetTransition(int idx);Возвращает указанный переход.
| Имя | Тип | По умолчанию |
|---|---|---|
idx | int | — |
AnimationNodeStateMachineTransitionGetTransitionCountint
public int GetTransitionCount();Возвращает количество соединений в графике.
intGetTransitionFromStringName
public StringName GetTransitionFrom(int idx);Возвращает начальный узел указанного перехода.
| Имя | Тип | По умолчанию |
|---|---|---|
idx | int | — |
StringNameGetTransitionToStringName
public StringName GetTransitionTo(int idx);Возвращает конечный узел указанного перехода.
| Имя | Тип | По умолчанию |
|---|---|---|
idx | int | — |
StringNameHasNodebool
public bool HasNode(StringName name);Возвращает true, если граф содержит заданный узел анимации.
| Имя | Тип | По умолчанию |
|---|---|---|
name | StringName | — |
boolHasTransitionbool
public bool HasTransition(StringName from, StringName to);Возвращает true, если между заданными узлами анимации существует переход.
| Имя | Тип | По умолчанию |
|---|---|---|
from | StringName | — |
to | StringName | — |
boolIsAllowTransitionToSelfbool
public bool IsAllowTransitionToSelf();boolRemoveNodevoid
public void RemoveNode(StringName name);Удаляет указанный узел анимации из графика.
| Имя | Тип | По умолчанию |
|---|---|---|
name | StringName | — |
RemoveTransitionvoid
public void RemoveTransition(StringName from, StringName to);Удаляет переход между двумя указанными узлами анимации.
| Имя | Тип | По умолчанию |
|---|---|---|
from | StringName | — |
to | StringName | — |
RemoveTransitionByIndexvoid
public void RemoveTransitionByIndex(int idx);Удаляет указанный переход по индексу.
| Имя | Тип | По умолчанию |
|---|---|---|
idx | int | — |
RenameNodevoid
public void RenameNode(StringName name, StringName newName);Переименовывает указанный узел анимации.
| Имя | Тип | По умолчанию |
|---|---|---|
name | StringName | — |
newName | StringName | — |
ReplaceNodevoid
public void ReplaceNode(StringName name, AnimationNode node);Заменяет заданный узел анимации новым узлом анимации.
| Имя | Тип | По умолчанию |
|---|---|---|
name | StringName | — |
node | AnimationNode | — |
SetAllowTransitionToSelfvoid
public void SetAllowTransitionToSelf(bool enable);| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
SetGraphOffsetvoid
public void SetGraphOffset(Vector2 offset);Устанавливает смещение отрисовки графика. Используется для отображения в редакторе.
| Имя | Тип | По умолчанию |
|---|---|---|
offset | Vector2 | — |
SetNodePositionvoid
public void SetNodePosition(StringName name, Vector2 position);Задает координаты узла анимации. Используется для отображения в редакторе.
| Имя | Тип | По умолчанию |
|---|---|---|
name | StringName | — |
position | Vector2 | — |
SetResetEndsvoid
public void SetResetEnds(bool enable);| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
SetStateMachineTypevoid
public void SetStateMachineType(AnimationNodeStateMachine.StateMachineTypeEnum stateMachineType);| Имя | Тип | По умолчанию |
|---|---|---|
stateMachineType | AnimationNodeStateMachine.StateMachineTypeEnum | — |
AnimationNodeStateMachine.StateMachineTypeEnum
| Значение | Описание |
|---|---|
Grouped = 2 | Это сгруппированный конечный автомат, которым можно управлять из родительского конечного автомата. Он не работает независимо. Должен быть конечный автомат с |
Nested = 1 | Поиск начала рассматривается как поиск начала анимации в текущем состоянии. Переход в конечное состояние или отсутствие переходов в каждом состоянии рассматривается как выход из конечного автомата. |
Root = 0 | Переход к началу рассматривается как воспроизведение с начального состояния. Переход к конечному состоянию рассматривается как выход из конечного автомата. |