Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

AnimatorController

класс в UnityEditor.Animations / Наследует от: RuntimeAnimatorController

Описание

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

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. Этот метод следует использовать, когда вы имеете дело с синхронизированным слоем и хотите добавить поведение конечного автомата на синхронизированный слой. Обратите внимание, что нет соответствующего метода «Удалить». Чтобы удалить поведение конечного автомата, используйте Object.Destroy.
AddLayer Вспомогательная функция для добавления слоя в контроллер.
AddMotion Вспомогательная функция, которая создает новое состояние с движением в нем.
AddParameter Вспомогательная функция для добавления параметра в контроллер.
CreateBlendTreeInController Создает BlendTree в новом AnimatorState.
GetBehaviours Возвращает все StateMachineBehaviour, соответствующие типу T или производные от T.
GetStateEffectiveBehaviours Получает список эффективных действий конечного автомата для AnimatorState. Поведения хранятся либо в AnimatorStateMachine, либо в ovverrides AnimatorLayer. Используйте эту функцию, чтобы получить список поведения, который эффективно используется.
GetStateEffectiveMotion Получает эффективное движение для AnimatorState. Движение сохраняется либо в AnimatorStateMachine, либо в ovverrides AnimatorLayer. Используйте эту функцию, чтобы получить движение, которое эффективно используется.
MakeUniqueLayerName Создает уникальное имя для слоев.
MakeUniqueParameterName Создает уникальное имя для параметра.
RemoveLayer Вспомогательная функция для удаления слоя из контроллера.
RemoveParameter Вспомогательная функция для удаления параметра из контроллера.
SetStateEffectiveBehaviours Задает список эффективных действий конечного автомата для AnimatorState. Список Behavior хранится либо в AnimatorStateMachine, либо в ovverrides AnimatorLayer. Используйте эту функцию, чтобы установить список поведения, который будет эффективно использоваться.
SetStateEffectiveMotion Устанавливает эффективное движение для AnimatorState. Движение сохраняется либо в AnimatorStateMachine, либо в ovverrides AnimatorLayer. Используйте эту функцию, чтобы установить Движение, которое эффективно используется.

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

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

Унаследованные члены

Свойства

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

Публичные Методы

GetInstanceID Возвращает id экземпляра объекта.
ToString Возвращает имя объекта.

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

Destroy Удаляет игровой объект, компонент или актив.
DestroyImmediate Уничтожает объект obj. Вместо этого рекомендуется использовать метод Destroy.
DontDestroyOnLoad Не уничтожает целевой объект при загрузке новой сцены. .
FindObjectOfType Возвращает первый активный загруженный объект.
FindObjectsOfType Получает список всех загруженных объектов.
Instantiate Клонирует исходный объект и возвращает клон.

Операторы

bool Объект существует?
operator != Сравнивает, ссылаются ли два объекта на другой объект.
operator == Сравнивает две ссылки на объекты, чтобы определить, ссылаются ли они на один и тот же объект.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3