Unity 6.3
0 онлайн 58 гостей 3 в системе
Вход

AnimatorState

класс в UnityEditor.Animations

Наследуется от:Object

Описание

Представляет состояние в машине состояний.

Каждое состояние содержит (AnimationClip или BlendTree), который воспроизводится, пока персонаж находится в этом состоянии. Когда запускается переход, персонаж принимает новое состояние. (AnimationClip или BlendTree) для нового состояния берёт управление на себя.

Следующий пример показывает, как создать простую машину состояний с помощью скрипта редактора. Он создаёт три состояния — "Idle", "Run" и "Jump" — и переходы между ними. В этом примере не задаётся Motion. Новое состояние можно создать с помощью AnimatorController.AddMotion, либо можно назначить движение существующему состоянию с помощью AnimatorState.motion.

using UnityEditor;
using UnityEditor.Animations;
using UnityEngine;

static class AnimatorStateExample
{
    [MenuItem("Example/Create Simple State Machine")]
    static void CreateSimpleController()
    {
        // Create the controller
        var controllerPath = AssetDatabase.GenerateUniqueAssetPath("Assets/SimpleController.controller");
        var controller = AnimatorController.CreateAnimatorControllerAtPath(controllerPath);

        var stateMachine = controller.layers[0].stateMachine;

        // Create the states. First state (Idle) becomes the default state
        var idleState = stateMachine.AddState("Idle", new Vector2(300, 200));
        var runState = stateMachine.AddState("Run", new Vector2(150, 350));
        var jumpState = stateMachine.AddState("Jump", new Vector2(450, 350));

        // Create the transition parameters
        controller.AddParameter("Speed", AnimatorControllerParameterType.Float);
        controller.AddParameter("Jump", AnimatorControllerParameterType.Trigger);

        // Create the transitions
        var idleToRun = idleState.AddTransition(runState);
        idleToRun.AddCondition(AnimatorConditionMode.Greater, 0.1f, "Speed");

        var runToIdle = runState.AddTransition(idleState);
        runToIdle.AddCondition(AnimatorConditionMode.Less, 0.1f, "Speed");

        var runToJump = runState.AddTransition(jumpState);
        runToJump.AddCondition(AnimatorConditionMode.If, 0, "Jump");
        runToJump.duration = 0;

        var jumpToRun = jumpState.AddTransition(runState);
        jumpToRun.duration = 0;

        var idleToJump = idleState.AddTransition(jumpState);
        idleToJump.AddCondition(AnimatorConditionMode.If, 0, "Jump");
    }
}

Дополнительные ресурсы: ,AnimatorController.AddMotion,, ,AnimatorStateMachine.AddState,, ,AnimatorStateMachine.states,.

Свойства

Свойство Описание
behavioursСписок поведений, назначенных этому состоянию.
cycleOffsetСмещение, с которого начинается цикл анимации. Полезно для синхронизации циклов анимации. Единица — нормализованное время.
cycleOffsetParameterПараметр контроллера аниматора, который управляет значением смещения цикла.
cycleOffsetParameterActiveОпределяет, управляется ли значение смещения цикла параметром контроллера Animator или значением, установленным в редакторе.
iKOnFeetДолжен ли для этого состояния соблюдаться Foot IK.
mirrorЗеркалирование состояния анимации.
mirrorParameterПараметр контроллера аниматора, который управляет значением зеркала.
mirrorParameterActiveОпределяет, управляется ли значение зеркала параметром контроллера Animator или значением, установленным в редакторе.
motionДвижение, назначенное этому состоянию.
nameHashХешированное имя состояния.
speedСкорость движения по умолчанию.
speedParameterПараметр контроллера аниматора, определяющий значение скорости.
speedParameterActiveОпределяет, управляется ли значение скорости параметром контроллера Animator или значением, установленным в редакторе.
tagТег можно использовать для идентификации состояния.
timeParameterЕсли timeParameterActive имеет значение true, то значение этого Параметра будет использоваться вместо нормализованного времени.
timeParameterActiveЕсли true, использовать значение данного параметра в качестве нормализованного времени.
transitionsПереходы, выходящие из состояния.
writeDefaultValuesУказывает, записывает ли AnimatorStates обратно значения по умолчанию для свойств, которые не анимируются его Motion.

Открытые методы

Метод Описание
AddExitTransitionВспомогательная функция для добавления исходящего перехода к выходу из родительской машины состояний.
AddStateMachineBehaviourДобавляет класс поведения машины состояний типа T к AnimatorState. Учтите, что парного метода Remove нет. Чтобы удалить поведение машины состояний, используйте Object.Destroy.
AddTransitionСлужебная функция для добавления исходящего перехода к целевому состоянию.
RemoveTransitionСлужебная функция для удаления перехода из состояния.
Унаследованные члены 4

Свойства

СвойствоОписание
hideFlagsДолжен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем?
nameИмя объекта.

Открытые методы

МетодОписание
GetInstanceIDПолучает экземпляр ID объекта.
ToStringВозвращает имя объекта.

Статические методы

МетодОписание
DestroyУдаляет GameObject, компонент или ресурс.
DestroyImmediateНемедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования.
DontDestroyOnLoadНе уничтожать целевой Объект при загрузке нового Scene.
FindAnyObjectByTypeПолучает любой активный загруженный объект типа Type.
FindFirstObjectByTypeПолучает первый активный загруженный объект типа Type.
FindObjectsByTypeПолучает список всех загруженных объектов типа Type.
InstantiateКлонирует исходный объект и возвращает клон.
InstantiateAsyncЗахватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation.

Операторы

ОператорОписание
boolСуществует ли объект?
оператор!=Сравнивает, если два объекта ссылаются на разные объекты.
оператор ==Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту.