Version: 2020.3

Profiler.EmitFrameMetaData

切换到手册
public static void EmitFrameMetaData (Guid id, int tag, Array data);
public static void EmitFrameMetaData (Guid id, int tag, List<T> data);
public static void EmitFrameMetaData (Guid id, int tag, NativeArray<T> data);

参数

id 模块标识符。用于区分不同插件、包或模块之间的元数据流。
tag 数据流索引。
data 二进制数据。

描述

将与当前帧关联的元数据写入性能分析器流。

使用 EmitFrameMetaData 将任意二进制数据写入性能分析器流。数据必须仅包含 blittable 类型。

using System;
using System.Diagnostics;
using Unity.Collections;
using UnityEngine;
using UnityEngine.Profiling;

public class Example { public struct TextureInfo { public int format; public int w; public int h; }

public static readonly Guid kMyProjectId = new Guid("7E1DEA84-51F1-477A-82B5-B5C57AC1EBF7"); public static readonly int kTextureInfoTag = 0; public static readonly int kTextureDataTag = 1;

[Conditional("ENABLE_PROFILER")] public void EmitTextureToProfilerStream(Texture2D t) { if (!Profiler.enabled) return; TextureInfo textureInfo = new TextureInfo() { format = (int)t.format, w = t.width, h = t.height }; NativeArray<byte> textureData = t.GetRawTextureData<byte>(); Profiler.EmitFrameMetaData(kMyProjectId, kTextureInfoTag, new[] { textureInfo }); Profiler.EmitFrameMetaData(kMyProjectId, kTextureDataTag, textureData); } }

注意:
写入大量数据可能增加性能分析器的开销和内存使用率。在生成数据前始终检查性能分析器是否 enabled。 为降低内容使用率,尽可能少量写入数据。

另请参阅:HierarchyFrameDataView.GetFrameMetaData。