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

AnimatorController

класс в UnityEditor.Animations

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

Описание

Animator Controller управляет анимацией через слои с машинами состояний, которыми управляют параметры.

using UnityEngine;
using UnityEditor;
using UnityEditor.Animations;
using System.Collections;

// Create a menu item that causes a new controller and statemachine to be created.

public class SM : MonoBehaviour { [MenuItem("MyMenu/Create Controller")] static void CreateController() { // Creates the controller var controller = UnityEditor.Animations.AnimatorController.CreateAnimatorControllerAtPath("Assets/Mecanim/StateMachineTransitions.controller");

// Add parameters controller.AddParameter("TransitionNow", AnimatorControllerParameterType.Trigger); controller.AddParameter("Reset", AnimatorControllerParameterType.Trigger); controller.AddParameter("GotoB1", AnimatorControllerParameterType.Trigger); controller.AddParameter("GotoC", AnimatorControllerParameterType.Trigger);

// Add StateMachines var rootStateMachine = controller.layers[0].stateMachine; var stateMachineA = rootStateMachine.AddStateMachine("smA"); var stateMachineB = rootStateMachine.AddStateMachine("smB"); var stateMachineC = stateMachineB.AddStateMachine("smC");

// Add States var stateA1 = stateMachineA.AddState("stateA1"); var stateB1 = stateMachineB.AddState("stateB1"); var stateB2 = stateMachineB.AddState("stateB2"); stateMachineC.AddState("stateC1"); var stateC2 = stateMachineC.AddState("stateC2"); // don’t add an entry transition, should entry to state by default

// Add Transitions var exitTransition = stateA1.AddExitTransition(); exitTransition.AddCondition(UnityEditor.Animations.AnimatorConditionMode.If, 0, "TransitionNow"); exitTransition.duration = 0;

var resetTransition = rootStateMachine.AddAnyStateTransition(stateA1); resetTransition.AddCondition(UnityEditor.Animations.AnimatorConditionMode.If, 0, "Reset"); resetTransition.duration = 0;

var transitionB1 = stateMachineB.AddEntryTransition(stateB1); transitionB1.AddCondition(UnityEditor.Animations.AnimatorConditionMode.If, 0, "GotoB1"); stateMachineB.AddEntryTransition(stateB2); stateMachineC.defaultState = stateC2; var exitTransitionC2 = stateC2.AddExitTransition(); exitTransitionC2.AddCondition(UnityEditor.Animations.AnimatorConditionMode.If, 0, "TransitionNow"); exitTransitionC2.duration = 0;

var stateMachineTransition = rootStateMachine.AddStateMachineTransition(stateMachineA, stateMachineC); stateMachineTransition.AddCondition(UnityEditor.Animations.AnimatorConditionMode.If, 0, "GotoC"); rootStateMachine.AddStateMachineTransition(stateMachineA, stateMachineB); } }

Свойства

Свойство Описание
layersСлои в контроллере.
parametersПараметры используются для связи между скриптом и контроллером. Они используются для управления переходами и смешивающими деревьями, например.

Конструкторы

Конструктор Описание
AnimatorControllerКонструктор.

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

Метод Описание
AddEffectiveStateMachineBehaviourДобавляет класс поведения машины состояний указанного типа к AnimatorState для слоя layerIndex. Этот метод следует применять, когда вы работаете с синхронизированным слоем и хотите добавить поведение машины состояний на него. Учтите, что парного метода Remove нет. Чтобы удалить поведение машины состояний, используйте Object.Destroy.
AddLayerУтилита для добавления слоя к контроллеру.
AddMotionВспомогательная функция, создающая новое состояние с движением внутри.
AddParameterУтилитная функция для добавления параметра к контроллеру.
CreateBlendTreeInControllerСоздает BlendTree в новом AnimatorState.
GetBehavioursВозвращает все StateMachineBehaviour, соответствующие типу T или полученные из T.
GetStateEffectiveBehavioursВозвращает действующий список поведений машины состояний для AnimatorState. Поведения хранятся либо в AnimatorStateMachine, либо в переопределениях AnimatorLayer. Эта функция возвращает список поведений, которые действительно применяются.
GetStateEffectiveMotionПолучает эффективное Движение для AnimatorState. Движение хранится либо в AnimatorStateMachine, либо в ovverrides AnimatorLayer. Используйте эту функцию, чтобы получить Движение, которое эффективно используется.
MakeUniqueLayerNameСоздает уникальное имя для слоев.
MakeUniqueParameterNameСоздает уникальное имя для параметра.
RemoveLayerУтилитная функция для удаления слоя из контроллера.
RemoveParameterУтилита для удаления параметра из контроллера.
SetStateEffectiveBehavioursЗадаёт действующий список поведений машины состояний для AnimatorState. Список хранится либо в AnimatorStateMachine, либо в переопределениях AnimatorLayer. С помощью этой функции задаётся список поведений, которые действительно применяются.
SetStateEffectiveMotionЗадает эффективное Движение для AnimatorState. Движение сохраняется либо в AnimatorStateMachine, либо в ovverrides AnimatorLayer. Используйте эту функцию, чтобы установить Движение, которое эффективно используется.

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

Метод Описание
CreateAnimatorControllerAtPathСоздает AnimatorController в указанном пути.
CreateAnimatorControllerAtPathWithClipСоздает AnimatorController на указанном пути и автоматически создает AnimatorLayer с AnimatorStateMachine, который добавит Состояние с AnimationClip в нем.
CreateNewStateMachineBehaviourЭта функция создаёт экземпляр StateMachineBehaviour на основе класса, объявленного в этом скрипте.
FindStateMachineBehaviourContextИспользуйте эту функцию для получения владельца этого поведения.
Унаследованные члены 4

Свойства

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

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

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

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

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

Операторы

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