123456789101112131415161718192021222324252627282930313233343536373839 |
- using UnityEngine;
- using System.Collections;
- using UnityEditor;
- namespace RootMotion
- {
- public static class AnimationUtilityExtended
- {
- /// <summary>
- /// Copies the curves with the specified property names from clipFrom to clipTo.
- /// </summary>
- /// <param name="fromClip">copy from clip.</param>
- /// <param name="toClip">paste to clip</param>
- /// <param name="propertyNames">Property names ("Root.T", "Root.Q", "LeftFoot.T"...).</param>
- public static void CopyCurves(AnimationClip fromClip, AnimationClip toClip, string[] propertyNames)
- {
- EditorCurveBinding[] bindings = AnimationUtility.GetCurveBindings(fromClip);
- for (int i = 0; i < bindings.Length; i++)
- {
- for (int n = 0; n < propertyNames.Length; n++)
- {
- if (bindings[i].propertyName == propertyNames[n])
- {
- CopyCurve(fromClip, toClip, bindings[i]);
- }
- }
- }
- }
- public static void CopyCurve(AnimationClip fromClip, AnimationClip toClip, EditorCurveBinding binding)
- {
- AnimationCurve curve = AnimationUtility.GetEditorCurve(fromClip, binding);
- toClip.SetCurve(string.Empty, typeof(Animator), binding.propertyName, curve);
- }
- }
- }
|