MarkerFlags.AvailabilityNonDevelopment
Описание
Указывает, что маркер присутствует в неразвивающихся Игроках.
Используйте AvailabilityNonDevelopment, чтобы определить, доступен ли маркер или счетчик профилирования в неразработанных игроках.
using System.Collections.Generic; using Unity.Profiling.LowLevel; using Unity.Profiling.LowLevel.Unsafe;
public class Example { public static unsafe void WriteAllNonDevelopmentStatsToFile(string filePath) { using (var writer = new System.IO.StreamWriter(filePath)) { var availableStatHandles = new List<ProfilerRecorderHandle>(); ProfilerRecorderHandle.GetAvailable(availableStatHandles); foreach (var h in availableStatHandles) { var statDesc = ProfilerRecorderHandle.GetDescription(h); if (!statDesc.Flags.HasFlag(MarkerFlags.AvailabilityNonDevelopment)) continue;
var name = System.Text.Encoding.UTF8.GetString(statDesc.NameUtf8, statDesc.NameUtf8Len); writer.WriteLine($"{name};{statDesc.Flags}"); } } } }
Используйте AvailabilityNonDevelopment, чтобы указать, что маркер профилера, созданный с помощью ProfilerUnsafeUtility.CreateMarker, доступен в неразработанных проигрывателях.
using Unity.Collections.LowLevel.Unsafe; using Unity.Profiling.LowLevel; using Unity.Profiling.LowLevel.Unsafe; using System;
class Example { static readonly IntPtr markerHandle = ProfilerUnsafeUtility.CreateMarker("MyMarker", ProfilerUnsafeUtility.CategoryScripts, MarkerFlags.AvailabilityNonDevelopment, 0); static unsafe void DoWork(int num) { ProfilerUnsafeUtility.BeginSample(markerHandle); //... ProfilerUnsafeUtility.EndSample(markerHandle); } }
Примечание:
AvailabilityNonDevelopment флаг не оказывает влияния на ProfilerMarker создание как ProfilerMarker API это только разработка игрока.