diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs index 289ef7357..940bdda96 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs @@ -179,14 +179,14 @@ namespace UniGLTF if (m_parser.GLTF.materials == null || m_parser.GLTF.materials.Count == 0) { // no material. work around. - var param = GltfMaterialImporter.CreateParam(m_parser, 0); + var param = GltfMaterialImporter.GetMaterialParam(m_parser, 0); var material = await MaterialFactory.LoadAsync(param, TextureFactory.GetTextureAsync); } else { for (int i = 0; i < m_parser.GLTF.materials.Count; ++i) { - var param = GltfMaterialImporter.CreateParam(m_parser, i); + var param = GltfMaterialImporter.GetMaterialParam(m_parser, i); var material = await MaterialFactory.LoadAsync(param, TextureFactory.GetTextureAsync); } } diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/GltfMaterialImporter.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/GltfMaterialImporter.cs index 6981d96a0..b038d6180 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/GltfMaterialImporter.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/GltfMaterialImporter.cs @@ -34,7 +34,7 @@ namespace UniGLTF return $"material_{index:00}"; } - public MaterialImportParam CreateParam(GltfParser parser, int i) + public MaterialImportParam GetMaterialParam(GltfParser parser, int i) { foreach (var tryCreate in GltfMaterialParamProcessors) { diff --git a/Assets/UniGLTF/Tests/UniGLTF/GltfLoadTests.cs b/Assets/UniGLTF/Tests/UniGLTF/GltfLoadTests.cs index a0140263c..6b173a7e1 100644 --- a/Assets/UniGLTF/Tests/UniGLTF/GltfLoadTests.cs +++ b/Assets/UniGLTF/Tests/UniGLTF/GltfLoadTests.cs @@ -185,5 +185,32 @@ namespace UniGLTF EditorLoad(gltf, root.FullName.Length); } } + + [Test] + public void GltfSampleModelsTest_DamagedHelmet() + { + var env = System.Environment.GetEnvironmentVariable("GLTF_SAMPLE_MODELS"); + if (string.IsNullOrEmpty(env)) + { + return; + } + var root = new DirectoryInfo($"{env}/2.0"); + if (!root.Exists) + { + return; + } + + { + var path = Path.Combine(root.FullName, "DamagedHelmet/glTF-Binary/DamagedHelmet.glb"); + var parser = new GltfParser(); + parser.ParsePath(path); + + var materialParam = new GltfMaterialImporter().GetMaterialParam(parser, 0); + Assert.AreEqual("Standard", materialParam.ShaderName); + Assert.AreEqual(5, materialParam.TextureSlots.Count); + var (key, value) = materialParam.EnumerateSubAssetKeyValue().First(); + Assert.AreEqual(new SubAssetKey(typeof(Texture2D), "texture_0"), key); + } + } } }