Unity构建占用超过70%的Unity构建

Cha*_*man 6 build filesize unity-game-engine

昨晚我正在研究当前的Unity项目,注意到我构建文件头时占据了我构建空间的70%以上.我在团结文件中读到这不应该是这种情况.

已经在网上搜索了如何减少这一点,但无处可去.任何人都可以提出一个减少这个数字的好方法吗?

我已经尝试更新到最新版本的Unity并尝试关闭静态光照贴图,但两者都没有区别.每次我构建项目时,头文件的大小似乎都在增长?

在我的资源文件夹(大小只有3 MB)中,我可能有:

  • 12张图片
  • 7种材料
  • 45个预制件.

这是我的问题照片:

在此输入图像描述

从我的Editor.log:

Build Report
Uncompressed usage by category:
Textures      34.4 mb    15.6% 
Meshes        1.5 mb     0.7% 
Animations    2.0 mb     0.9% 
Sounds        384.9 kb   0.2% 
Shaders       4.7 mb     2.1% 
Other Assets  1.8 mb     0.8% 
Levels        3.1 mb     1.4% 
Scripts       1.1 mb     0.5% 
Included DLLs 4.1 mb     1.8% 
File headers  167.6 mb   76.0% 
Complete size 220.6 mb   100.0% 

Used Assets and files from the Resources folder, sorted by uncompressed size:
 11.3 mb     5.1% Assets/Realistic Terrain Collection/Terrains/Terrain1/Low Resolution_1.asset
 6.0 mb  2.7% Assets/Realistic Terrain Collection/Terrains/Terrain3/Low Resolution_3.asset
 4.6 mb  2.1% Resources/unity_builtin_extra
 1.3 mb  0.6% Assets/Town Creator Kit LITE/Textures/Buildings_Map_1A.png
 1.0 mb  0.5% Assets/Lava_Flowing_Shader/Textures/lava2.png
 658.0 kb    0.3% Assets/_Project/LoadingScreen/FWC_Logo.png
 412.9 kb    0.2% Assets/Fantasy Wooden GUI  Free/normal_ui_set A/UI board Small  stone.png
 384.2 kb    0.2% Assets/_Project/_Scenes/SnowyPeaksLevel/ReflectionProbe-0.exr
 384.2 kb    0.2% Assets/_Project/_Scenes/OutOfPlay/ReflectionProbe-0.exr
 ...
Run Code Online (Sandbox Code Playgroud)

Bas*_*oud 2

对于如此数量的文件,这种情况不应该发生。您应该检查的第一件事是:您确定您谈论的资产(12 个图像、7 个材质、45 个预制件)位于资源文件夹中而不是位于资产文件夹中吗?文件头大小仅取决于资源文件夹中的文件数量。再次检查资源文件夹的内容(以防万一)

如果您有版本控制系统(git 或其他),您可以尝试打开项目的干净版本。检查没有 .meta 文件的项目。让 Unity 构建整个项目并检查这个新文件夹的大小。(如果您没有版本控制软件,您仍然可以创建一个干净的项目并手动复制场景和资产,无需 .meta 文件)

如果尺寸仍然很大,请检查是否有不必要的静态预制件(对象中的静态复选框)。我不知道这的技术原因,但这对这个人来说是一个解决方案

引用链接:

这已经解决了

36 mb 中的 30 是通过取消 2 个预制件上的静态设置来解决的,猜猜我在那里做错了什么。最后 6 个来自场景,我删除了场景中的所有内容,而 6 MB 仍然存在于文件头中,因此我将所有内容复制到新场景并删除了前一个场景。6mb不见了。

我希望只需进行全新安装即可适合您的情况。

如果这些都不起作用,则可能意味着这些标头对于加载资源文件夹是必需的。在这种情况下,解决方案可能是切换到资源包而不是使用资源文件夹。

资源包是存档文件,可以包含 Unity 特定资源,例如预制件、纹理、网格等。它仍然允许您在运行时加载资源。这是Unity在此线程中提出的解决方案

引用上面链接中Unity开发者的答案

我认为没有办法在不减少资源文件夹中文件数量的情况下减少文件头大小。因此,我对继续使用数据库中的文件路径的建议是使用本地 assetbundles 迁移到不同的解决方案,而不是使用 Resources 文件夹,您仍然可以使用文件路径从 Assetbundles 加载资源。

如果这对于您的用例来说似乎是一个不错的解决方案,请参阅资产包手册