Объявление
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 textureData = t.GetRawTextureData();
Profiler.EmitSessionMetaData(MyProjectId, TextureInfoTag, new[] { textureInfo });
Profiler.EmitSessionMetaData(MyProjectId, TextureDataTag, textureData);
}
}
Примечание. Запись больших фрагментов данных может увеличить нагрузку на профайлер и увеличить использование памяти. Перед созданием данных всегда проверяйте, включен ли Profiler. По возможности записывайте данные небольшими порциями, чтобы уменьшить использование памяти.
Смотрите так же: FrameDataView.GetSessionMetaData.