Unity Profiler 支持
Rider 通过直接在 IDE 中获取和显示 Unity 分析器快照数据,提高了 Unity 应用程序的性能分析能力。 分析器快照可以在专用的 Unity 分析器 窗口中进行分析,该窗口与 Unity 编辑器同步。
Rider 还会在编辑器中直接显示类和方法声明及其特定用法的 CPU 数据,帮助您定位性能瓶颈。
启用 Unity Support 插件
此功能依赖于 Unity Support 插件,该插件默认在 JetBrains Rider 中捆绑并启用。 如果相关功能不可用,请确保没有禁用该插件。
按下 Ctrl+Alt+S 打开设置,然后选择 。
打开 已安装 选项卡,找到 Unity Support 插件,并选中插件名称旁边的复选框。
捕获 Unity 分析器数据
在 Unity 编辑器中,打开分析器窗口: 。
通过在 Unity 编辑器或 Rider 中单击播放按钮启动游戏。
在游戏中执行必要的操作,以触发您研究的脚本部分。
再次单击播放按钮停止游戏。 现在分析器数据已准备好进行分析。
捕获并获取分析器快照后,您可以直接在 Rider 中研究它,该数据与 Unity 编辑器的 分析器 窗口同步。
导航到源代码
请执行以下操作之一:
在 Unity 编辑器中,将分析器窗口切换到 层次结构 视图,在分析器数据树中找到所需的节点,并双击它:

切换到 Rider,打开 Unity 分析器 窗口,在分析器数据树中找到所需的节点,并双击它:

Rider 会自动导航到编辑器中对应的调用。 如果您从 Unity 编辑器导航,Rider 还会显示调用堆栈,您可以用它来导航调用层次结构中的其他实体。 否则,您可以直接在 Rider 的 Unity 分析器 窗口中导航调用堆栈。

选择快照获取模式
默认情况下,JetBrains Rider 会在快照被捕获后自动从 Unity 分析器中获取快照数据。 但是,在资源密集型环境下获取快照可能需要一些时间。 在这种情况下,您可以在 JetBrains Rider 设置 的 页面上的 Unity 分析器快照获取模式 选择器中选择 手动 来禁用自动获取。
在手动模式下,当有新快照数据可用时(即在 Unity 中捕获新快照或在 Unity 分析器窗口切换快照帧时),JetBrains Rider 会发出提醒。 然后,您可以在任何方便的时候,通过点击 Unity 分析器 窗口中的相应按钮来获取数据:

Unity 分析器 窗口顶部的小部件还允许您快速切换分析模式。
切换快照线程
您可以直接在 Unity 分析器 窗口中选择所需的线程:

可视化 CPU 使用数据
Rider 可以使用 Unity Profiler 数据直接在编辑器中显示 CPU 使用情况,紧挨着相应的类或方法。
在分析器快照中,每选择一帧,Rider 都会为相应方法显示 CPU 数据。 如果启用了自动获取模式,每次您在 Unity Profiler 窗口时间轴中选择新帧时,指标都会更新。 在手动模式下,您需要单击编辑器小部件来更新指标。
点击装订区域标记,您可以查看详细信息:

在装订区域标记菜单中,可以选择 在 Unity 分析器窗口中查看 定位快照树中的调用。
配置分析器装订区域标记
Unity 分析器装订区域标记默认已启用。 如果您需要切换它们,有三种方式可供选择:
点击任意标记并选择 显示性能装订区域标记。
点击 Unity 分析器 窗口中的三点菜单并选择 显示性能装订区域标记。
在 语言与框架 | Unity 引擎 设置页面  Ctrl+Alt+S 上使用 启用分析器高亮显示 复选框。
默认情况下,装订区域标记会显示 CPU 负载,这会使标记较宽。 您可以点击任意标记并选择 紧凑的 Unity 分析器提示 ,以显示颜色区分的窄装订区域标记。
CPU 数据可视化限制
目前,仅获取 CPU 数据。
Unity Profiler 无法区分同一位置的多次方法调用,因此每次调用都会显示相同的信息。
故障排除
本节提供了解决您在 JetBrains Rider 中使用 Unity Profiler 协助时可能遇到的常见问题的方案。
为什么 Rider 中没有显示分析数据?
如果 Unity Profiler 的分析数据未出现在 JetBrains Rider 中,请检查以下内容:
确保 Unity 编辑器已正确连接到 JetBrains Rider:
按照 将 Rider 与 Unity 设置中的步骤,确认 Unity 编辑器已链接到您的 IDE。
检查 Unity 支持插件:
转到 插件 设置页面  Ctrl+Alt+S ,并确保 Unity 支持 插件已启用。
验证分析器集成:
请确保在 语言与框架 | Unity 引擎 设置页面  Ctrl+Alt+S 中启用 启用 Unity 分析器集成。
为什么只有 CPU 数据可用?
目前,JetBrains Rider 仅支持从 Unity Profiler 获取 CPU 分析数据。 其他数据类型(如 GPU 或内存使用情况)尚未集成。
为什么多个方法调用的指标相同?
Unity Profiler 无法区分同一位置的多个方法调用。 因此,JetBrains Rider 会为每次调用显示相同的性能指标。
为什么 Profiler 数据更新有延迟?
如果您注意到 JetBrains Rider 中更新分析器数据有延迟,请考虑以下内容:
检查获取模式:如果您使用的是 手动 获取模式,则需要通过单击编辑器小部件手动触发更新。
检查连接稳定性:确保 Unity 编辑器与 JetBrains Rider 之间的通信稳定。 如有需要,请重新连接。