Объявление
public static void EmitFrameMetaData(Guid id, int tag, Array data);public static void EmitFrameMetaData(Guid id, int tag, List
public static void EmitFrameMetaData(Guid id, int tag, NativeArray
Параметры
id | Идентификатор модуля. Используется для различения потоков метаданных между различными плагинами, пакетами или модулями.. |
tag | Индекс потока данных. |
data | Двоичные данные. |
Описание
Записывает метаданные, связанные с текущим кадром, в поток 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 textureData = t.GetRawTextureData();
Profiler.EmitFrameMetaData(MyProjectId, TextureInfoTag, new[] { textureInfo });
Profiler.EmitFrameMetaData(MyProjectId, TextureDataTag, textureData);
}
}
Примечание.
Запись больших фрагментов данных может увеличить нагрузку на профилировщик и использование памяти. Перед созданием данных всегда проверяйте, включен ли Profiler.
По возможности записывайте данные небольшими порциями, чтобы уменьшить использование памяти.
Смотрите так же: FrameDataView.GetFrameMetaData.