Motion
Описание
Хранит ссылку на ассет анимации, связанный с State Machine state.
Motion класс служит абстракцией для API, принимающих либо AnimationClip или BlendTree классы анимации.
Дополнительные ресурсы: AnimatorState.motion, AnimatorController.AddMotion, BlendTree.AddChild.
Этот пример показывает, как создать BlendTree из выборки AnimationClipsЭтот пример также показывает, как BlendTree состоит из двух или более детей Motionс, и как использовать BlendTree для инстанционирования AnimatorState.
using System.Collections.Generic; using UnityEditor; using UnityEditor.Animations; using UnityEngine; static class MotionClassExample { [MenuItem("Example/Create Animator Controller From Selected Clips")] static void CreateAnimatorControllerFromClips() { // Get the Motion-derived assets in the selection. You can only do this with AnimationClip assets. var motions = new List<Motion>(); foreach (var obj in Selection.objects) { if (obj is Motion clip) { motions.Add(clip); } } if (motions.Count == 0) { Debug.LogWarning("No clips selected"); return; } // Create an AnimationController in the project. var animatorController = AnimatorController.CreateAnimatorControllerAtPath( AssetDatabase.GenerateUniqueAssetPath("Assets/MotionExample.controller")); // Create a BlendTree that blends between the selected Motion objects. var blendTree = new BlendTree { name = "Default" }; for (var i = 0; i < motions.Count; i++) { var clip = motions[i]; blendTree.AddChild(clip, (float)i / motions.Count); } // Create a new state from the BlendTree (which is itself a Motion). animatorController.AddMotion(blendTree); // Make sure the BlendTree is persisted. AssetDatabase.AddObjectToAsset(blendTree, animatorController); // Show the new AnimatorController in the project window. Selection.activeObject = animatorController; EditorGUIUtility.PingObject(animatorController); } }
Унаследованные члены 4
Свойства
| Свойство | Описание |
|---|---|
| hideFlags | Должен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем? |
| name | Имя объекта. |
Открытые методы
| Метод | Описание |
|---|---|
| GetInstanceID | Получает экземпляр ID объекта. |
| ToString | Возвращает имя объекта. |
Статические методы
| Метод | Описание |
|---|---|
| Destroy | Удаляет GameObject, компонент или ресурс. |
| DestroyImmediate | Немедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования. |
| DontDestroyOnLoad | Не уничтожать целевой Объект при загрузке нового Scene. |
| FindAnyObjectByType | Получает любой активный загруженный объект типа Type. |
| FindFirstObjectByType | Получает первый активный загруженный объект типа Type. |
| FindObjectsByType | Получает список всех загруженных объектов типа Type. |
| Instantiate | Клонирует исходный объект и возвращает клон. |
| InstantiateAsync | Захватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation. |
Операторы
| Оператор | Описание |
|---|---|
| bool | Существует ли объект? |
| оператор!= | Сравнивает, если два объекта ссылаются на разные объекты. |
| оператор == | Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту. |