diff --git a/Assets/VRM/UniGLTF/Scripts/IO/ImporterContext.cs b/Assets/VRM/UniGLTF/Scripts/IO/ImporterContext.cs index 8c975612b..952862959 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 void CreateTextureItems(UnityPath imageBaseDir = default(UnityPath)) + public virtual void CreateTextureItems(UnityPath imageBaseDir = default(UnityPath)) { if (m_textures.Any()) { diff --git a/Assets/VRM/UniGLTF/Scripts/IO/TextureItem.cs b/Assets/VRM/UniGLTF/Scripts/IO/TextureItem.cs index 07c6a3d72..5c806739f 100644 --- a/Assets/VRM/UniGLTF/Scripts/IO/TextureItem.cs +++ b/Assets/VRM/UniGLTF/Scripts/IO/TextureItem.cs @@ -110,13 +110,25 @@ namespace UniGLTF /// Texture from buffer /// /// - public TextureItem(int index) + public TextureItem(int index, ITextureLoader textureLoader = null) { m_textureIndex = index; + if(textureLoader == null) + { + m_textureLoader = CreateTextureLoader(index); + } + else + { + m_textureLoader = textureLoader; + } + } + + private static ITextureLoader CreateTextureLoader(int index) + { #if UNIGLTF_USE_WEBREQUEST_TEXTURELOADER - m_textureLoader = new UnityWebRequestTextureLoader(m_textureIndex); + return new UnityWebRequestTextureLoader(index); #else - m_textureLoader = new TextureLoader(m_textureIndex); + return new TextureLoader(index); #endif }