【问题标题】:Unity build with over 70% taken up by File HeadersUnity 构建,文件头占用超过 70%
【发布时间】:2023-03-13 00:30:02
【问题描述】:

昨晚我正在处理当前的 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
 ...

【问题讨论】:

    标签: unity3d build filesize


    【解决方案1】:

    这种情况不应该发生在这么多文件上。您应该检查的第一件事是:您确定您谈论的资产(12 张图片、7 个材料、45 个预制件)在 resource 文件夹中,而不是在 asset 文件夹中? 文件头大小仅取决于 资源文件夹 中的文件数量。再次查看资源文件夹的内容(以防万一)

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

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

    引用链接:

    已经解决了

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

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

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

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

    在上面的链接中引用 Unity 开发人员的答案

    我认为如果不减少资源文件夹中的文件数量,就无法减少文件头大小。所以我建议继续使用数据库中的文件路径是使用本地assetbundles而不是使用Resources文件夹迁移到不同的解决方案,您仍然可以使用文件路径从Assetbundles加载资产。

    如果这对于您的用例来说似乎是一个不错的解决方案,这里是manual for Asset Bundles

    【讨论】:

    • 感谢您的回复。我的资产在我的“资源”文件夹中,但在我的“资产”文件夹中。我认为这是应该的方式?我的资源文件夹只有 8.4 MB。
    猜你喜欢
    • 1970-01-01
    • 2017-10-08
    • 2010-10-02
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多