2023-11-10 14:37:56 +08:00
|
|
|
|
#if MA_VRCSDK3_AVATARS
|
|
|
|
|
|
|
|
|
|
using nadena.dev.modular_avatar.core;
|
2023-01-24 20:40:22 +08:00
|
|
|
|
using nadena.dev.modular_avatar.core.editor;
|
|
|
|
|
using NUnit.Framework;
|
|
|
|
|
using UnityEditor;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
namespace modular_avatar_tests.SimpleArmatureToggle
|
|
|
|
|
{
|
|
|
|
|
public class SimpleArmatureToggle : TestBase
|
|
|
|
|
{
|
|
|
|
|
[Test]
|
|
|
|
|
public void ToplevelAssetTogglingWorks()
|
|
|
|
|
{
|
|
|
|
|
var prefab = CreatePrefab("SimpleArmatureToggle.prefab");
|
|
|
|
|
AvatarProcessor.ProcessAvatar(prefab);
|
|
|
|
|
|
|
|
|
|
var layerName = "merged";
|
2023-03-25 14:29:00 +08:00
|
|
|
|
var motion = findFxClip(prefab, layerName);
|
2023-01-24 20:40:22 +08:00
|
|
|
|
|
|
|
|
|
var obj1 = prefab.transform.Find("Armature/Hips").GetChild(1);
|
|
|
|
|
var obj2 = prefab.transform.Find("Armature/Hips/Chest").GetChild(0);
|
|
|
|
|
|
|
|
|
|
var binding1 = EditorCurveBinding.FloatCurve(RuntimeUtil.AvatarRootPath(obj1.gameObject),
|
|
|
|
|
typeof(GameObject), "m_IsActive");
|
|
|
|
|
var binding2 = EditorCurveBinding.FloatCurve(RuntimeUtil.AvatarRootPath(obj2.gameObject),
|
|
|
|
|
typeof(GameObject), "m_IsActive");
|
2023-03-25 14:29:00 +08:00
|
|
|
|
|
2023-01-24 20:40:22 +08:00
|
|
|
|
Assert.NotNull(AnimationUtility.GetEditorCurve(motion, binding1));
|
|
|
|
|
Assert.NotNull(AnimationUtility.GetEditorCurve(motion, binding2));
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-11-10 14:37:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif
|