0

我正在尝试将图像从服务器下载到我的 Unity WebGL 应用程序。我使用了 WWW,它可以工作,但是它在下载时会在浏览器中冻结整个 WebGL 应用程序。这个简单的代码有效,但它会在下载图像时停止应用程序。

WWW loader = new WWW(url);
yield return loader;

我已经用尽了使用 Unity 下载图像的所有可能性,因为它要么冻结要么不起作用,

相反,我想看看是否有可能统一告诉浏览器使用 javascript 为我下载图像,然后让它以某种方式将该图像传递回我的统一 c# 代码。

有人知道如何使用外部 java 脚本来做到这一点吗?我知道它可以做到这一点,因为我有代码可以使用外部 java 脚本从 Unity 向服务器发送图片,并且它可以在不冻结应用程序的情况下工作,所以它必须也可以以其他方式工作。

谢谢!

4

1 回答 1

0

我还没有在 WebGL 构建中看到 WWW 冻结的实例。您可能做错了什么,问题中的两行代码不能用来说明问题所在。

如果 WWW API 确实存在问题,请使用UnityWebRequest. 无需为此使用 Javascript。

void Start()
{
    StartCoroutine(downloadTexture("http://www.myUrl.png"));
}

IEnumerator downloadTexture(string url)
{
    using (UnityWebRequest www = UnityWebRequest.GetTexture(url))
    {
        yield return www.Send();

        if (www.isError)
        {
            Debug.Log(www.error);
        }
        else
        {
            Texture myTexture = DownloadHandlerTexture.GetContent(www);
        }
    }
}
于 2016-12-22T22:57:51.817 回答