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

Profiler.EmitSessionMetaData

建议更改

成功!

感谢你帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交的内容,但我们会阅读用户提交的每项建议更改,并在适用的情况下进行更新。

关闭

提交失败

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

关闭

取消

声明

public static void EmitSessionMetaData(Guid id, int tag, Array data);

声明

public static void EmitSessionMetaData(Guid id, int tag, List<T> data);

声明

public static void EmitSessionMetaData(Guid id, int tag, NativeArray<T> data);

参数

id 与数据关联的唯一标识符。
tag 数据流索引。
data 二进制数据。

说明

写入与整个 Profiler 会话捕获关联的元数据。

使用 EmitSessionMetaData 来写入应该可以用于此会话的所有帧的任意二进制数据。数据只能包含可调整大小的类型。

如果你要存储在 Profiler 元数据中的信息可能会随帧而改变,请考虑使用 EmitFrameMetaData

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 MyProjectId = new Guid("7E1DEA84-51F1-477A-82B5-B5C57AC1EBF7"); public static readonly int TextureInfoTag = 0; public static readonly int TextureDataTag = 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.EmitSessionMetaData(MyProjectId, TextureInfoTag, new[] { textureInfo }); Profiler.EmitSessionMetaData(MyProjectId, TextureDataTag, textureData); } }

注意
写入大量数据块可能会增加 Profiler 的开销和内存使用情况。始终检查 Profiler 是否已 启用,然后再生成数据。如果可能,请以小块写入数据以减少内存使用量。

其他资源:FrameDataView.GetSessionMetaData