diff --git a/Assets/VRM/Tests/VRMLookAtTests.cs b/Assets/VRM/Tests/VRMLookAtTests.cs index fe01e118e..702d1bf1d 100644 --- a/Assets/VRM/Tests/VRMLookAtTests.cs +++ b/Assets/VRM/Tests/VRMLookAtTests.cs @@ -31,7 +31,7 @@ namespace VRM var go = loader.Root; var fp = go.GetComponent(); GameObject.DestroyImmediate(go.GetComponent()); - go.AddComponent(); + var lookAt = go.AddComponent(); bytes = VRMEditorExporter.Export(go, null, new VRMExportSettings { PoseFreeze = true, @@ -40,9 +40,80 @@ namespace VRM var parser2 = new GltfParser(); parser2.Parse(AliciaPath, bytes); - var loader2 = new VRMImporterContext(parser2); + using (var loader2 = new VRMImporterContext(parser2)) + { + Assert.AreEqual(LookAtType.BlendShape, loader2.VRM.firstPerson.lookAtType); + } + } - Assert.AreEqual(LookAtType.BlendShape, loader2.VRM.firstPerson.lookAtType); + [Test] + public void VRMLookAtCurveMapWithFreezeTest() + { + var parser = new GltfParser(); + parser.ParsePath(AliciaPath); + byte[] bytes = default; + CurveMapper horizontalInner = default; + using (var loader = new VRMImporterContext(parser)) + { + loader.Load(); + loader.ShowMeshes(); + + var go = loader.Root; + var fp = go.GetComponent(); + var lookAt = go.GetComponent(); + horizontalInner = lookAt.HorizontalInner; + bytes = VRMEditorExporter.Export(go, null, new VRMExportSettings + { + PoseFreeze = true, + }); + } + + var parser2 = new GltfParser(); + parser2.Parse(AliciaPath, bytes); + using (var loader = new VRMImporterContext(parser2)) + { + loader.Load(); + loader.ShowMeshes(); + + var lookAt = loader.Root.GetComponent(); + Assert.AreEqual(horizontalInner.CurveXRangeDegree, lookAt.HorizontalInner.CurveXRangeDegree); + Assert.AreEqual(horizontalInner.CurveYRangeDegree, lookAt.HorizontalInner.CurveYRangeDegree); + } + } + + [Test] + public void VRMLookAtCurveMapTest() + { + var parser = new GltfParser(); + parser.ParsePath(AliciaPath); + byte[] bytes = default; + CurveMapper horizontalInner = default; + using (var loader = new VRMImporterContext(parser)) + { + loader.Load(); + loader.ShowMeshes(); + + var go = loader.Root; + var fp = go.GetComponent(); + var lookAt = go.GetComponent(); + horizontalInner = lookAt.HorizontalInner; + bytes = VRMEditorExporter.Export(go, null, new VRMExportSettings + { + PoseFreeze = false, + }); + } + + var parser2 = new GltfParser(); + parser2.Parse(AliciaPath, bytes); + using (var loader = new VRMImporterContext(parser2)) + { + loader.Load(); + loader.ShowMeshes(); + + var lookAt = loader.Root.GetComponent(); + Assert.AreEqual(horizontalInner.CurveXRangeDegree, lookAt.HorizontalInner.CurveXRangeDegree); + Assert.AreEqual(horizontalInner.CurveYRangeDegree, lookAt.HorizontalInner.CurveYRangeDegree); + } } } }