【发布时间】:2019-11-15 11:01:49
【问题描述】:
我有一个 IEnumerator 函数,可以从服务器下载图像,在未附加到预制件的脚本上,它可以工作,但在附加到预制件的脚本上,它不起作用。
由于不起作用,我想说 www.SendWebRequest() 永远不会返回,我已经等了将近 10 分钟但它没有返回,图像大约有 200kb,所以问题不在于图像大小。
我已经检查了url是否正确,尝试更改图像,尝试重新编写函数但没有任何效果,这是我的函数:
public void Set(string NomeIcone, string NomeAnalise, string idzinho, string descricaozinha, string NomeCapa)
{
Name.text = NomeAnalise;
ID = idzinho;
Descricao = descricaozinha;
Capa = NomeCapa;
StartCoroutine(LoadLogo(NomeIcone));
}
public IEnumerator LoadLogo(string nomeArquivo)
{
string url = PathIcone + nomeArquivo;
print(url);
using (UnityWebRequest www = UnityWebRequestTexture.GetTexture(url))
{
yield return www.SendWebRequest();
if (www.error == null)
{
Texture2D tex = new Texture2D(1, 1);
tex = DownloadHandlerTexture.GetContent(www);
Icon.texture = tex;
RawImage Foto = Icon.GetComponentInChildren<RawImage>();
Foto.SetNativeSize();
float altura = 100 * Foto.rectTransform.rect.height / Foto.rectTransform.rect.width;
Foto.rectTransform.sizeDelta = new Vector2(100, altura);
}
}
}
My prefab setup in the inspector
如您所见,我的“IconeSimbolo”是附加此脚本的预制件中的 RawImage
我希望我的“IconeSimbolo”纹理更改为服务器上的图像,但它永远不会改变。
我在另一个脚本上有相同的代码,在检查器上具有相同的设置,在另一个预制件上一切正常,但在这个它没有
【问题讨论】:
-
请edit您的问题并解释您所说的“它不起作用”是什么意思。它会使编辑器崩溃吗?你的电脑会蓝屏吗?目前我们无法知道您所说的“它不起作用”是什么意思。另外,请包含您用于创建和启动
LoadCapa协程的代码。 -
我改变了一些东西,我希望现在更清楚了,谢谢!
-
如果你在
if (www.error == null) {...}后面加上else { Debug.Log(www.error); },你看到那行打印了吗?从您告诉我们的情况来看,似乎无法确定它是否永远不会返回,或者是否只是一个错误。它可能使用了意外的PathIcone + nomeArquivo,而您遇到了 404 错误或其他问题。 -
我尝试添加,但控制台上没有显示任何内容