我有一个unity游戏2D的项目,当我用70MB的apk建立它的时候,我觉得它对我的游戏来说太大了,我试着在我的Assets/Resources文件夹中删除一些图片(游戏背景的纹理),大约6MB(因为我的游戏根据当前的等级动态加载资源)。
我试着在我的Assets/Resources文件夹中删除一些图片(游戏背景的纹理),大约6MB(因为我的游戏根据当前等级动态加载资源)。然后重建成apk。但它得到了30MB。我想知道这个问题。
这是我重建70MB的apk时的编辑日志。
Textures 182.1 mb 95.7%
Meshes 0.0 kb 0.0%
Animations 0.0 kb 0.0%
Sounds 1.1 kb 0.0%
Shaders 42.5 kb 0.0%
Other Assets 594.9 kb 0.3%
Levels 485.3 kb 0.2%
Scripts 1.2 mb 0.6%
Included DLLs 5.1 mb 2.7%
File headers 791.0 kb 0.4%
Complete size 190.3 mb 100.0%
Used Assets, sorted by uncompressed size:
21.3 mb 11.2% Assets/Atlas/MainUIAtlas.png
16.0 mb 8.4% Assets/Atlas/SupportItems.png
12.0 mb 6.3% Assets/Resources/Backgrounds/A.jpg
12.0 mb 6.3% Assets/Resources/Backgrounds/B.jpg
12.0 mb 6.3% Assets/Resources/Backgrounds/C.jpg
12.0 mb 6.3% Assets/Resources/Backgrounds/D.jpg
9.0 mb 4.7% Assets/Resources/Map/bg_map3.jpg
9.0 mb 4.7% Assets/Resources/Map/bg_map2.jpg
9.0 mb 4.7% Assets/Resources/Map/bg_map1.jpg
9.0 mb 4.7% Assets/Resources/Map/bg_map4.jpg
8.0 mb 4.2% Assets/Resources/MainMenu/BG1.png
6.8 mb 3.5% Assets/Resources/MainMenu/BG2.png
.....
.....
我在Unity2d中使用NGUI创建UI,所以我有一些图集文件,但是在窗口中看到AssetsAtlasMainUIAtlas.png只有734KB,为什么Unity要把它压缩到21.3MB?为什么Unity要把它压缩成21.3MB?
还有AssetsResourcesBackgroundsA.jpg只有194KB,Unity却压缩了12MB...等等。所有的信息都太大了,无法与窗口中的实际大小相比。
我是新的Unity,请帮我解释一下,告诉我如何解决这个问题.非常感谢。
仅仅因为你的资源文件可能是X MB大小,并不意味着这些资源的最终构建将是相同的大小。当Unity3D压缩这些资源的时候,会有一些手忙脚乱的情况发生。要尝试降低你的大小,你可以尝试以下方法。
1)使用较低质量的压缩设置。我以前只用ARGB32,但那是巨大的! 你可能想尝试16位来代替。根据你的资源,你可能不会注意到任何质量的降低,但大小会减少。
2) 禁用mip-maps。Mip-maps会使你的资源增加大约25%的大小。如果你启用了它们,但在没有需求的情况下,你可以在这里节省很多空间。但要注意的是,iOS曾经包含一个bug,即即使禁用mip-maps,iOS仍然会分配25%的空间。不知道现在是否已经修复了。
3)从资源文件夹中删除Atlas中的资产。默认情况下,Unity3D会将你资源文件夹中的所有内容推送到你的最终构建中,即使你没有使用这些资产。所以,试着进行一次春季清理,确保只有你需要的东西在里面。如果一张图片在Atlas中,那么它就不需要再被包含在最终构建中了。
4)使用更多小一点的Atlas'。如果你不断地添加到图集中,它的大小就会成倍地增加。1024x1024,2048x2048,4096x4096等等。问题是,你可能不会使用所有的空间,而图集有几百个甚至几千个像素的空白空间。不过这些数据还是要记录下来并保存在某个地方。确保你的Atlas的效率。
5) 重新调整你的图像以适应你的目的。如果你有一个巨大的背景图片,填满了整个屏幕--但在任何时候,你总是有很大一部分被你的游戏或其他功能所覆盖,那么为什么不改变图片以去除那些未使用的区域呢?如果一张图片总是在某一点上被画过来,而你还在包括那些像素信息--那么这就是一种浪费。这样做可能会导致2-3张图片 "组成 "整体背景,例如剪掉中间或外缘区域。
6) 调整你图片的尺寸。你的目标似乎是移动端。那么你的资源适用吗?对于分辨率较低的小屏幕尺寸来说,4k的图片是没有意义的。也许你可以整体减少图片尺寸。
我在尝试发布一个spriteexture重度游戏时也遇到了同样的问题.你必须在Inspector里面改变每张图片的渲染设置。
当你点击一个spriteexture时,你会在检查器中看到 "最大尺寸"&;"格式 "选项。
我不得不乱用这些设置(降低最大尺寸,使用16位格式而不是truecolor),并尝试使用PNG和削减任何死帆布空间。