一个自定义 分析器一个帮助您优化游戏的窗口。它显示了您游戏中的各个区域的耗时。例如,它可以报告渲染、动画或游戏逻辑所占的百分比时间。更多信息
在 术语表 中查看 模块在分析器窗口中显示您的系统性能数据。
您可以通过以下方式之一创建自定义分析器模块
某些软件包包含您可以在安装该特定软件包时使用的自定义分析器模块。更多信息请参阅分析器模块列表。
自定义模块在分析器窗口图表视图中显示您在代码中指定的计数器(A),并在模块详细信息面板中作为列表显示计数器(B)。
您可以使用 Unity 内置的分析器模块编辑器来创建自定义分析器模块。更多信息请参阅创建自定义模块文档部分。
要通过代码创建自定义分析器模块,您必须创建一个新的 ProfilerModule 脚本并定义模块的属性,包括它显示的计数器、其名称和图标。
要定义自定义分析器模块,您的脚本必须执行以下操作
在您的项目或软件包中定义从 ProfilerModule 派生的类。以下示例中,类名为 TankEffectsProfilerModule
public class TankEffectsProfilerModule : ProfilerModule
将 ProfilerModuleMetadata 属性分配给此类,并在属性的参数中指定模块的显示名称。以下示例中,显示名称为“坦克效果”
[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) { }
当您定义自定义分析器模块时,分析器窗口会自动检测到它。要查看分析器窗口中自定义分析器模块中的数据
您还可以在应用程序处于播放模式时运行分析器。但是,如果在播放模式的分析应用程序,分析器显示的数据不表示您在硬件设备上构建应用程序时应用程序的运行情况。