版本: Unity 6 (6000.0)
语言英语
  • C#

GenericBindingUtility

UnityEngine.Animations 类

/

在以下位置实现: UnityEngine.AnimationModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读来自用户的每项建议的更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您花时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

用于从 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检索由 GenericBinding 列表定义的 BoundProperty 列表。
CreateGenericBinding检索表示与 GameObject 或其组件关联的特定属性的 GenericBinding。
GetAnimatableBindings检索特定 GameObject 的可动画绑定。
GetCurveBindings从动画剪辑中检索曲线绑定。
GetValues检索每个 [[BoundProperty]] 的浮点或整数值。
SetValues设置每个 [[BoundProperty]] 的浮点或整数值。
UnbindProperties取消绑定并释放 BoundProperty 列表使用的所有资源。