ProfilerUnsafeUtility.SetMarkerMetadata
Declaration
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 | Profiler ручка маркера. |
| индекс | Индекс параметров метаданных. |
| имя | Имя параметра метаданных. |
| тип | Тип метаданных. Должно быть одним из значений ProfilerMarkerDataType. |
| единица | Единица метаданных. Должно быть одним из значений 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<int>(); metadata[0].Ptr = UnsafeUtility.AddressOf(ref num); ProfilerUnsafeUtility.BeginSampleWithMetadata(markerHandle, 1, metadata); //... ProfilerUnsafeUtility.EndSample(markerHandle); } }
Дополнительные ресурсы: ,ProfilerMarkerDataType,, ,ProfilerMarkerDataUnit,.