Version: 2022.1

描述

Signifies that ProfilerMarkerData.Ptr points to a char*.

Use String16 to pass string data to the ProfilerUnsafeUtility.BeginSampleWithMetadata.

Note: The size of the string must be set in bytes including the null terminator.

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); } } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961