Test追加。GltfMaterialImporter.GetMaterialParam

This commit is contained in:
ousttrue
2021-04-16 13:36:48 +09:00
parent 52f516d443
commit 32abd901ea
3 changed files with 30 additions and 3 deletions

View File

@@ -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);
}
}

View File

@@ -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)
{

View File

@@ -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);
}
}
}
}