Unity 配置窍门:内存,音频和纹理

本文介绍了Unity中关于内存和纹理处理的优化技巧,包括减少内存使用、避免内存泄漏、优化纹理加载及使用等,旨在帮助开发者提升游戏性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇博客由英特尔视觉计算部应用工程师 Steve Hughes 编写而成,主要介绍关于内存优 化和处理纹理方面的提示与技巧。 更多信息请参阅 Steve 和 Cristiano 的 文章 (大部分技巧同时适用于 Windows 和 Android)和我的Unity 与 英特尔® 实感™ SDK 使用技巧

处理纹理                                                                                                              

  • 除非真正需要,否则不要创建面向纹理 的 Mipmap
  • 使用压缩纹理
  • 除非需要,否则不要将纹理设置为可读 状态(CPU 读/写)。 这样可避免额外的 CPU 副本,标记等。
  • 根据屏幕分辨率缩小纹理
  • Android 和小屏幕:
    • 关于模型 - 跳过 顶部的 MIP ( Quality Settings>Rendering>Texture Quality) 
    • 将 RGB(可压缩) 和 Alpha(不可压缩)通道分开

设计技巧

  • 常见地图不需要 1:1 的比例和漫反射图。
  • 删除动画中的冗余关键帧(仅进行更新以改变图形)

对于网格模型 

  • 删除网格中的不常用通道(在“Player”设置下方,启用 “Optimized Mesh Data”)
  • 如果是低 RAM 系统中的高细节网格,请设置“Quality”以使用 “maxLOD”

如欲了解更多有关在 Unity 中优化图形的信息,请参阅: 如何使用 Unity 规划优化

音频

  • 使用 200k 缓冲器支持音频回放
    • 将已解压的片段加载至该缓冲器
    • 或使用 AudioClip.GetData 解压,然后释放已解压的片 段

内存优化

  • 有两种方法可查看是什么在占用 RAM
    • Profiler.GetRuntimeMemorySize() 可以查看占用大 量 RAM 的对象(显示输出以调试日志)
    • 查看单声道的 CIL( 通用中间语言)以支持 3 种分配类型 — Newarr、Newobj 和 Box
  • (基于资产使用历史)在启动时预分配内存空间,以手动扩展内存堆。
  • 如有动态需求,调用 Resources.UnloadAsset (如果资产仍然需要引用)或使 用 Resources.UnloadUnusedAssets(针对未引用的资产)
  • 由于Unity 的 “自动垃圾回收”通常只在内存堆已满或没有足够大的自由块的情况下才被调用 ,所以在进行层加载前后考虑调用 (System.GC..Collect),否则转换期间会出现清空现象。
  • 避免使用包含大 量隐藏分配的函数
  • 使用结构(保存在 堆栈上),而非类(保存在内存堆上),以避免出现内存碎片。
  • 请记住,模拟器可 分配 RAM。 而且,(Foreach) 也可重新处理成可分配模拟器的代码块。
  • 出于相同原因,请 避免使用匿名方法和 Lambda。
  • 流资产占用的 RAM 较少,在构建时将相关资产收集至资产束,然后在运行时流 输出这些资产束。 (务必在下个场景或资产束流之前将其破坏)。
  • 不要将字符串加在一起。  不要操作每帧字 符串(而是添加一个限制,以便您在它更改数值时仅进行升级。)
  • 使用 StringBuilder 类生成字符串。不要在会返回字符串的函数内使用阵列,因为它将在循环内每 次都进行转储和重新分配。
  • 创建资产池类(子弹/导弹)以保存对象, 而非多个 new-ing,比如:

    MyClass m – poolOfMyClass           //do stuff         poolOfMyClass.Store(m);

致谢名单:以上部分内容来源于: 

如欲了解更多信息,请访问:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值