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

Art*_*hur 2 c# mono android amazon-s3 unity-game-engine

我正在 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 ,它仅适用于读取文本而不是图像的字节数据)

Pro*_*mer 5

您正在寻找类LoadImage中的函数Texture2D。该函数将 PNG/JPG 图像字节数组转换为纹理。

Texture2D tex = new Texture2D(2, 2);
tex.LoadImage(stream);
Run Code Online (Sandbox Code Playgroud)

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