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

ProfilerUnsafeUtility.SetMarkerMetadata

建议更改

成功!

感谢你帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们确实会阅读用户提出的每条建议,并酌情进行更新。

关闭

提交失败

出于某种原因,无法提交你建议的更改。请在几分钟后<a>重试</a>。感谢你花时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

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 标记句柄。
index 元数据参数索引。
name 元数据参数名称。
type 元数据类型。必须是 ProfilerMarkerDataType 值之一。
unit 元数据单位。必须是 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); } }