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

How to convert System.IO.Stream into a Texture in Unity for Android?

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

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

我在网上看到了一些很有前途的代码示例,例如:var img = Bitmap.FromStream(stream); 但据我所知,Android 在 Unity 中不支持 System.Drawing.Bitmap - 有人有什么建议吗?

提前致谢!

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

您正在寻找 LoadImage function from the Texture2D class。此函数将 PNG/JPG 图像字节数组转换为纹理。

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

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