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

EditorCurveBinding

структура в UnityEditor

Описание

Идентифицирует анимированное свойство на Component или GameObject.

AnimationWindow использует привязку к кривой редактора для идентификации свойств анимации. Это делает авторство клипа возможным.

Вы можете использовать эту привязку для получения, установки или замены кривой в AnimationClip при авторстве клипа. Для этого используйте методы AnimationUtility.GetCurveBindings и AnimationUtility.GetObjectReferenceCurveBindings для получения массива анимированных привязок для AnimationClip. Для одного свойства используйте AnimationUtility.GetEditorCurve или AnimationUtility.GetObjectReferenceCurve для получения кривой, идентифицированной привязкой к кривой редактора AnimationClip. Используйте AnimationUtility.SetEditorCurve или AnimationUtility.SetObjectReferenceCurve для установки кривой. При записи живой анимации с GameObjectRecorder, используйте метод GameObjectRecorder.Bind для привязки свойства GameObject, идентифицированного привязкой кривой редактора.

Дополнительные ресурсы: AnimationUtility GameObjectRecorder.

using UnityEditor;
using UnityEngine;

public static class EditorCurveBindingExample
{
    // Change these values to match the prefix you want to remove and add.
    // For example, properties with paths "", "Hips", "Hips/LeftLeg",
    // are moved to "Root", "Root/Hips", "Root/Hips/LeftLeg".
    private const string k_PrefixToRemove = "";
    private const string k_PrefixToAdd = "Root";

    // This example moves the animated properties parented to `prefixToRemove` to
    // new properties parented to `prefixToAdd` on a selected animation clip.
    [MenuItem("Example/Reparent Animated Properties On Selected Animation Clip")]
    static void ReparentAnimatedPropertiesOnSelectedAnimationClip()
    {
        var clip = Selection.activeObject as AnimationClip;
        if (clip == null)
        {
            Debug.LogError("No animation clip selected.");
            return;
        }

        var clipBindings = AnimationUtility.GetCurveBindings(clip);

        foreach (var binding in clipBindings)
        {
            if (binding.path.StartsWith(k_PrefixToRemove))
            {
                var newBinding = binding;
                newBinding.path = binding.path.Substring(k_PrefixToRemove.Length);
                if (newBinding.path.StartsWith('/'))
                    newBinding.path = newBinding.path.Substring(1);

                if (string.IsNullOrEmpty(newBinding.path))
                    newBinding.path = k_PrefixToAdd;
                else if (!string.IsNullOrEmpty(k_PrefixToAdd))
                    newBinding.path = k_PrefixToAdd + "/" + newBinding.path;

                var curve = AnimationUtility.GetEditorCurve(clip, binding);

                // You rename curves by removing the old curve and adding a new one
                // with a new binding. You can also use the
                // AnimationUtility.SetEditorCurves method to set multiple curves at once.
                AnimationUtility.SetEditorCurve(clip, binding, null);
                AnimationUtility.SetEditorCurve(clip, newBinding, curve);
            }
        }

        AssetDatabase.SaveAssetIfDirty(clip);
    }
}

Свойства

Свойство Описание
isDiscreteCurveВозвращает true, если привязка является дискретной кривой. В противном случае возвращает false. (Только чтение)
isPPtrCurveВозвращает true, если привязка является кривой объекта. В противном случае возвращает false (только для чтения)
isSerializeReferenceCurveВозвращает true, если привязка является к кривой, которая указывает на поле в экземпляре SerializeReference. Возвращает false в противном случае. (Только чтение)
pathПуть преобразования объекта, который будет анимироваться.
propertyNameИмя свойства, которое будет анимироваться.
typeТип свойства для анимации.

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

Метод Описание
DiscreteCurveСоздает предварительно настроенную привязку для кривой, значения которой не должны интерполироваться.
FloatCurveСоздает предварительно настроенную привязку для кривой с плавающей точкой.
PPtrCurveСоздает предварительно настроенную привязку для кривой, которая указывает на Объект.
SerializeReferenceCurveСоздает предварительно настроенную привязку для кривой, которая указывает на поле экземпляра SerializeReference.