包含此页的版本:
不含此页的版本:
一个分析器帮助您优化游戏的窗口。它显示了在游戏的各个领域花费了多少时间。例如,它可以报告渲染、动画制作或游戏逻辑所花费的时间百分比。更多信息
请参阅术语表模块在“性能分析器”窗口中显示来自系统的性能数据。
您可以通过以下方式之一创建自己的分析器模块:
自定义模块在探查器窗口图表视图 (A) 中显示您在代码中指定的计数器,并且计数器在模块详细信息面板 (B) 中显示为列表。
您可以使用 Unity 的内置 Profiler 模块编辑器创建自己的 Profiler 模块。要在性能分析器模块中收集数据,必须为模块添加至少一个要跟踪的计数器。您可以同时添加内置的 Unity 计数器,或使用ProfilerCounter应用程序接口创建您自己的计数器以添加到模块中。可用计数器的列表将显示在“可用计数器”窗格中。
要创建您自己的模块:
重要:如果未将任何数据加载到“性能分析器”窗口中,则加载性能分析器模块编辑器时,创建的任何计数器都不会显示在“可用计数器”窗格中。要查看自定义计数器,请使用性能分析器捕获或加载一些包含发射计数器的数据,然后重新打开性能分析器模块编辑器。
要通过代码创建 Profiler 模块,您必须创建一个新的ProfilerModule脚本并定义模块的属性,包括它显示的计数器、名称和图标。
要定义 Profiler 模块,您的脚本必须执行以下作:
定义派生自ProfilerModule在您的项目或包中。在以下示例中,该类称为TankEffectsProfilerModule:
public class TankEffectsProfilerModule : ProfilerModule
分配[ProfilerModuleMetadata]属性添加到此类,并在属性的参数中指定模块的显示名称。在以下示例中,显示名称为“Tank Effects”:
[ProfilerModuleMetadata("Tank Effects")]
实现一个没有参数的构造函数,并将图表计数器描述列表传递给基构造函数。在以下示例中,没有参数的构造函数是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 模块中的数据,请执行以下作:
您还可以在应用程序处于播放模式时运行性能分析器。但是,如果您在播放模式下分析应用程序,则分析器显示的数据不能代表您在硬件设备上构建应用程序时的运行方式。