分析器(仅限专业版)
Unity 分析器 (Profiler) 可帮助优化游戏。它报告游戏各区域所花的时间。如报告渲染、制作动画或游戏逻辑所花的时间百分比。
可在编辑器 (Editor) 中开启分析 (Profiling) 功能并播放游戏,它将记录性能数据。之后,分析器 (Profiler) 窗口按时间线显示数据,便于查看帧或区域峰值(比其他帧或区域所花的时间多)。点击时间线上的任何位置,分析器 (Profiler) 窗口底部会显示所选帧的详细信息。
注意,分析时必须检测 (instrument) 代码。该检测对游戏性能的影响较小。一般这种消耗较小,不会影响游戏的帧速率。进行分析时,一般只考虑某些区域所花的时间比例(或百分比)。同样,要提高性能,须关注最耗时间的游戏部分。对比更改代码前后的分析结果,确定改善效果。有时,所做的提高性能的更改对帧速率产生负面影响,应想到会产生意料之外的代码优化结果。
分析器 (Profiler) 窗口
CPU 使用率 (CPU Usage) 区域
渲染 (Rendering) 区域
内存 (Memory) 区域
音频 (Audio) 区域
物理分析器
GPU 区域
采取下列步骤可启用 iOS 设备上的远程分析功能:
将 iOS 设备连接到 WiFi 网络(分析器使用本地/adhoc WiFi 网络将设备上的分析数据发送到 Unity 编辑器 (Editor) 上)。
在 Unity 的构建设置对话框中勾选“自动连接分析器 (Autoconnect Profiler)” 选项。
通过线缆将设备附加到 Mac 上,并在 Unity 编辑器 (Editor) 中单击“构建并运行 (Build & Run)”。
应用程序在设备上启动时,在 Unity 编辑器 (Editor) 中打开分析器窗口 (Window->Profiler)
如果启用防火墙,须确保端口 54998 至 55511 已在防火墙的出站规则中打开。Unity 使用这些端口进行远程分析。
注意:有时 Unity 编辑器 (Editor) 可能不会自动连接设备。此时可从分析器窗口 (Profiler Window) 的活动分析器 (Active Profiler) 下拉菜单中选择正确的设备。
可通过两种路径在安卓(Android)设备中启用远程分析:WiFi 或 ADB。
如果是 WiFi 分析,请执行下列步骤:
确保在安卓 (Android) 设备上禁用移动数据 (Mobile Data)。
将安卓 (Android) 设备连接到 WiFi 网络。
在 Unity 的构建设置对话框中勾选“自动连接分析器 (Autoconnect Profiler)” 选项。
通过线缆将设备附加到 Mac/PC 上,并在 Unity 编辑器 (Editor) 中单击“构建并运行 (Build & Run)”。
应用程序在设备上启动时,在 Unity 编辑器 (Editor) 中打开分析器窗口 (Window->Profiler)
如果 Unity 编辑器 (Editor) 自动连接设备失败,从分析器窗口 (Profiler Window) 的活动分析器 (Active Profiler) 下拉菜单中选择正确的设备。
注意:安卓(Android)设备和(运行 Unity 编辑器 (Editor) 的)主机必须在相同的子网中打开,以进行设备检测。
如果是 ADB 分析,请执行下列步骤:
通过线缆将设备附加到 Mac/PC 上,并确保 ADB 识别设备(如在adb 设备 (adb devices) 列表中显示)。
在 Unity 的构建设置对话框中勾选“开发构建 (Development Build)” 选项并单击“构建并运行 (Build & Run)”。
应用程序在设备上启动时,在 Unity 编辑器 (Editor) 中打开分析器窗口 (Window->Profiler)
从分析器窗口 (Profiler Window) 的活动分析器 (Active Profiler) 下拉菜单中选择 AndroidProfiler(ADB@127.0.0.1:54999)。
注意:按“构建并运行 (Build & Run)” 时 Unity 编辑器会自动为应用程序创建一个 adb 通道。如果想分析另一个应用程序或重新启动 adb 服务器,须手动设置该通道。手动设置时请打开终端窗口/CMD (Terminal window / CMD) 提示并输入
adb forward tcp:54999 localabstract:Unity-<insert bundle identifier here>
注意:下拉菜单中的项只有在选定目标为安卓(Android)时才可见。
如果启用防火墙,须确保端口 54998 至 55511 已在防火墙的出站规则中打开。Unity 使用这些端口进行远程分析。