Unity 优化之 移动游戏加载性能和内存管理全解析【2017年版】

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 首先感谢UWA的公开课讲解,本文中的内容主要采集于UWA2017的公开课公开课中的优化点对于项目的帮助是不容小觑的~去年的PPT截取,笔者抽时间整理一下,有相关视频的PPT的截图和博客地址。

首先感谢UWA的公开课讲解,本文中的内容主要采集于UWA2017的公开课公开课中的优化点对于项目的帮助是不容小觑的~

去年的PPT截取,笔者抽时间整理一下,有相关视频的PPT的截图和博客地址。一是防止忘记,二是希望能帮助更多的开发者,如果大家有时间的话还是建议看看去年的公开课,感受下侑虎的魅力~


首先来一道开胃菜如何确定美术规范

img_63eb04dc4e12c98f1a214ad866c31b32.png

内存使用-音频资源

img_0e1f2595481c535748e1338667e759cc.png
img_de49ecd13e44ac5a324dbb87c71fdcde.png
img_b41c5392892feb90d6e3c8c0190bc8b1.png
img_11cdf62924e16fb7ea1436c9b9861317.png
img_7fc5472f6001d7a5a650301fcd54a64c.png
img_a0c498610a93281617109439c9c69bfc.png
img_674024731a73d826fefddea591470a2d.png

内存使用-纹理资源

img_a23aa9cbe7d7d975994549ba9246db91.png
img_0197d72e8ec03300908fd2aa39ea9cfa.png
img_3f3badd9153a296668b51b36e5155c06.png
img_05c959b3324c1d4677ea4736db369614.png
img_754b1d4e11bd395762ac60666691b766.png

Unity加载模块深度解析


内存使用-网格资源

img_67660b87ed682263f7e41271436d261b.png
img_c7dbb7e2e27ae89685d5729c6096f232.png
img_73ae7e783da9ada457c2c460d829354b.png

扩展Unity加载模块深度解析(网格篇)


内存使用-粒子系统

img_12cf789f1012812b743ab18b46345ad7.png
img_158209c165e15cd8298dbe627565dbca.png
img_5e89a48f4c13880f191d3c3a415edf80.png
img_6da8df539db675331bb0811c57de1c2e.png

内存使用-动画资源

img_e9ed34b8478a8e15bf0599c8dbc73301.png
img_bea4ef3e9f1b286593188b8630c27666.png
img_1a2a6cafff4103e03579b577f864b741.png
img_ebe7e5501d942b7c76ed89e7a7ffa0e5.png
img_bbbf79bacd0c859af9e56af2b7de4eb5.png

扩展# Unity加载模块深度解析之动画资源


内存管理

img_18a55af90c6ee6e7ddc7c17bafd122e6.png
img_271be097257a4fd1782076f2d364f558.png
img_1fbe3d092421427bcf246af16cfc564c.png
img_d042d021e7fad02de51ae4799dd9f452.png
img_9b706e4df6ed192b3ea6b5ad0869d57d.png
img_cbac4fb15ffe86542134ba6c3ef8eac7.png
img_3c8a1de8634ec56d7f6b75d7d4b0c029.png
img_21eba7f344ebbf601f2569b462278f83.png
img_64444f7542fa6d74348d4ccf7ed23784.png
img_ab37de907afa83eea9705f5fa3c79284.png
img_c41159f648396818fa7d2521a0cec0e5.png
img_6ec4f527c6ad884dcdfacc5861789c21.png
img_62e6075e0b4148ca5bdcaec000c2eae4.png
img_ce90a3b6ab28b9e3b7abdfea5f783bff.png
img_8fcea89eea035e2a55455ed33d01816d.png

相关地址Unity加载模块深度解析之动画资源


加载模块

img_25ea46dc6901e4140974d679bc016559.jpe
img_cefc2627ee68a1f42e52f6bd733a6de5.png
img_fefaacf585f7d0a161b251cb2a9679be.png
img_3a9dfd96414b385a89d4e0412b4700f1.png
img_55463e66bef3c36c0233c5257fb514b1.png
img_159e2a5c864c2a3186c785741842a6f5.png
img_f7399e11af26b0eb2e641ff67bccf734.png
img_6cb08f1e5c793fbaad0de5d30be5a3e6.png
img_31be20f45d689ecb64d9e5b78a5cbf1e.png
主要是因为异步之间的空闲时间造成的
img_6fceb0dd471be8810a99b89dda7d9c75.png

img_b4cf353197fa58899fd1ad4615931b40.png

img_2fa0df04974f847b9572978cda21f486.png

img_74e74b558e66ca6b3e82532b188fe1bb.png
多个一起加载和单个加载比较
img_6316d89a7a59b7cbb8e876745bb9b70c.png
img_0c01190029de226f6c7c0f29d61ceb7b.png
img_3e66ea480923441246c825da2037f5df.png
img_0a02dbde2234e610b823e63aeb43cd5e.png
img_88f5266828769b4b6323cb1e81fbd135.png
img_cd838ed90ab60dc5777fdead7f343aff.png
img_b8f9f76d7f4b6fabda6052fc3ffe5094.png
img_9c370419d43de6f444f1d7400ccf63ba.png
img_b29e3213f7814900e3f85a358d2ed2f9.png
img_a5e85a2604bf121ff4cf8c6667271403.png
img_a626cc556fc7024d720640ff4a04aa2b.jpe
img_5d71b1ae2dd8baaa653b79a089ba85d7.jpe
img_744507dfbd71c39fc963b50c29c43b02.jpe
img_2aed156177669b8da4e3e87cc0887bbb.jpe
img_e06f3a63c4bebd1f772c6b7b5f4e56db.jpe
img_f131c0aded602eb4e34efa5ab547d32b.jpe

Instantiate实例化操作

img_bc6ec397d19df2ed3c58282380324232.png
img_9547c899b436c1b89fb6e38ff3352c0a.png
img_b49c22f670438a75a08e039dfe7f34bb.png
img_af78793ef31a95cc98e5810eb0db4d08.png
因为在切换的时候会出现相应的组件频繁初始化,解决策略把组件disable和移除canvas区域
img_919d0930e9bf5df63b4453ec0a9b2ae9.png
img_067052670f343e5727c9c0bb3dc4fc1e.png
最后就是:整理编辑格式真尼玛累~~~
相关文章
|
2月前
|
缓存 监控 Java
在使用 Glide 加载 Gif 动画时避免内存泄漏的方法
【10月更文挑战第20天】在使用 Glide 加载 Gif 动画时,避免内存泄漏是非常重要的。通过及时取消加载请求、正确处理生命周期、使用弱引用、清理缓存和避免重复加载等方法,可以有效地避免内存泄漏问题。同时,定期进行监控和检测,确保应用的性能和稳定性。需要在实际开发中不断积累经验,根据具体情况灵活运用这些方法,以保障应用的良好运行。
|
3月前
|
测试技术 C# 图形学
掌握Unity调试与测试的终极指南:从内置调试工具到自动化测试框架,全方位保障游戏品质不踩坑,打造流畅游戏体验的必备技能大揭秘!
【9月更文挑战第1天】在开发游戏时,Unity 引擎让创意变为现实。但软件开发中难免遇到 Bug,若不解决,将严重影响用户体验。调试与测试成为确保游戏质量的最后一道防线。本文介绍如何利用 Unity 的调试工具高效排查问题,并通过 Profiler 分析性能瓶颈。此外,Unity Test Framework 支持自动化测试,提高开发效率。结合单元测试与集成测试,确保游戏逻辑正确无误。对于在线游戏,还需进行压力测试以验证服务器稳定性。总之,调试与测试贯穿游戏开发全流程,确保最终作品既好玩又稳定。
123 4
|
3月前
|
前端开发 图形学 开发者
【独家揭秘】那些让你的游戏瞬间鲜活起来的Unity UI动画技巧:从零开始打造动态按钮,提升玩家交互体验的绝招大公开!
【9月更文挑战第1天】在游戏开发领域,Unity 是最受欢迎的游戏引擎之一,其强大的跨平台发布能力和丰富的功能集让开发者能够迅速打造出高质量的游戏。优秀的 UI 设计对于游戏至关重要,尤其是在手游市场,出色的 UI 能给玩家留下深刻的第一印象。Unity 的 UGUI 系统提供了一整套解决方案,包括 Canvas、Image 和 Button 等组件,支持添加各种动画效果。
143 3
|
3月前
|
设计模式 存储 人工智能
深度解析Unity游戏开发:从零构建可扩展与可维护的游戏架构,让你的游戏项目在模块化设计、脚本对象运用及状态模式处理中焕发新生,实现高效迭代与团队协作的完美平衡之路
【9月更文挑战第1天】游戏开发中的架构设计是项目成功的关键。良好的架构能提升开发效率并确保项目的长期可维护性和可扩展性。在使用Unity引擎时,合理的架构尤为重要。本文探讨了如何在Unity中实现可扩展且易维护的游戏架构,包括模块化设计、使用脚本对象管理数据、应用设计模式(如状态模式)及采用MVC/MVVM架构模式。通过这些方法,可以显著提高开发效率和游戏质量。例如,模块化设计将游戏拆分为独立模块。
194 3
|
3月前
|
图形学 C++ C#
Unity插件开发全攻略:从零起步教你用C++扩展游戏功能,解锁Unity新玩法的详细步骤与实战技巧大公开
【8月更文挑战第31天】Unity 是一款功能强大的游戏开发引擎,支持多平台发布并拥有丰富的插件生态系统。本文介绍 Unity 插件开发基础,帮助读者从零开始编写自定义插件以扩展其功能。插件通常用 C++ 编写,通过 Mono C# 运行时调用,需在不同平台上编译。文中详细讲解了开发环境搭建、简单插件编写及在 Unity 中调用的方法,包括创建 C# 封装脚本和处理跨平台问题,助力开发者提升游戏开发效率。
247 0
|
4月前
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
394 0
|
2月前
|
存储 C语言
数据在内存中的存储方式
本文介绍了计算机中整数和浮点数的存储方式,包括整数的原码、反码、补码,以及浮点数的IEEE754标准存储格式。同时,探讨了大小端字节序的概念及其判断方法,通过实例代码展示了这些概念的实际应用。
64 1
|
2月前
|
存储
共用体在内存中如何存储数据
共用体(Union)在内存中为所有成员分配同一段内存空间,大小等于最大成员所需的空间。这意味着所有成员共享同一块内存,但同一时间只能存储其中一个成员的数据,无法同时保存多个成员的值。
|
2月前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
2月前
|
存储 编译器
数据在内存中的存储
数据在内存中的存储
42 4