包含此页的版本:
不含此页的版本:
使用AsyncReadManagerMetrics类来监控运行时资产加载和文件读取性能。此类记录由AsyncReadManager.
Unity 使用AsyncReadManager在运行时读取大多数文件,包括资产包、可寻址对象和资源。您还可以从脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表用AsyncReadManager.Read.
您可以使用AsyncReadManagerMetrics执行以下作:
此信息可以帮助您识别资产加载问题,并衡量更改对性能的影响。
这AsyncReadManagerMetrics类仅适用于开发版本开发版本包括调试符号并启用性能分析器。更多信息
请参阅术语表.为确保兼容性,请将调用包装为AsyncReadManagerMetricsAPI 中的#ifpreprocessor 指令使用ENABLE_PROFILER象征。对于较旧的 Unity 版本,请使用UNITY_2020_2_OR_NEWER符号以删除指标代码。例如:
#if ENABLE_PROFILER && UNITY_2020_2_OR_NEWER
AsyncReadManagerMetrics.StartCollectingMetrics();
#endif
在记录任何数据之前启用指标收集。您可以通过以下方式之一执行此作:
AsyncReadManagerMetrics.StartCollectingMetrics在您的脚本中。-enable-file-read-metrics命令行参数。要在 Play 模式下收集指标,请将-enable-file-read-metrics参数。但是,编辑器会加载某些类别的资产,例如纹理,并且在你进入 播放(Play) 模式时不会重新加载它们。要获得完整的文件 I/O 指标,必须从应用程序的开发版本中收集数据。
用GetMetrics从中检索收集的指标AsyncReadManagerMetrics.指定AsyncReadManagerMetrics.Flags以确定检索后是否清除指标。清除指标会删除已完成(包括已取消和失败)的读取,但保留排队或正在进行的作。要访问未完成作的指标,请调用GetMetrics完成后再次。通过定期清除指标,可以避免重读相同的数据,还可以减少系统的数据开销。
#if ENABLE_PROFILER && UNITY_2020_2_OR_NEWER
AsyncReadManagerRequestMetric[] metrics
= AsyncReadManagerMetrics.GetMetrics(AsyncReadManagerMetrics.Flags.ClearOnRead);
#endif
指标数据包括以下上下文数据:
AssetLoadingSubsystem这启动了阅读。如果不可用,则默认为Other.AssetName.如果不可用,则默认为空。AssetTypeID.如果不可用,则默认为零。以下是支持的资产 TypeID 列表:
| 类型ID | 类型名称 |
|---|---|
| 28 | 纹理2D |
| 117 | 纹理3D |
| 89 | 立方体贴图六个方形纹理的集合,可以表示环境中的反射或几何体后面绘制的天空盒。这六个正方形形成了一个围绕物体的假想立方体的面;每个面表示沿世界轴方向(上、下、左、右、前和后)的视图。更多信息 请参阅术语表 |
| 43 | 网孔 |
有关可能出现的其他 TypeID,请参阅 YAML 类 ID 参考。
获取摘要AsyncReadManager指标:
GetCurrentSummaryMetrics:返回上次清除指标存储后收集的所有指标的摘要。GetSummaryOfMetrics:返回数组中指标的摘要AsyncReadManagerRequestMetric,您可以通过调用GetMetrics.例如:
#if ENABLE_PROFILER && UNITY_2020_2_OR_NEWER
AsyncReadManagerSummaryMetrics summaryOfMetrics
= AsyncReadManagerMetrics.GetCurrentSummaryMetrics(AsyncReadManagerMetrics.Flags.ClearOnRead);
#endif
或:
#if ENABLE_PROFILER && UNITY_2020_2_OR_NEWER
AsyncReadManagerRequestMetric[] metrics
= AsyncReadManagerMetrics.GetMetrics(AsyncReadManagerMetrics.Flags.ClearOnRead);
AsyncReadManagerSummaryMetrics summaryOfMetrics
= AsyncReadManagerMetrics.GetSummaryOfMetrics(metrics);
#endif
汇总统计数据包括:
有关摘要指标的完整列表,请参阅AsyncReadManagerSummaryMetrics.
默认情况下,汇总的统计信息包括所有读取作,包括排队或正在进行的读取作。可以使用筛选器将摘要限制为感兴趣的作。例如,可以使用过滤器将汇总统计信息限制为纹理资产的已完成读取作。
注意:计算摘要需要处理资源。为避免影响您的测量,请先收集指标,并在作完成后对其进行汇总。
用AsyncReadManagerMetricsFilters以过滤汇总数据。您可以按以下条件进行筛选:
AssetLoadingSubsystem.您可以为同一过滤器设置多个类别。读取作必须与所有类别匹配,该作的指标才能包含在摘要中。例如,您可以为ProcessingState和Subsystem过滤器的过滤器,以仅汇总由指定子系统启动的指定处理状态下的作。
您还可以为一个类别指定多个值。在这种情况下,读取作可以匹配您为类别指定的任何值,以便将其指标包含在摘要中。例如,按两者进行筛选meshUnity 的主要图形原语。网格体构成了 3D 世界的很大一部分。Unity 支持三角或四边形多边形网格。Nurbs、Nurms、Subdiv 曲面必须转换为多边形。更多信息
请参阅术语表和texture渲染游戏对象、精灵或 UI 元素时使用的图像。纹理通常应用于网格表面,以赋予其视觉细节。更多信息
请参阅术语表包括两种资产类型的作。