在Profiler界面点击左侧CPU Usage,Profiler界面下方Hierarchy窗口会列出各个函数对当前CPU的耗时,从大到小排序。
然后分析,各个函数的耗时是否异常,分析有没有可以优化的地方。
下面列举常见函数对应的功能:
1 WaitForTargetFPS:
当前帧的CPU等待时间(当游戏锁帧时常见)
2 Overhead:
Profiler总体时间-所有单项的记录时间总和。用于记录尚不明确的时间消耗,以帮助进一步完善Profiler的统计。
3 Physics.。。。
物理模拟占用的CPU时间
4 Camera.Render:
相机渲染准备工作的CPU占用量。我们知道,Draw Call过多影响最大的是CPU,调用Draw Call前会经过把数据加载到显存,设置渲染状态二步操作,这二步操作比渲染更耗时。
5 RenderTexture.SetActive:
设置RenderTexture操作。unity摄像机并不是每帧生成新的RenderTexture,因为每帧生成新的RenderTexture肯定很耗时。
Unity会比对当前摄像机当前帧与前一帧的颜色缓冲和深度缓冲,如果二个缓冲有变化会生成新的RenderTexture,否则不生成新的RenderTexture。
6 Monobehaviour.OnMouse_:
用于检测鼠标的输入消息接收和反馈。
7 Cleanup Unused Cached Data:
清空无用的缓存数据,主要包括RenderBuffer的垃圾回收和TextRendering的垃圾回收。
8 Application.LoadLevelAsync Integrate:
加载场景的CPU占用,通常如果此项时间长的话70%的可能是Texture过长导致。
9 UnloadScene:
卸载场景中的GameObjects、Component和GameManager,一般用在切换场景时。
10 GUI.Repaint:
GUI的重绘。(原生的OnGUI)