版本:Unity 6 (6000.0)
语言中文(简化字)
  • C#

ProfilerMarkerDataType.String16

建议更改

成功!

感谢您帮助我们提升 Unity 文档的质量。尽管我们无法接受所有提交的内容,但我们确实会阅读每位用户提出的更改建议,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您建议的更改无法提交。请与<a>在几分钟之后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

说明

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