diff --git a/Assets/VRM/Runtime/IO/VrmUtility.cs b/Assets/VRM/Runtime/IO/VrmUtility.cs index 0a5ec9979..431ca1d1f 100644 --- a/Assets/VRM/Runtime/IO/VrmUtility.cs +++ b/Assets/VRM/Runtime/IO/VrmUtility.cs @@ -27,7 +27,12 @@ namespace VRM try { var vrm = new VRMData(data); - using (var loader = new VRMImporterContext(vrm, materialGenerator: materialGeneratorCallback(vrm.VrmExtension))) + IMaterialDescriptorGenerator materialGen = default; + if (materialGeneratorCallback != null) + { + materialGen = materialGeneratorCallback(vrm.VrmExtension); + } + using (var loader = new VRMImporterContext(vrm, materialGenerator: materialGen)) { if (metaCallback != null) { diff --git a/Assets/VRM_Samples/RuntimeExporterSample/VRMRuntimeExporter.cs b/Assets/VRM_Samples/RuntimeExporterSample/VRMRuntimeExporter.cs index 50c6fce21..0c39e342c 100644 --- a/Assets/VRM_Samples/RuntimeExporterSample/VRMRuntimeExporter.cs +++ b/Assets/VRM_Samples/RuntimeExporterSample/VRMRuntimeExporter.cs @@ -49,25 +49,11 @@ namespace VRM.RuntimeExporterSample return; } - // GLB形式でJSONを取得しParseします - var data = new GlbFileParser(path).Parse(); - // VRM extension を parse します - var vrm = new VRMData(data); - using (var context = new VRMImporterContext(vrm)) - { + var loaded = await VrmUtility.LoadAsync(path); - // metaを取得(todo: thumbnailテクスチャのロード) - var meta = await context.ReadMetaAsync(); - Debug.LogFormat("meta: title:{0}", meta.Title); - - // ParseしたJSONをシーンオブジェクトに変換していく - var loaded = await context.LoadAsync(); - - loaded.ShowMeshes(); - loaded.EnableUpdateWhenOffscreen(); - - OnLoaded(loaded.gameObject); - } + loaded.ShowMeshes(); + loaded.EnableUpdateWhenOffscreen(); + OnLoaded(loaded.gameObject); } void OnLoaded(GameObject go)