fix_virtual func

This commit is contained in:
hiroj 2020-05-22 15:58:39 +09:00
parent 8c821dc941
commit 0bba0601d5
3 changed files with 11 additions and 6 deletions

View File

@ -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);

View File

@ -110,10 +110,15 @@ namespace UniGLTF
/// Texture from buffer
/// </summary>
/// <param name="index"></param>
public TextureItem(int index, Func<int, ITextureLoader> 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

View File

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