TextureCombiner/Assets/Scripts/TextureHandlers/TextureHandlerWeb.cs

72 lines
1.8 KiB
C#
Raw Normal View History

2020-11-01 03:54:32 +01:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
#if UNITY_WEBGL
using System.Text;
using System.Runtime.InteropServices;
#endif
namespace TextureCombiner
{
public class TextureHandlerWeb : TextureHandler
{
#if UNITY_WEBGL
protected override void OnEnable()
{
base.OnEnable();
}
protected override void OnDisable()
{
base.OnDisable();
}
protected override void Load()
{
UploadFile(this.gameObject.name, "OnLoadTexturesWWW", ".png, .jpg, .jpeg", true);
}
public void OnLoadTexturesWWW(string path)
{
string[] paths = path.Split(',');
StartCoroutine(LoadTexturesWWW(paths));
}
public IEnumerator LoadTexturesWWW(string[] paths)
{
if (paths.Length != 0)
{
foreach (string p in paths)
{
Debug.Log(p);
// Load Image.
var loader = new WWW(p);
yield return loader;
m_textureCombiner.LoadTextureSlot(loader.texture);
}
}
}
public void OnSaveTextureWWW()
{
Debug.Log("OnSaveTextureWWW");
}
[DllImport("__Internal")]
private static extern void UploadFile(string gameObjectName, string methodName, string filter, bool multiple);
[DllImport("__Internal")]
private static extern void DownloadFile(string gameObjectName, string methodName, string filename, byte[] byteArray, int byteArraySize);
protected override void Save(string name)
{
base.Save(name);
}
protected override void SaveTexture(string path, byte[] bytes)
{
DownloadFile(this.gameObject.name, "OnSaveTextureWWW", path, bytes, bytes.Length);
}
#endif
}
}