From c7eefa5f6c34f28b28911491e57525783899edd4 Mon Sep 17 00:00:00 2001 From: hiroj Date: Fri, 22 May 2020 14:20:41 +0900 Subject: [PATCH] extend texture loader --- .../VRM/UniGLTF/Scripts/IO/ImporterContext.cs | 2 +- Assets/VRM/UniGLTF/Scripts/IO/TextureItem.cs | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) 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 }