1

我有一张很长的照片,我想在 Unity 中下载它我收到此错误:(纹理的宽度/高度超出范围)我该怎么办

这是图片:https ://team1x1.com/wp-content/uploads/TeamX-upload/manga_5fddfe622f64e/5fddfe6239587/1/002.jpg

我下载了图像,然后将其保存到文件中,当它被调用到场景时,我收到了这个错误:

纹理的宽度/高度超出范围 UnityEngine.ImageConversion:LoadImage (UnityEngine.Texture2D,byte[])

        byte[] fileData;
        fileData = File.ReadAllBytes(filePath);
        texture = new Texture2D(32, 32);
        texture.LoadImage(fileData); //At this line the error comes

就如何克服这个问题给我你的意见؟؟

4

1 回答 1

0

尝试将更大的数字传递到新的 Texture2D(#,#); 功能。大图像可能不适合 32x32 2D 纹理,因此出现错误消息“纹理的宽度/高度超出范围”

尝试 64x64,或者大图像的高度/宽度。谷歌浏览器 HTML 检查器说图像宽度 = 57,高度 = 969。57 和 969 都大于 32,因此不适合新的 Texture2D(32,32)。

编辑#1:经过进一步研究,您的图像似乎对于您的格式/ gpu 来说太大了:

用户 Aras 说“是的,今天我们将最大 Texture2D 大小限制为 16384。因为这是许多 GPU 和图形 API 上常见的“最大支持限制”。” https://forum.unity.com/threads/texture2d-has-out-of-range-width.501936/

unity docs 有这样的声明:请注意,并非所有显卡都支持所有纹理格式,请使用 SystemInfo.SupportsTextureFormat 进行检查。此外,只有 Texture2D 类支持从具有 Crunch 压缩纹理格式的脚本创建纹理。 https://docs.unity3d.com/ScriptReference/TextureFormat.html

于 2021-09-01T20:09:00.177 回答