unity3d网络游戏开发(unity 游戏开发教程)
《Unity移动端游戏性能优化简谱》从Unity移动端游戏优化的一些基础讨论出发,例举和分析了近几年基于Unity开发的移动端游戏项目中最为常见的部分性能问题,并展示了如何使用UWA的性能检测工具确定和解决这些问题。内容包括了性能优化的基本逻辑、UWA性能检测工具和常见性能问题,希望能提供给Unity开发者更多高效的研发方法和实战经验。
今天向大家介绍文章第三部分:以引擎模块为划分的CPU耗时调优,共9小节,包含了渲染模块、UI模块、物理模块、动画模块、粒子系统、加载模块、逻辑代码、Lua等多个模块等常见的游戏CPU耗时调优讲解。
(全文长约14115字,预计阅读时间约30分钟)
文章第一部分《Unity移动端游戏性能优化简谱之 前言》、第二部分《Unity移动端游戏性能优化简谱之 常见游戏内存控制》可戳此回顾,完整内容可前往UWA学堂查看。
1. 总览
模块划分
UWA将CPU中工作内容明确、耗时占比一般较高的函数整理划分为:渲染、UI、物理、动画、粒子、加载、逻辑等模块。但这并不意味着模块之间的工作互相独立毫无关联。举例而言,渲染模块的性能压力势必受到复杂的UI和粒子影响,而加载模块的很多操作实际上都是在逻辑中调用并完成的。
划分模块有利于我们确认问题、找到重点。与此同时,也要建立起模块之间的关联,有助于更高效地解决问题。
耗时瓶颈
当一个项目由于CPU端性能瓶颈而产生帧率偏低、卡顿明显的现象时,如何提炼出哪个模块的哪个问题是造成性能瓶颈的主要问题就成了关键。尽管我们已经对引擎中主要模块做了整理,各个模块间会出现的问题还是会千奇百怪不可一以概之,而且它们对CPU性能压力的贡献也不尽相同。那么我们就需要对什么样的耗时可以认为是潜在的性能瓶颈有准确的认知。
在移动端项目中,我们CPU端性能优化的目标是能够在中低端机型上大部分时间跑满30帧的流畅游戏过程。为了达成这一目标,简单做一下除法就得到我们的CPU耗时均值应控制在33ms以下。当然,这并不意味着CPU均值已经在33ms以下的项目就已经把CPU耗时控制的很好了。游戏运行过程中性能压力点是不同的,可能一系列UI界面中压力很小、但反过来游戏中最重要的战斗场景中帧率很低、又或者是存在大量几百毫秒甚至几秒的卡顿,而最终平均下来仍然低于33ms。
为此,UWA认为,在一次测试中,当33ms及以上耗时的帧数占总帧数的10%以下时,可以认为项目CPU性能整体控制在正常范围内。而这个占比越高,说明当前项目的CPU性能瓶颈越严重。
以上的讨论内容主要是围绕着我们对CPU性能的宏观的优化目标,和内存一样,我们仍要结合具体模块的具体数据来排查和解决项目中实际存在的问题。
版权声明
本文内容由seo小编辑收集和互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 wnw678@qq.com 举报,一经查实,本站将立刻删除。