From fbae0d857f73d9ce3b2a19c88967e725f0ce380d Mon Sep 17 00:00:00 2001 From: Udayshankar Ravikumar Date: Thu, 22 Jan 2026 01:34:43 +0530 Subject: [PATCH 1/3] Fix MToon material importers ignoring custom shader --- .../Import/Materials/BuiltInVrm10MToonMaterialImporter.cs | 2 +- .../URP/Import/Materials/UrpVrm10MToonMaterialImporter.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Packages/VRM10/Runtime/IO/Material/BuiltInRP/Import/Materials/BuiltInVrm10MToonMaterialImporter.cs b/Packages/VRM10/Runtime/IO/Material/BuiltInRP/Import/Materials/BuiltInVrm10MToonMaterialImporter.cs index 6fba92303..1a4f62fec 100644 --- a/Packages/VRM10/Runtime/IO/Material/BuiltInRP/Import/Materials/BuiltInVrm10MToonMaterialImporter.cs +++ b/Packages/VRM10/Runtime/IO/Material/BuiltInRP/Import/Materials/BuiltInVrm10MToonMaterialImporter.cs @@ -44,7 +44,7 @@ namespace UniVRM10 // use material.name, because material name may renamed in GltfParser. matDesc = new MaterialDescriptor( m.name, - Shader.Find(MToon10Meta.UnityShaderName), + Shader, null, Vrm10MToonTextureImporter.EnumerateAllTextures(data, m, mtoon).ToDictionary(tuple => tuple.key, tuple => tuple.Item2.Item2), TryGetAllFloats(m, mtoon).ToDictionary(tuple => tuple.key, tuple => tuple.value), diff --git a/Packages/VRM10/Runtime/IO/Material/URP/Import/Materials/UrpVrm10MToonMaterialImporter.cs b/Packages/VRM10/Runtime/IO/Material/URP/Import/Materials/UrpVrm10MToonMaterialImporter.cs index ada10ec84..24eb37478 100644 --- a/Packages/VRM10/Runtime/IO/Material/URP/Import/Materials/UrpVrm10MToonMaterialImporter.cs +++ b/Packages/VRM10/Runtime/IO/Material/URP/Import/Materials/UrpVrm10MToonMaterialImporter.cs @@ -39,7 +39,7 @@ namespace UniVRM10 // use material.name, because material name may renamed in GltfParser. matDesc = new MaterialDescriptor( m.name, - Shader.Find(MToon10Meta.UnityUrpShaderName), + Shader, null, Vrm10MToonTextureImporter.EnumerateAllTextures(data, m, mtoon).ToDictionary(tuple => tuple.key, tuple => tuple.Item2.Item2), BuiltInVrm10MToonMaterialImporter.TryGetAllFloats(m, mtoon).ToDictionary(tuple => tuple.key, tuple => tuple.value), From c872bdb87a84178d91d54ae358decbb92474ac19 Mon Sep 17 00:00:00 2001 From: hadashiA Date: Wed, 25 Mar 2026 15:48:29 +0900 Subject: [PATCH 2/3] Fix memory leak caused by unreleased static references --- .../UniGLTF/Runtime/UniGLTF/RuntimeGltfInstance.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Packages/UniGLTF/Runtime/UniGLTF/RuntimeGltfInstance.cs b/Packages/UniGLTF/Runtime/UniGLTF/RuntimeGltfInstance.cs index 6f4374687..b4c6417eb 100644 --- a/Packages/UniGLTF/Runtime/UniGLTF/RuntimeGltfInstance.cs +++ b/Packages/UniGLTF/Runtime/UniGLTF/RuntimeGltfInstance.cs @@ -255,9 +255,10 @@ namespace UniGLTF } } - static Dictionary> PoseMap = new(); + static readonly Dictionary> PoseMap = new(); + public static IReadOnlyDictionary SafeGetInitialPose( - Transform root, bool useCache = true) + Transform root, bool useCache = false) { if (useCache && PoseMap.TryGetValue(root, out var pose)) { @@ -278,7 +279,10 @@ namespace UniGLTF } // add cache - PoseMap.Add(root, pose); + if (useCache) + { + PoseMap.Add(root, pose); + } return pose; } From a2f69b857c7fb5ebf01fdd74fe40536adfa506d7 Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 27 Oct 2025 09:44:21 +1000 Subject: [PATCH 3/3] Change RenderPipelineUtility to use GraphicsSettings.currentRenderPipeline --- .../UniGLTF/IO/MaterialIO/RenderPipelineUtility.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Packages/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/RenderPipelineUtility.cs b/Packages/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/RenderPipelineUtility.cs index 76ecc0547..d072bec45 100644 --- a/Packages/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/RenderPipelineUtility.cs +++ b/Packages/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/RenderPipelineUtility.cs @@ -1,4 +1,4 @@ -using UnityEngine.Rendering; +using UnityEngine.Rendering; namespace UniGLTF { @@ -6,19 +6,19 @@ namespace UniGLTF { public static RenderPipelineTypes GetRenderPipelineType() { - RenderPipeline currentPipeline = RenderPipelineManager.currentPipeline; + RenderPipelineAsset currentRenderPipelineAsset = GraphicsSettings.currentRenderPipeline; - if (currentPipeline == null) + if (currentRenderPipelineAsset == null) { return RenderPipelineTypes.BuiltinRenderPipeline; } - if (currentPipeline.GetType().Name.Contains("HDRenderPipeline")) + if (currentRenderPipelineAsset.GetType().Name.Contains("HDRenderPipeline")) { return RenderPipelineTypes.HighDefinitionRenderPipeline; } - if (currentPipeline.GetType().Name.Contains("UniversalRenderPipeline")) + if (currentRenderPipelineAsset.GetType().Name.Contains("UniversalRenderPipeline")) { return RenderPipelineTypes.UniversalRenderPipeline; } @@ -26,4 +26,4 @@ namespace UniGLTF return RenderPipelineTypes.Unknown; } } -} \ No newline at end of file +}