gpt4 book ai didi

unity3d - Unity 将项目游戏 2d 构建为具有巨大尺寸的 apk,因为纹理

转载 作者:行者123 更新时间:2023-12-04 18:05:11 27 4
gpt4 key购买 nike

我有一个项目统一游戏 2d。当我用 70 MB 的 apk 构建它时,我认为我的游戏太大了。

我尝试删除文件夹 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
.....
.....

我使用 NGUI 在 Unity2d 中创建 UI,所以我有一些图集文件。
但是,当我在窗口中看到它时,Assets/Atlas/MainUIAtlas.png 只有 734KB。为什么 Unity 用 21.3MB 压缩它?

而 Assets/Resources/Backgrounds/A.jpg 只有 194KB,但 Unity 将其压缩为 12MB...等等。所有信息都太大,无法与窗口中的实际大小进行比较。

我是新的 Unity,请帮我解释并告诉我如何解决这个问题。
非常感谢。

最佳答案

仅仅因为您的资源文件的大小可能为 X mb,并不意味着这些资源的最终构建将具有相同的大小。当 Unity3D 压缩这些资源时,会有一些麻烦。要尝试降低尺寸,您可以尝试以下操作;

1) 使用较低质量的压缩设置。我曾经只使用 ARGB32,但这太棒了!您可能想尝试 16 位。根据您的资源,您可能根本不会注意到任何质量下降,但大小会减少。

2) 禁用 mip-maps。 Mip-maps 将使您的资源大小增加大约 25%。如果您启用了它们,但不需要您可以在此处节省大量空间。不过有一个警告,iOS 曾经包含一个错误,这意味着即使禁用了 mip-map,iOS 仍然会分配 25% 的空间。不确定这是否已修复。

3) 从您的资源文件夹中删除您的 Atlas 中的 Assets 。默认情况下,Unity3D 会将资源文件夹中的所有内容推送到最终构建中,即使您没有使用这些资源。因此,请尝试进行 Spring 清洁,并确保其中只有您需要的东西。如果图像在 Atlas 中,则它不再需要包含在最终构建中。

4)使用更多较小的Atlas'。如果你不断添加到 map 集,它的大小会呈指数增长。 1024x1024、2048x2048、4096x4096 等。问题是,您可能没有使用所有这些空间,而 Atlas 有数百甚至数千个像素的空白空间。尽管如此,该数据仍然必须记录并保存在某处。确保您的 Atlas 高效

5)重新调整您的图像以适合您的目的。如果你有一个巨大的背景图像填满整个屏幕——但在任何给定的点上,你的游戏或其他功能总是覆盖其中的很大一部分,那么为什么不更改图像以删除那些未使用的区域呢?如果图像总是在某个点被绘制,而您仍然包含该像素信息 - 那么这是一种浪费。这样做可能会导致 2-3 张图像“构成”整个背景,例如,切除中间或外边缘区域。

6) 调整图像的尺寸。您的目标似乎是移动设备。那么你的资源适用吗?对于分辨率较低的小屏幕尺寸,使用 4k 图像毫无意义。也许您可以整体减小图像尺寸。

关于unity3d - Unity 将项目游戏 2d 构建为具有巨大尺寸的 apk,因为纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30414732/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com