diff --git a/Assets/VRM/UniGLTF/Scripts/IO/ImporterContext.cs b/Assets/VRM/UniGLTF/Scripts/IO/ImporterContext.cs index bd13f27aa..aa961fe2b 100644 --- a/Assets/VRM/UniGLTF/Scripts/IO/ImporterContext.cs +++ b/Assets/VRM/UniGLTF/Scripts/IO/ImporterContext.cs @@ -394,7 +394,7 @@ namespace UniGLTF Root.name = Path.GetFileNameWithoutExtension(path); } - public static ITextureLoader CreateTextureLoader(int index) + public virtual ITextureLoader CreateTextureLoader(int index) { #if UNIGLTF_USE_WEBREQUEST_TEXTURELOADER return new UnityWebRequestTextureLoader(index); @@ -403,7 +403,7 @@ namespace UniGLTF #endif } - public virtual void CreateTextureItems(UnityPath imageBaseDir = default(UnityPath)) + public void CreateTextureItems(UnityPath imageBaseDir = default(UnityPath)) { if (m_textures.Any()) { @@ -431,7 +431,7 @@ namespace UniGLTF else #endif { - item = new TextureItem(i, CreateTextureLoader); + item = new TextureItem(i, CreateTextureLoader(i)); } AddTexture(item); diff --git a/Assets/VRM/UniGLTF/Scripts/IO/TextureItem.cs b/Assets/VRM/UniGLTF/Scripts/IO/TextureItem.cs index 0cab81f19..261fb6117 100644 --- a/Assets/VRM/UniGLTF/Scripts/IO/TextureItem.cs +++ b/Assets/VRM/UniGLTF/Scripts/IO/TextureItem.cs @@ -110,10 +110,15 @@ namespace UniGLTF /// Texture from buffer /// /// - public TextureItem(int index, Func textureLoaderFactrory) + public TextureItem(int index, ITextureLoader textureLoader) { m_textureIndex = index; - m_textureLoader = textureLoaderFactrory(index); + m_textureLoader = textureLoader; + + if(m_textureLoader == null) + { + throw new Exception("ITextureLoader is null."); + } } #if UNITY_EDITOR diff --git a/Assets/VRM/UniVRM/Scripts/Format/VRMImporterContext.cs b/Assets/VRM/UniVRM/Scripts/Format/VRMImporterContext.cs index 416f308df..a4d092286 100644 --- a/Assets/VRM/UniVRM/Scripts/Format/VRMImporterContext.cs +++ b/Assets/VRM/UniVRM/Scripts/Format/VRMImporterContext.cs @@ -307,7 +307,7 @@ namespace VRM // 作成する(先行ロード用) if (gltfMeta.texture >= 0 && gltfMeta.texture < GLTF.textures.Count) { - var t = new TextureItem(gltfMeta.texture, CreateTextureLoader); + var t = new TextureItem(gltfMeta.texture, CreateTextureLoader(gltfMeta.texture)); t.Process(GLTF, Storage); meta.Thumbnail = t.Texture; }