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 | Существует ли объект? |
| оператор!= | Сравнивает, если два объекта ссылаются на разные объекты. |
| оператор == | Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту. |