下载并打开png图像?

时间:2015-11-04 12:30:57

标签: c# unity3d

在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 () {

    }    
}

1 个答案:

答案 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