modular-avatar/UnitTests~/Animation/AnimationTestUtil.cs

55 lines
1.6 KiB
C#
Raw Normal View History

using System.Linq;
using NUnit.Framework;
using UnityEditor;
using UnityEditor.Animations;
using UnityEngine;
namespace modular_avatar_tests
{
public static class AnimationTestUtil
{
public static AnimatorController TestController(string name, Motion motion = null)
{
var controller = new AnimatorController();
var stateMachine = new AnimatorStateMachine();
var state = new AnimatorState();
state.name = name;
controller.layers = new[]
{
new AnimatorControllerLayer
{
blendingMode = AnimatorLayerBlendingMode.Override,
defaultWeight = 1,
name = name,
stateMachine = stateMachine
}
};
stateMachine.name = name;
stateMachine.states = new[]
{
new ChildAnimatorState()
{
state = state
}
};
stateMachine.defaultState = state;
state.motion = motion;
return controller;
}
public static AnimationClip AnimationWithPath(string path)
{
AnimationClip clip = new AnimationClip();
clip.SetCurve(path, typeof(Transform), "localPosition.x", AnimationCurve.Constant(0, 1, 0));
return clip;
}
public static void AssertAnimationHasPath(AnimationClip clip, string path)
{
Assert.IsTrue(AnimationUtility.GetCurveBindings(clip).Any(b => b.path == path));
}
}
}