在Unity中,此脚本在程序开始时加载。我想下载一个图像,然后在主屏幕上显示它。我该怎么办?以下代码无效。
我的代码:
using UnityEngine;
public class PushNotifications : MonoBehaviour {
IEnumerator Start () {
Texture2D textWebPic = null;
WWW image = new WWW("http://www.test.com/image.png");
yield return image;
image.LoadImageIntoTexture(textWebPic);
}
void Update () {
}
}
答案 0 :(得分:1)
你不能将null传递给LoadImageIntoTexture
,因为那时Unity不知道输出的位置(它不是引用)。必须首先初始化纹理。
然而,无论您使用什么尺寸或格式初始化它都无关紧要,无论如何,统一会调整它的大小。所以你可以初始化一些虚拟对象,像这样加载图像:
IEnumerator Start () {
Texture2D textWebPic = new Texture2D(2,2);
WWW image = new WWW("http://www.test.com/image.png");
yield return image;
image.LoadImageIntoTexture(textWebPic);
}
另一个,可能更好的选择是使用WWW.texture
而不是LoadImageIntoTexture,如下所示:
IEnumerator Start () {
WWW image = new WWW("http://www.test.com/image.png");
yield return image;
Texture2D textWebPic = image.texture;
}
有关更多示例,请参阅WWW类参考: http://docs.unity3d.com/ScriptReference/WWW.html
然后要在屏幕上显示它,您有多种选择 - 使用此纹理创建材质,从纹理创建精灵(最适合2D游戏)或仅使用Graphics.DrawTexture
。