mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-08-20 01:25:45 -05:00
Test追加。GltfMaterialImporter.GetMaterialParam
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user