Unity3D 官方移动游戏优化指南7.资源

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3D 官方移动游戏优化指南7.资源相关的知识,希望对你有一定的参考价值。


资源管线可以大幅影响应用程序的性能。经验丰富的技术美术师可以帮助您的团队定义和增强资源格式、规范以及导入设置。

不要依赖于默认设置。使用平台特定的覆盖选项卡可以优化纹理和网格几何体等资源。如果设置不正确,则可能造成较大的编译版本大小、较长的构建时间,以及较差的内存使用量。可以考虑使用预设功能来帮助为特定项目自定义基准设置,以确保最优设置。

请参阅​​此艺术资源最佳实践指南​​​了解更多详细信息,或者在 Unity Learn 上了解有关​​适用于移动应用程序的 3D 美术优化​​的课程。

正确导入纹理

纹理会占用大部分内存,因此,导入设置非常重要。通常,请遵循以下指导原则 :

  • 减小 Max Size :使用能生成视觉上可接受的结果的最低设置。这种非破坏性方式,可以快速降低纹理内存。
  • 使用 2 的幂 (POT) :Unity 要求移动端纹理压缩格式 (PVRCT 或 ETC)采用 POT 纹理尺寸。
  • 制作纹理图集 :将多个纹理放置到单个纹理中,可以减少绘制调用和加快渲染速度。使用​​Unity 精灵图集​​​ 或第三方 ​​Texture Packer​​ 可以制作纹理图集。
  • 关闭 Read/Write Enabled 选项 :如果启用,此选项在 CPU 和 GPU 可寻址内存中都会创建副本,纹理会占用双倍内存。大多数情况下,应保持此选项为禁用状态。如果要在运行时生成纹理,请通过 Texture2D.Apply 强制执行,并且传入设置为 true 的 makeNoLongerReadable。
  • 禁用不必要的 Mip Map :对于在屏幕上大小保持不变的纹理(如 2D 精灵和 UI 图形),Mip Map 不是必需的,对于与摄像机的距离会变化的 3D 模型,请保留 Mip Map为启用状态。

【Unity3D

正确的纹理导入设置有助于优化版本大小。

压缩纹理

考虑以下使用相同模型和纹理的两个实例。左侧的设置几乎使用右侧设置八倍的内存量,但并没有改善视觉质量。

【Unity3D

未压缩的纹理需要更多内存。

iosandroid 都使用自适应可伸缩纹理压缩 (ATSC)。绝大多数开发目标最低规格设备游戏都支持 ATSC 压缩。

唯一的例外是 :

  • 适用于面向 A7 设备或更低规格的 iOS 游戏(例如 iPhone 5、5S 等)— 使用 PVRTC
  • 适用于面向 2016 之前的设备的 Android 游戏 — 使用 ETC2(Ericsson 纹理压缩)

如果压缩格式(如 PVRTC 和 ETC)的质量不够高,并且目标平台不完全支持 ASTC,请尝试采用 16 位纹理而不是 32 位纹理。

请参阅手册了解有关​​各平台的推荐纹理压缩格式​​的更多信息。

调整网格导入设置

与纹理很像,如果导入时不小心,网格可能占用过多内存。要尽可能减少网格占用的内存,请执行以下操作 :

  • 压缩网格 :高性能压缩可以减少占用磁盘空间(但不会影响运行时的内存)。请注意,网格量化可能造成不准确,因此应试验不同的压缩级别,从而找到适合模型的压缩级别。
  • 禁用 Read/Write :如果启用此选项,内存中会有重复网格,网格的一个副本在系统内存中,另一个在 GPU 内存中。大多数情况下,应将其禁用(在 Unity 2019.2 以及更早版本中,此选项默认为选中状态)。
  • 禁用骨骼和 BlendShape :如果网格不需要骨架或 BlendShape 动画,请尽可能禁用这些选项。
  • 尽可能禁用法线和切线 :如果确信网格的材质不需要法线或切线,请取消选中这些选项,以节省更多内存。

检查网格导入设置。

检查多边形数量

分辨率越高的模型,需要的内存使用量越大,并且可能占用更长的 GPU 时间。您的背景几何体是否需要五十万个多边形?考虑减少所选 DCC 包中的模型。删除摄像机的视角看不到的多边形。使用纹理和法线贴图而不是高密度网格来实现精细的细节。

使用AssetPostprocessor 自动执行导入设置。

利用 ​​AssetPostprocessor​​ 可以在导入资源时运行脚本。这样,您可以在导入模型、纹理、音频等之前和 / 或之后对设置进行自定义。

使用可寻址资源系统

​可寻址资源系统​​提高一种简化的方法来管理内容,按“地址”或别名加载资源包。这种统一的系统从本地路径或远程内容分发网络 (CDN) 执行异步加载。

【Unity3D



如果将非代码资源(模型、纹理、预制件、音频,甚至整个场景)拆分为​​资源包​​,则可以将它们分为可下载内容 (DLC)。

然后,使用 Addressables 为移动端应用程序创建较小的初始构建版本。​​云端资源分发​​可承载您的游戏内容并随着玩家的游戏进展将内容分发至玩家。

【Unity3D



使用可寻址资源系统按“地址”加载资源。

单击​​此处​​查看可寻址资源系统如何简化资源管理。



以上是关于Unity3D 官方移动游戏优化指南7.资源的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D 官方移动游戏优化指南7.资源

Unity3D 官方移动游戏优化指南10.音频

Unity3D 官方移动游戏优化指南10.音频

Unity3D 官方移动游戏优化指南10.音频

Unity3D 官方移动游戏优化指南 摘要

Unity3D 官方移动游戏优化指南1.简介