【问题标题】:how to compress apk size in unity3d如何在unity3d中压缩apk大小
【发布时间】:2017-10-11 19:39:36
【问题描述】:

我正在使用 c# 在 unity3d 中制作一个简单的测试游戏,我的游戏的 apk 大小是 70 MB。我已经降低了每个精灵的分辨率,但它仍然是 58 MB,我如何压缩游戏使 apk 文件的大小尽可能小。

【问题讨论】:

    标签: unity3d unity5


    【解决方案1】:

    除了遵循Unity themselves 的简短指南外,还有几件事要记住:

    1. Unity 在构建时会删除未使用或不依赖的文件。
    2. 纹理、音乐和视频占据了大部分大小。声音文件最好是.mp3 格式(否则.wav 用于非常短的剪辑)。

    我建议您浏览上面的链接并正确分析 Editor.log,因为它提供了有价值的信息来调整构建大小。

    【讨论】:

      【解决方案2】:

      您也可以选择将设备过滤器设置为 Arm7。这将排除某些设备,但我相信这个数字非常小,并且确实将 apk 大小最小化了一点。 (这位于播放器设置 -> 其他设置 -> 设备过滤器)。你可以尝试一个构建,看看它会减少多少,然后决定它是否值得。

      关于设备过滤器的一些信息:http://answers.unity3d.com/questions/971648/device-filter-to-arm-7-only.html

      此外,如果您查看您的编辑器构建文件,您可以找到有关在您的构建中占用大部分空间的信息(这是一个很长的日志,因此您必须搜索正确的部分)。在您进行构建之后,其中应该有一部分会列出事物占用了多少空间。其后是从最大到最小的资产列表,因此您可以识别可能太大的特定资产。

      例如

      Build Report
      Uncompressed usage by category:
      Textures      81.1 mb    92.0% 
      Meshes        0.0 kb     0.0% 
      Animations    17.1 kb    0.0% 
      Sounds        0.0 kb     0.0% 
      Shaders       90.0 kb    0.1% 
      Other Assets  549.9 kb   0.6% 
      Levels        338.3 kb   0.4% 
      Scripts       993.0 kb   1.1% 
      Included DLLs 5.1 mb     5.8% 
      File headers  33.1 kb    0.0% 
      Complete size 88.2 mb    100.0% 
      

      如何找到编辑器文件:https://docs.unity3d.com/Manual/LogFiles.html

      【讨论】:

        【解决方案3】:

        减小图像大小的一个最有效和最重要的变化是

        设置您的图片大小为正方形和

        设置统一建议像素。(32、64、128、256、512、1024、2048、4096、8192)

        如果您的图片尺寸为 567x890 像素,则将此图片设置为 1024x1024 像素的背景透明空白图片,并将其保存为 png 文件。

        然后在统一检查器中将此图像设置为精灵并通过精灵编辑器对其进行切片。 此过程将使您的图像尺寸至少减小 20%。

        下面给出的示例图片和更改。

        之前:分辨率 567x890 像素,大小 1.9MB

        之后:分辨率 1024x1024 像素,大小 1.3MB

        结果:大小减少了 0.6MB,几乎减少了 32%。

        图片文件链接:https://drive.google.com/file/d/0B9zkzr6JdNYlaHhqcDVUSk9KNjA/view

        【讨论】:

          【解决方案4】:

          设置纹理/精灵压缩格式也很好。

          查看此网站: https://docs.unity3d.com/Manual/class-TextureImporterOverride.html

          大多数纹理压缩格式需要 2 倍分辨率(128、256、512、1024、2048)的图像。 4096 和 8192 分辨率可能不适用于某些 Android 设备。

          例如,在 1024x1024 分辨率下使用 RGB ETC2 压缩没有 alpha 的纹理大约需要 0.5MB 内存。图片 1280x800 压缩格式 RGB 16bit 需要 2MB。

          【讨论】: