如何将System.IO.Stream转换为Unity for Unity中的纹理?

时间:2016-10-24 21:51:12

标签: c# android unity3d amazon-s3 mono

我在Unity中构建客户端Android应用程序,当它从AWS S3服务器下载jpg时,结果将以System.IO.Stream的形式返回。

然而,我对Mono和.Net的了解有限,这意味着我正在努力弄清楚如何将这个System.IO.Stream数据块转换为Unity中的纹理,然后我可以设置为四边形我的场景。

我已经看到过有希望的在线代码示例:var img = Bitmap.FromStream(stream); 但据我所知,Unity for Android不支持System.Drawing.Bitmap - 有没有人有任何建议?

提前致谢!

(用于从AWS S3下载的确切示例代码是GetObject()函数,可在此处找到http://docs.aws.amazon.com/mobile/sdkforunity/developerguide/s3.html,但在他们的示例中,它们仅使用System.IO.StreamReader适用于阅读文本而不是图像的字节数据)

1 个答案:

答案 0 :(得分:2)

您正在寻找LoadImage课程中的Texture2D功能。此函数将PNG / JPG图像字节数组转换为纹理。

Texture2D tex = new Texture2D(2, 2);
tex.LoadImage(stream);

stream变量必须是来自Internet / AWS S3服务器的字节数组(byte[])。