当前位置: 首页 > 文档资料 > UWA 帮助文档 >

UWA API 提供

优质
小牛编辑
127浏览
2023-12-01

为了给研发团队提供更为灵活的测试方式,我们提供一组UWA API,以帮助研发人员收集自定义的数据信息,并在报告中进行查看。目前,该功能只为专业会员开放。

目前,UWA API 提供以下两种功能:

  • 自定义代码段测试

  • 自定义变量测试

自定义代码段测试 (UWAEngine.PushSample / PopSample)

public static void PushSample(string sampleName);
public static void PopSample();

参数

sampleName 自定义的函数标签

描述

在UWAEngine中添加一个自定义的函数标签,UWAEngine会对PushSample和PopSample之间的代码段统计CPU和堆内存开销,以及其他信息,并在UWA报告中的特定模块中进行显示。

示例

UWAEngine.PushSample("MyCode");
// My Beautiful Code
UWAEngine.PopSample();

报告界面

通过 PushSamplePopSample API, 您可以对任意代码段的性能进行分解和测试,并在测评报告中查看其详细的性能开销。

注意: 请确保 PushSamplePopSample 是成对使用的。如果两者之间使用了return语句提前退出代码段(或者在协程中使用yield return提前跳出代码段),则会造成 PushSamplePopSample 的配对不准确,从而导致数据错误。

自定义变量测试

在性能分析过程中,我们不仅希望可以对任意的代码段进行分析,同时我们也希望对某些重要参数进行监控。因此,UWA提供了相应的API,以方便您对代码变量进行全面的监控。

UWAEngine.Register

public static void Register(object classObj, string instanceName, string fieldName, float updateInterval);

参数

classObj        类的实例
instanceName    实例的命名标签 
fieldname       需要记录的非静态field的名字(field的类型只支持int,bool,float)
updateInterval  更新记录的时间间隔(单位:秒)

描述

在UWAEngine中添加一个类的对象,以及一个非静态变量名,并附上自定义的变量标签,UWAEngine会按照指定的时间间隔自动更新及记录该值,并在UWA报告中的特定模块中显示对应的曲线,曲线名为:classObj(instanceName).fieldname的名字。

示例

UWAEngine.Register(this, "Single", "_positionX", 1.0f);

报告界面

通过 UWAEngine.Register API, 您可以对重要变量参数进行监控,并在测评报告中查看其具体的使用情况。

UWAEngine.LogValue

public static void Register(Type classType, string fieldName, float updateInterval);

参数

classType        类的类型
fieldname        需要记录的静态field的名字(field的类型只支持int,bool,float)
updateInterval   更新记录的时间间隔

描述

在UWAEngine中添加一个类的类型,以及一个静态变量名,并附上自定义的变量标签,UWAEngine会按照指定的时间间隔自动更新及记录该值,并在UWA报告中的特定模块中显示对应的曲线,曲线名为:classType.field的名字。

示例

UWAEngine.Register(typeof(TerrainManager), "_currentTerrainIndex", 1.0f);

报告界面

通过 UWAEngine.Register API, 您可以对重要变量参数进行监控,并在测评报告中查看其具体的使用情况。

public static void LogValue(string valueName, float value);
public static void LogValue(string valueName, int value);
public static void LogValue(string valueName, bool value);

参数

valueName  自定义的变量标签
value      变量的值

描述

在UWAEngine中添加一个自定义的变量标签以及当前的数值, UWAEngine会记录下添加的时间点以及其数值,并在UWA报告中的特定模块中显示对应的曲线。

示例

UWAEngine.LogValue("A Bool", true);
UWAEngine.LogValue("A Int", Time.frameCount);
UWAEngine.LogValue("A Float", Time.deltaTime);

报告界面

通过 UWAEngine.LogValue API, 您可以特定时刻对指定变量参数进行监控,并在测评报告中查看其具体的使用情况。

注意: 对于实时变化的变量,可以在Update中调用LogValue,而对于偶尔变化的变量,可以在改变时调用LogValue。