Описание
Означает, что ProfilerMarkerData.Ptr указывает на char*.
Используйте String16 для передачи строковых данных в ProfilerUnsafeUtility. .BeginSampleWithMetadata.
Примечание. Размер строки должен быть указан в байтах, включая завершающий нуль.
using System.Diagnostics;
using System.Runtime.CompilerServices;
using Unity.Profiling;
using Unity.Profiling.LowLevel;
using Unity.Profiling.LowLevel.Unsafe;
public static class ProfilerMarkerExtension
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[Conditional("ENABLE_PROFILER")]
public static unsafe void Begin(this ProfilerMarker marker, string metadata)
{
var data = new ProfilerMarkerData();
data.Type = (byte)ProfilerMarkerDataType.String16;
fixed(char* c = metadata)
{
data.Size = ((uint)metadata.Length + 1) * 2;
data.Ptr = c;
ProfilerUnsafeUtility.BeginSampleWithMetadata(marker.Handle, 1, &data);
}
}
}