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

GenericBindingUtility

класс в UnityEngine.Animations

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

Описание

Функции Animation для чтения и записи значений из компонентов Unity.

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Animations;
using UnityEditor;
using Unity.Collections;
using System.Linq;

public class AnimationClipPlayer : MonoBehaviour { public AnimationClip animationClip; public float time;

List<AnimationCurve> curves;

NativeArray<BoundProperty> floatProperties; NativeArray<BoundProperty> intProperties; NativeArray<float> floatValues; NativeArray<int> intValues;

void Start() { var editorCurveBindings = AnimationUtility.GetCurveBindings(animationClip); editorCurveBindings = editorCurveBindings.Where(editorCurveBinding => editorCurveBinding.type != typeof(Transform) && !editorCurveBinding.isPPtrCurve && !editorCurveBinding.isDiscreteCurve ).ToArray();

curves = new List<AnimationCurve>(editorCurveBindings.Length); for (var i = 0; i < editorCurveBindings.Length; i++) { curves.Add(AnimationUtility.GetEditorCurve(animationClip, editorCurveBindings[i])); }

var genericBindings = new NativeArray<GenericBinding>(AnimationUtility.EditorCurveBindingsToGenericBindings(editorCurveBindings), Allocator.Temp); GenericBindingUtility.BindProperties(gameObject, genericBindings, out floatProperties, out intProperties, Allocator.Persistent);

floatValues = new NativeArray<float>(floatProperties.Length, Allocator.Persistent); intValues = new NativeArray<int>(intProperties.Length, Allocator.Persistent); }

private void OnDestroy() { floatProperties.Dispose(); floatValues.Dispose(); intProperties.Dispose(); intValues.Dispose(); }

// Update is called once per frame void Update() { for (int i = 0; i < curves.Count; i++) { floatValues[i] = curves[i].Evaluate(time); }

GenericBindingUtility.SetValues(floatProperties, floatValues); } }

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

Метод Описание
BindPropertiesПолучает список BoundProperty, определенный списком GenericBinding.
CreateGenericBindingПолучает GenericBinding, который представляет определенное свойство, связанное с GameObject или одним из его компонентов.
GetAnimatableBindingsПолучает анимированные привязки для конкретного GameObject.
GetCurveBindingsПолучает привязки кривых из клипа анимации.
GetValuesПолучает значение с плавающей запятой или целое число для каждого [[BoundProperty].
SetValuesЗадает значение с плавающей запятой или целое число для каждого [[BoundProperty].
UnbindPropertiesРазвязывает и высвобождает все ресурсы, используемые списком BoundProperty.