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

Motion

класс в UnityEngine

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

Выполнено в:UnityEngine.AnimationModule

Описание

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