Version: 6000.3
语言: 中文
自定义 Profiler 模块
创建Profiler模块详细信息面板

创建探查器模块

一个分析器帮助您优化游戏的窗口。它显示了在游戏的各个领域花费了多少时间。例如,它可以报告渲染、动画制作或游戏逻辑所花费的时间百分比。更多信息
请参阅术语表
模块在“性能分析器”窗口中显示来自系统的性能数据。

您可以通过以下方式之一创建自己的分析器模块:

自定义模块在探查器窗口图表视图 (A) 中显示您在代码中指定的计数器,并且计数器在模块详细信息面板 (B) 中显示为列表。

显示自定义数据的自定义探查器模块。
显示自定义数据的自定义探查器模块。

使用性能分析器模块编辑器创建性能分析器模块

您可以使用 Unity 的内置 Profiler 模块编辑器创建自己的 Profiler 模块。要在性能分析器模块中收集数据,必须为模块添加至少一个要跟踪的计数器。您可以同时添加内置的 Unity 计数器,或使用ProfilerCounter应用程序接口创建您自己的计数器以添加到模块中。可用计数器的列表将显示在“可用计数器”窗格中。

要创建您自己的模块:

  1. 打开“分析器”窗口(“分析>窗口”>“分析器”)。
  2. 选择 Profiler Modules 下拉列表,然后选择齿轮图标。Profiler 模块编辑器将打开。
  3. 选择窗口左下角的“添加”按钮。然后,Unity 将一个新的 Profiler 模块添加到名为 New Profiler Module 的列表中。要重命名模块,请单击文本字段并使用键盘设置名称。
  4. 可用计数器(Available Counters) 面板中选择要在模块中显示的计数器,然后双击它们以将它们添加到模块中。要选择多个计数器,请按住 Shift 并单击以选择一个范围,或按住 Ctrl(macOS 上的 Command)一次选择一个计数器。
  5. 要对计数器重新排序,请拖动它们。一个模块最多只能添加 10 个计数器。
  6. 选择 性能分析器模块编辑器(Profiler Module Editor) 窗口右下角的 保存更改(Save Changes) 按钮。Unity 关闭窗口,Unity 在 Profiler 窗口中显示新模块。

重要:如果未将任何数据加载到“性能分析器”窗口中,则加载性能分析器模块编辑器时,创建的任何计数器都不会显示在“可用计数器”窗格中。要查看自定义计数器,请使用性能分析器捕获或加载一些包含发射计数器的数据,然后重新打开性能分析器模块编辑器。

列出了用户计数器的探查器模块编辑器。
列出了用户计数器的探查器模块编辑器。

在代码中创建 Profiler 模块

要通过代码创建 Profiler 模块,您必须创建一个新的ProfilerModule脚本并定义模块的属性,包括它显示的计数器、名称和图标。

要定义 Profiler 模块,您的脚本必须执行以下作:

  1. 定义派生自ProfilerModule在您的项目或包中。在以下示例中,该类称为TankEffectsProfilerModule:

    public class TankEffectsProfilerModule : ProfilerModule
    
  2. 分配[ProfilerModuleMetadata]属性添加到此类,并在属性的参数中指定模块的显示名称。在以下示例中,显示名称为“Tank Effects”:

    [ProfilerModuleMetadata("Tank Effects")] 
    
  3. 实现一个没有参数的构造函数,并将图表计数器描述列表传递给基构造函数。在以下示例中,没有参数的构造函数是TankEffectsProfilerModule(),则图表计数器描述符的列表为k_Counters,基本构造函数为base:

    static readonly ProfilerCounterDescriptor[] k_Counters = new ProfilerCounterDescriptor[]
    {
        new ProfilerCounterDescriptor(GameStatistics.TankTrailParticleCountName, GameStatistics.TanksCategory),
        new ProfilerCounterDescriptor(GameStatistics.ShellExplosionParticleCountName, GameStatistics.TanksCategory),
        new ProfilerCounterDescriptor(GameStatistics.TankExplosionParticleCountName, GameStatistics.TanksCategory),
    };
            
    public TankEffectsProfilerModule() : base(k_Counters) { }
    

在“性能分析器”窗口中显示自定义配置文件模块

当您定义自己的 Profiler 模块时,Profiler 窗口会自动检测它。要在 Profiler 窗口中查看 Profiler 模块中的数据,请执行以下作:

  1. 将探查器连接到您的应用程序。有关更多信息,请参阅分析您的应用程序
  2. 运行您的应用程序。

您还可以在应用程序处于播放模式时运行性能分析器。但是,如果您在播放模式下分析应用程序,则分析器显示的数据不能代表您在硬件设备上构建应用程序时的运行方式。

其他资源

自定义 Profiler 模块
创建Profiler模块详细信息面板