modular-avatar/UnitTests~/WorldFixedObjectTest/WorldFixedObjectTest.cs

67 lines
2.5 KiB
C#
Raw Normal View History

2023-09-24 15:59:02 +08:00
using modular_avatar_tests;
using nadena.dev.modular_avatar.animation;
using nadena.dev.modular_avatar.core.editor;
using NUnit.Framework;
using UnityEngine.Animations;
using VRC.SDK3.Avatars.Components;
public class WorldFixedObjectTest : TestBase
{
[Test]
public void SimpleTest()
{
var avatar = CreatePrefab("Simple.prefab");
var descriptor = avatar.GetComponent<VRCAvatarDescriptor>();
var fixedObject = avatar.transform.Find("FixedObject");
2023-09-24 15:59:02 +08:00
// initialize context
var buildContext = new BuildContext(descriptor);
buildContext.PluginBuildContext.ActivateExtensionContext<AnimationServicesContext>();
2023-09-24 15:59:02 +08:00
new WorldFixedObjectProcessor(descriptor).Process(buildContext);
var fixedRoot = avatar.transform.Find("(MA WorldFixedRoot)");
var movedFixedObject = avatar.transform.Find("(MA WorldFixedRoot)/FixedObject");
// fixed root is created
Assert.That(fixedRoot, Is.Not.Null);
Assert.That(fixedRoot.GetComponent<ParentConstraint>(), Is.Not.Null);
// objects are moved to fixed root
Assert.That(movedFixedObject, Is.Not.Null);
Assert.That(movedFixedObject, Is.EqualTo(fixedObject));
}
2023-09-24 15:59:02 +08:00
[Test]
public void NestedTest()
{
var avatar = CreatePrefab("Nested.prefab");
var descriptor = avatar.GetComponent<VRCAvatarDescriptor>();
var fixedObject = avatar.transform.Find("FixedObject");
var nestedFixed = avatar.transform.Find("FixedObject/NestedFixed");
2023-09-24 15:59:02 +08:00
// initialize context
var buildContext = new BuildContext(descriptor);
buildContext.PluginBuildContext.ActivateExtensionContext<AnimationServicesContext>();
2023-09-24 15:59:02 +08:00
new WorldFixedObjectProcessor(descriptor).Process(buildContext);
var fixedRoot = avatar.transform.Find("(MA WorldFixedRoot)");
var movedFixedObject = avatar.transform.Find("(MA WorldFixedRoot)/FixedObject");
var nestedFixedObject = avatar.transform.Find("(MA WorldFixedRoot)/NestedFixed");
// fixed root is created
Assert.That(fixedRoot, Is.Not.Null);
Assert.That(fixedRoot.GetComponent<ParentConstraint>(), Is.Not.Null);
// objects are moved to fixed root
Assert.That(movedFixedObject, Is.Not.Null);
Assert.That(movedFixedObject, Is.EqualTo(fixedObject));
// objects are moved to fixed root
Assert.That(nestedFixedObject, Is.Not.Null);
Assert.That(nestedFixedObject, Is.EqualTo(nestedFixed));
}
}