Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Unity-压缩的.jpg和.png文件在构建apk时被解压缩_Android_Unity3d - Fatal编程技术网

Android Unity-压缩的.jpg和.png文件在构建apk时被解压缩

Android Unity-压缩的.jpg和.png文件在构建apk时被解压缩,android,unity3d,Android,Unity3d,在我的2d游戏中,我有大约20个背景图像,我已经将它们转换成.jpg文件(编辑:并对它们进行压缩)。它们的总大小约为9MB,但由于某种原因,当我构建apk时,它们会被解压缩,并且会占用更多的空间如何预防这种情况?谢谢 编辑:新发行 一些小三角形出现在我的按钮上,只是在游戏中 这是我在场景中看到的(也应该在游戏中看到): 这是我在游戏中看到的(后面添加了圆圈): 为什么会出现此问题?我如何解决此问题? 谢谢您退房!它将压缩您的图像而不会降低质量。退出!它将压缩图像而不会降低质量。当像素宽度/高

在我的2d游戏中,我有大约20个背景图像,我已经将它们转换成.jpg文件(编辑:并对它们进行压缩)。它们的总大小约为9MB,但由于某种原因,当我构建apk时,它们会被解压缩,并且会占用更多的空间如何预防这种情况?谢谢

编辑:新发行

一些小三角形出现在我的按钮上,只是在游戏中

这是我在场景中看到的(也应该在游戏中看到):

这是我在游戏中看到的(后面添加了圆圈):

为什么会出现此问题?我如何解决此问题?


谢谢您退房!它将压缩您的图像而不会降低质量。

退出!它将压缩图像而不会降低质量。

当像素宽度/高度为2的幂时,图形的性能最好。性能非常显著,大多数引擎(包括Unity)将自动将所有纹理缩放到2的幂

来自统一的

如果平台或GPU不支持NPOT纹理大小,Unity会将纹理缩放并填充到两个大小的下一次幂。此过程会使用更多内存并降低加载速度(尤其是在较旧的移动设备上)。通常,您应该仅将NPOT大小用于GUI目的

对于某些平台,上述规则会导致2300x1400纹理缩放到4096x2048

对于2D精灵,精灵地图集可以帮助您

Sprite Atlas是将多个纹理合并为单个组合纹理的资源


您可以创建一个主精灵图集,并将其设置为包含在构建中。这会将所有纹理打包为一个二次幂纹理。由于Unity将在构建中使用Sprite Atlas,而不是单个纹理,因此它不会将所有原始纹理提升到二次方。因此,您将节省大量空间。注意:您可能需要更改sprite atlas中的最大纹理大小,因为您使用的纹理超过2048。

当像素宽度/高度为2的幂次方时,图形的性能最好。性能非常显著,大多数引擎(包括Unity)将自动将所有纹理缩放到2的幂

来自统一的

如果平台或GPU不支持NPOT纹理大小,Unity会将纹理缩放并填充到两个大小的下一次幂。此过程会使用更多内存并降低加载速度(尤其是在较旧的移动设备上)。通常,您应该仅将NPOT大小用于GUI目的

对于某些平台,上述规则会导致2300x1400纹理缩放到4096x2048

对于2D精灵,精灵地图集可以帮助您

Sprite Atlas是将多个纹理合并为单个组合纹理的资源


您可以创建一个主精灵图集,并将其设置为包含在构建中。这会将所有纹理打包为一个二次幂纹理。由于Unity将在构建中使用Sprite Atlas,而不是单个纹理,因此它不会将所有原始纹理提升到二次方。因此,您将节省大量空间。注意:您可能需要更改sprite atlas中的最大纹理大小,因为您使用的纹理超过2048个。

您可以在图像的导入设置中覆盖特定构建目标的压缩。在这里,你可以设置“最大尺寸”和压缩机质量,你可以稍微调整它们,看看它如何影响你的构建尺寸

就我个人而言,我对android版本使用以下设置:
最大尺寸:2048
调整算法大小:Mitchell
格式:RGBA压缩ETC2 8位
压缩机质量:正常

除此之外,请确保您已经在android构建设置下的应用程序构建设置中设置了纹理压缩。将“纹理压缩”设置为ETC2(GLES 3.0)应能产生最佳效果


您可以在图像的导入设置中覆盖特定生成目标的压缩。在这里,你可以设置“最大尺寸”和压缩机质量,你可以稍微调整它们,看看它如何影响你的构建尺寸

就我个人而言,我对android版本使用以下设置:
最大尺寸:2048
调整算法大小:Mitchell
格式:RGBA压缩ETC2 8位
压缩机质量:正常

除此之外,请确保您已经在android构建设置下的应用程序构建设置中设置了纹理压缩。将“纹理压缩”设置为ETC2(GLES 3.0)应能产生最佳效果


谢谢,但我已经压缩了所有图像,从总共70MB压缩到9MB。问题是,正如我所说,unity在构建apk时似乎会解压缩文件!如何防止这种情况发生?谢谢,但我已经压缩了所有的图像,从70MB压缩到9MB。问题是,正如我所说,unity在构建apk时似乎会解压缩文件!如何防止这种情况发生?您的mip映射是否设置为“无”?你的背景图像有多大(1080x1920?@ErikOverflow不知道我怎么看?(压缩)分辨率约为1400*2300英寸。在一些超过8k之前。我可能有你的答案。给我一点时间把它写出来。你能详细介绍一下你是如何压缩它们的,以及使用哪种算法的吗?您是否将Build Settings>Android下的“纹理压缩”设置为类似ETC2的内容?@Remy_rm我将它们减少了您的mip贴图是否设置为“无”?你的背景图像有多大(1080x1920?@ErikOverflow不知道我怎么看?(压缩)分辨率约为1400*2300英寸。在一些超过8k之前。我可能有你的答案。给我一点时间把它写出来。你能详细介绍一下你是如何压缩它们的,以及使用哪种算法的吗?您是否在“构建设置”下设置了“纹理压缩”