HumanoidControl_Free/Tests/Editor/Humanoid/HumanoidControlEditorTest.cs

99 lines
3.8 KiB
C#

using UnityEngine;
using UnityEditor;
using NUnit.Framework;
namespace Passer.Humanoid {
public class HumanoidControlEditorTest {
[Test]
[Category("Humanoid")]
public void HumanoidControl_UnityXR() {
UnityEditor.SceneManagement.EditorSceneManager.NewScene(UnityEditor.SceneManagement.NewSceneSetup.EmptyScene);
GameObject humanoidObj = new GameObject("Humanoid");
HumanoidControl humanoid = humanoidObj.AddComponent<HumanoidControl>();
Assert.IsFalse(humanoid == null);
humanoid.DetermineTargets();
GameObject avatarModel = (GameObject)AssetDatabase.LoadMainAssetAtPath("Packages/com.passervr.humanoidcontrol_free/Tests/Editor/Humanoid/MakeHuman_simple_TP.fbx");
GameObject avatar = GameObject.Instantiate(avatarModel, humanoid.transform);
Assert.IsFalse(avatar == null);
Assert.IsTrue(avatar.transform.parent == humanoidObj.transform);
Animator avatarAnimator = humanoid.GetAvatar(humanoidObj);
Assert.IsFalse(avatarAnimator == null);
humanoid.unityXR.enabled = true;
Assert.IsTrue(humanoid.unityXR.trackerComponent == null);
humanoid.unityXR.CheckTracker(humanoid);
Assert.IsTrue(humanoid.unityXR.trackerComponent != null);
humanoid.unityXR.enabled = false;
Assert.IsTrue(humanoid.unityXR.trackerComponent != null);
humanoid.unityXR.CheckTracker(humanoid);
Assert.IsTrue(humanoid.unityXR.trackerComponent == null);
// Head
HeadTarget headTarget = humanoid.headTarget;
humanoid.unityXR.enabled = false;
headTarget.unityXR.enabled = true;
Assert.IsTrue(headTarget.unityXR.sensorComponent == null);
headTarget.unityXR.CheckSensor(headTarget);
Assert.IsTrue(headTarget.unityXR.sensorComponent == null);
humanoid.unityXR.enabled = true;
Assert.IsTrue(headTarget.unityXR.sensorComponent == null);
headTarget.unityXR.CheckSensor(headTarget);
Assert.IsTrue(headTarget.unityXR.sensorComponent != null);
headTarget.unityXR.enabled = false;
Assert.IsTrue(headTarget.unityXR.sensorComponent != null);
headTarget.unityXR.CheckSensor(headTarget);
Assert.IsTrue(headTarget.unityXR.sensorComponent == null);
headTarget.unityXR.enabled = false;
headTarget.unityXR.CheckSensor(headTarget);
humanoid.unityXR.enabled = false;
humanoid.unityXR.CheckTracker(humanoid);
Assert.IsTrue(headTarget.unityXR.sensorComponent == null);
// Hand
HandTarget handTarget = humanoid.leftHandTarget;
humanoid.unityXR.enabled = false;
handTarget.unityXR.enabled = true;
Assert.IsTrue(handTarget.unityXR.sensorComponent == null);
handTarget.unityXR.CheckSensor(handTarget);
Assert.IsTrue(handTarget.unityXR.sensorComponent == null);
humanoid.unityXR.enabled = true;
Assert.IsTrue(handTarget.unityXR.sensorComponent == null);
handTarget.unityXR.CheckSensor(handTarget);
Assert.IsTrue(handTarget.unityXR.sensorComponent != null);
handTarget.unityXR.enabled = false;
Assert.IsTrue(handTarget.unityXR.sensorComponent != null);
handTarget.unityXR.CheckSensor(handTarget);
Assert.IsTrue(handTarget.unityXR.sensorComponent == null);
handTarget.unityXR.enabled = false;
handTarget.unityXR.CheckSensor(handTarget);
humanoid.unityXR.enabled = false;
humanoid.unityXR.CheckTracker(humanoid);
Assert.IsTrue(handTarget.unityXR.sensorComponent == null);
}
}
}