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

来源:互联网 发布:怎么开发一个软件 编辑:程序博客网 时间:2024/06/10 03:54

本篇博客由英特尔视觉计算部应用工程师 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);

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

  • Unity3.com 中的 内存资源   
  • Andrew Frey -减少 Unity 中的内存使用,C# AND .NET/MONO   
  • Gamasutra: 面向开发人员的 C# 内存管理(第 1 部分,共 3 部分)

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

  • https://software.intel.com/zh- cn/node/542152 (大部分技巧同时适用于 Windows 和 Android) 
  • Unity 与英特尔® 实感™ SDK 使用技巧
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 婴儿喝水呛着怎么办 婴儿吃药呛到了怎么办 新生儿用奶瓶喝奶呛着怎么办 新生儿喝水呛到怎么办 宝宝吃奶呛到了怎么办 羔羊高烧不退怎么办 小孩晚上咳嗽厉害怎么办 婴儿经常呛咳怎么办 新生儿3小时喂奶怎么办 宝宝不会吸奶怎么办 4岁宝宝打呼噜怎么办 宝宝感冒拒奶怎么办 新生儿吸奶无力怎么办 吃奶小牛肚子胀怎么办 新生儿吃奶后打嗝怎么办 新生儿吃多漾奶怎么办 婴儿总是睡不熟怎么办 新生儿不不吃奶怎么办 学生沉迷网络游戏班主怎么办 手机用不了卡怎么办 手机变竖屏怎么办 游戏不支持分屏怎么办 服装设计做到没思路怎么办 眼睛变单眼皮了怎么办 换手机号银行卡绑定怎么办 麦当劳mdp改版了怎么办 摆摊做小吃下雨怎么办 cad2014画图很卡怎么办 头皮有毛囊虫怎么办 头发上的毛囊炎怎么办 狗笼子里面拉屎怎么办 地图鱼起白点怎么办 初中学不好高中怎么办 初中孩子英语不好怎么办 初中孩子数学不好怎么办 万能声卡声音小怎么办 营业执照显示经营异常怎么办 暑假教育培训证怎么办 账套引入失败怎么办 报税报错了怎么办 税盘一年没抄税怎么办