Объявление
public static void SetMarkerMetadata(IntPtr markerPtr, int index, string name, byte type, byte unit);public static void SetMarkerMetadata(IntPtr markerPtr, int index, char* name, int nameLen, byte type, byte unit);
Параметры
markerPtr | Ручка маркера профилировщика. |
index | Индекс параметров метаданных. |
name | Имя параметра метаданных. |
type | Тип метаданных. Должно быть одним из значений ProfilerMarkerDataType. |
unit | Блок метаданных. Должно быть одним из значений ProfilerMarkerDataUnit. |
nameLen | Длина имени параметра метаданных. |
Описание
Установить имя и тип метаданных маркера Profiler.
Используйте, чтобы добавить дополнительный контекст использования к параметру метаданных образца Profiler.
using Unity.Collections.LowLevel.Unsafe;
using Unity.Profiling;
using Unity.Profiling.LowLevel;
using Unity.Profiling.LowLevel.Unsafe;
using System;
class Example
{
static IntPtr MakeMarkerWithIntMetadata(string name, string paramName)
{
var handle = ProfilerUnsafeUtility.CreateMarker(name, ProfilerUnsafeUtility.CategoryScripts, MarkerFlags.Default, 1);
ProfilerUnsafeUtility.SetMarkerMetadata(handle, 0, paramName, (byte)ProfilerMarkerDataType.Int32, (byte)ProfilerMarkerDataUnit.Count);
return handle;
}
static readonly IntPtr markerHandle = MakeMarkerWithIntMetadata("MyMarker", "Work Idx");
static unsafe void DoWork(int num)
{
var metadata = stackalloc ProfilerMarkerData[1];
metadata[0].Type = (byte)ProfilerMarkerDataType.Int32;
metadata[0].Size = (uint)UnsafeUtility.SizeOf();
metadata[0].Ptr = UnsafeUtility.AddressOf(ref num);
ProfilerUnsafeUtility.BeginSampleWithMetadata(markerHandle, 1, metadata);
//...
ProfilerUnsafeUtility.EndSample(markerHandle);
}
}
Смотрите так же: ProfilerMarkerDataType, ProfilerMarkerDataUnit.