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;
}