版本: Unity 6 (6000.0)
语言英语
  • C#

Recorder

UnityEngine.Profiling 中的类

/

实现于:UnityEngine.CoreModule

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们会阅读用户提出的每个建议,并在必要时进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

记录特定采样器产生的性能分析数据。

Recorder 在一帧内累积每个 Begin/End 对的经过时间。启用后,它会将采样器产生的 Begin 和 End 采样之间的 delta 时间相加。使用 elapsedNanoseconds 获取上一帧的累积时间。

using UnityEngine;
using UnityEngine.Profiling;

public class ExampleClass : MonoBehaviour { Recorder behaviourUpdateRecorder; void Start() { behaviourUpdateRecorder = Recorder.Get("BehaviourUpdate"); behaviourUpdateRecorder.enabled = true; }

void Update() { if (behaviourUpdateRecorder.isValid) Debug.Log("BehaviourUpdate time: " + behaviourUpdateRecorder.elapsedNanoseconds); } }

注意: Recorder 无论 Profiler 状态如何都会收集数据。启用 Recorder 后,每次其 Sampler 被命中时都会累积数据。此信息等同于您可以在 Profiler 窗口 的层次结构视图中看到的信息。

目前,采样器仅在编辑器和开发版 Player 中可用。使用 Recorder.isValid 验证 Recorder 是否可以收集数据。

Recorder 仅支持内部静态 Profiler 标签和由 CustomSampler 生成的标签。由脚本方法调用产生的动态内部标签和由 Profiler.BeginSample 生成的标签不受支持。

其他资源:SamplerRecorder.isValidRecorder.elapsedNanoseconds

属性

elapsedNanoseconds上一帧的 Begin/End 对的累积时间(以纳秒为单位)。(只读)
enabled启用录制。
gpuElapsedNanoseconds获取一帧的累积 GPU 时间(以纳秒为单位)。Recorder 有三帧延迟,因此这将提供您访问此属性之前三帧的计时。(只读)。
gpuSampleBlockCount获取 GPU 在一帧内执行的 Begin/End 时间对的数量。Recorder 有三帧延迟,因此这将提供您访问此属性之前三帧的计时。(只读)。
isValid如果 Recorder 有效且可以收集数据,则返回 true。(只读)
sampleBlockCount上一帧中调用 Begin/End 对的次数。(只读)

公共方法

CollectFromAllThreads配置 Recorder 以从所有线程收集样本。
FilterToCurrentThread配置 Recorder 以仅从当前线程收集数据。

静态方法

Get使用此函数为特定 Profiler 标签获取 Recorder。