无法在Unity中优化巨大的Sprite表

时间:2017-07-19 00:21:05

标签: image unity3d memory-management sprite sprite-sheet

我很震惊地发现我刚创建的游戏占用了330万兆字节。根据编辑日志,我的纹理应该归咎于:

enter image description here

从列表中我开始使用Chieftain Walk动画spritesheet。文件很大,所以我在Photoshop中打开它并大大降低了图像分辨率。

enter image description here

然而,即使在Photoshop中保存后,编辑器日志声称纹理占用了相同的内存量。我做错了什么,以及编辑日志何时更新?是在建立游戏吗?非常感谢。

1 个答案:

答案 0 :(得分:3)

首先,您不需要降低实际PNG文件的分辨率。当Unity构建播放器时,它会将导入的未压缩文件存储在可执行文件附近的Data文件夹中。纹理的大小将与导入器设置中的大小相同。默认情况下,如果我没记错的话,它是2048x2048。如果更改纹理的导入器设置,PNG文件将保持不变(在编辑器中),但纹理对象(在实际独立中使用)将变得更小。

另外,为什么你没有使它平方有什么特别的原因?像512x512。总是使它成为正方形和2的幂。如果没有,Unity将无法对你的精灵进行任何优化

编辑:

这是纹理导入设置,将最大尺寸设置为更低,游戏将占用更少的内存(在游戏运行时,无论是在硬盘中还是在RAM / GPU中)。您还可以添加压缩级别,它将占用更少的内存,但加载时间会更长(在游戏中)。加载时将占用与非压缩相同数量的RAM / GPU内存。应用程序大小的胜利,负载性能的损失。 (测试一下,选择最适合你的方式)

This is the texture import settings

为什么功率为2和平方,好吧:

通过确保纹理尺寸是2的幂,图形管线可以利用与使用2的幂的效率相关的优化。例如,分割和乘以2的幂可以更快。统一创建mip-map也会更容易(如果纹理不是正方形,它们可能会占用更多内存)。互联网上有许多关于mip-mapping的消息来源。