配置用户报告

用户报告的默认设置适用于正常使用,但随着项目的发展,您可能希望针对特定需求进行更改。您可能构建与应用程序匹配的自定义 UI,以引入自定义字段或更改用户报告表单的外观。包中提供的示例是功能性的,但仅作为起点。

用户报告包含有用的信息,例如元数据、事件、采样指标、屏幕截图和文件附件。例如,您可以将用户的游戏存档文件附加到他们的报告中,或在玩家执行特定操作时记录事件。您还可以在性能密集型游戏场景中采样性能指标。

使用 API 配置报告中每种数据类型的最大值。UserReportExample 文件(位于导入到 Unity 项目中的示例中)提供了不同数据添加到报告的方法示例。

例如,您可以自定义以下设置以限制报告中特定数据类型的最大值

  • FramesPerMeasure: 测量是指标样本收集的每组帧。默认测量长度为 60 帧。
  • MaximumMeasureCount: 测量是指标样本中的一组帧,并且计算报告中测量的最大数量。默认值为 300 个测量。
  • MaximumEventCount: 此限制适用于报告中包含的事件数量。默认值为 100 个事件。
  • MaximumScreenshotCount: 报告中最多附加的屏幕截图限制。默认值为 10 张屏幕截图。
  • MetricsGatheringMode: 表示指标收集模式。某些指标(例如每秒帧数 (Graphics.FramesPerSecond))可以使用自动模式(默认配置)包含在报告中。手动模式只会将您自己的自定义指标包含在报告中,而禁用模式将完全阻止任何采样指标发送到报告中。

这些设置没有限制,但如果您设置更高的值,则收集的数据会影响报告的大小。特别是,大型高分辨率屏幕截图可以快速增加报告的大小。

要配置用户报告设置,请调用 UserReportingService.Instance..Configure(UserReportingClientConfiguration configuration) 方法

var customConfig = new UserReportingClientConfiguration(5, 5, 100, 100, MetricsGatheringMode.Automatic);
UserReportingService.Instance.UserReporting.Configure(customConfig);

创建和发送报告

要创建报告,请调用 UserReportingService.Instance.UserReporting.CreateNewUserReport();

要发送报告,请调用 UserReportingService.Instance.SendUserReport(Action<float> progressUpdate, Action<bool> result)

请查看示例以更好地理解操作参数。发送报告不是必需的,但建议您发送。

添加元数据

使用元数据收集游戏的特定数据,这些数据与用户报告中默认包含的设备元数据一起显示。

要添加自定义元数据,请调用 UserReportingService.Instance.AddMetadata(string name, string value) 方法。

添加元数据对性能的影响可以忽略不计。

记录事件

要记录自定义事件,请调用 UserReportingService.Instance.LogEvent(UserReportEventLevel level, string message) 方法。

记录事件对性能的影响可以忽略不计。

添加采样指标

要添加自定义采样指标,请调用 UserReportingService.Instance.SampleMetric(string name, double value) 方法。

SampleMetric 方法旨在让您在每帧调用它,对性能的影响很小。但是,如果您在每帧调用上述方法,则每个不同的名称都会显著增加报告的大小。

添加屏幕截图

要将屏幕截图添加到报告中,请调用 UserReportingService.Instance.TakeScreenshot(int maximumWidth, int maximumHeight) 方法。屏幕截图在仪表盘中作为报告的一部分查看。

您还可以选择指定屏幕截图的来源,例如使用 UserReportingService.Instance.TakeScreenshot(int maximumWidth, int maximumHeight, object source) 指定相机或渲染纹理。

无论来源如何,图像都会缩放到小于最大宽度和最大高度参数定义的大小为止。

当您选择最大宽度和最大高度时,用户报告必须小于 10MB。最后拍摄的屏幕截图用作仪表盘中报告的缩略图。

注意: 拍摄屏幕截图会影响性能。为了避免对用户造成不利影响,请在性能不关键时拍摄屏幕截图,例如玩家处于空闲状态时。

添加附件

添加附件,例如视频和场景图。

附件被编码为 Base64 对象。

使用 UserReportingService.Instance.AddAttachmentToReport(string title, string filename, byte[] data) 添加附件。

组织报告维度

使用维度在 Unity 仪表盘上过滤用户报告。您可以在发送报告之前将维度和指标添加到报告中,方法是将项目添加到维度属性。每个维度或指标都有一个名称和一个值。您可以通过调用以下方法将新的维度添加到报告中

UserReportingService.Instance.AddDimensionValue(string dimension, string value);

例如,请查看以下维度相关的三个报告

名称
平台Android
版本2
类别图形
平台WindowsPlayer
版本1
语言英语
平台WindowsPlayer
版本1
Platform.VersionWindowsPlayer.1

在仪表盘上查看以下过滤选项

维度名称维度值
类别图形
语言英语
平台Android
平台WindowsPlayer
Platform.VersionWindowsPlayer: 1
版本1
版本2

您还可以将不同的维度添加到不同的报告中。例如,您可能只想为本地化报告添加 SystemLanguage 作为维度。

用户还可以将单个标签添加到报告摘要中。此标签将显示为维度。

例如,摘要“我掉到地板上了 #FloorBug”将显示为

维度名称维度值
标签FloorBug