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);

Parameters

markerPtrProfiler marker handle.
indexMetadata parameter index.
nameMetadata parameter name.
typeMetadata type. Must be one of ProfilerMarkerDataType values.
unitMetadata unit. Must be one of ProfilerMarkerDataUnit values.
nameLenMetadata parameter name length.

Description

Set Profiler marker metadata name and type.

Use to add additional usage context to the Profiler sample metadata parameter.

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); } }