2023-11-10 14:37:56 +08:00
|
|
|
|
#if MA_VRCSDK3_AVATARS
|
|
|
|
|
|
|
|
|
|
using nadena.dev.modular_avatar.core.editor;
|
2023-01-06 22:54:48 +08:00
|
|
|
|
using NUnit.Framework;
|
|
|
|
|
using UnityEditor;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
namespace modular_avatar_tests.TransformMappingThroughSwitchedObject
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// This test verifies that transform mappings are properly handled, even if the bone they target is on an armature
|
|
|
|
|
/// underneath multiple switched objects (which therefore would generate multiple levels of proxy switch objects).
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class TransformMappingThroughSwitchedObject : TestBase
|
|
|
|
|
{
|
|
|
|
|
[Test]
|
|
|
|
|
public void TransformMappingHandledCorrectly()
|
|
|
|
|
{
|
|
|
|
|
var prefab = CreatePrefab("TransformMappingThroughSwitchedObject.prefab");
|
|
|
|
|
AvatarProcessor.ProcessAvatar(prefab);
|
|
|
|
|
|
2023-03-25 14:29:00 +08:00
|
|
|
|
var motion = findFxClip(prefab, "child_controller");
|
2023-01-06 22:54:48 +08:00
|
|
|
|
|
|
|
|
|
var binding = EditorCurveBinding.FloatCurve("Armature/Hips", typeof(Transform), "localEulerAnglesRaw.x");
|
|
|
|
|
var curve = AnimationUtility.GetEditorCurve(motion, binding);
|
|
|
|
|
Assert.IsNotNull(curve);
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-11-10 14:37:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif
|