49 lines
1.6 KiB
C#
49 lines
1.6 KiB
C#
|
using System;
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace Unity.XR.Oculus
|
||
|
{
|
||
|
public static class Development
|
||
|
{
|
||
|
private enum UserDeveloperModeSettingCache
|
||
|
{
|
||
|
NoUserSettingCached = 0,
|
||
|
UserSettingFalse = 1,
|
||
|
UserSettingTrue = 2
|
||
|
}
|
||
|
|
||
|
private static UserDeveloperModeSettingCache s_CachedMode = UserDeveloperModeSettingCache.NoUserSettingCached;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Enable or disable developer mode, default enable in development build
|
||
|
/// </summary>
|
||
|
public static void TrySetDeveloperMode(bool active)
|
||
|
{
|
||
|
//cache this setting to use it in Start() only
|
||
|
s_CachedMode = active ? UserDeveloperModeSettingCache.UserSettingTrue : UserDeveloperModeSettingCache.UserSettingFalse;
|
||
|
}
|
||
|
|
||
|
internal static void OverrideDeveloperModeStart()
|
||
|
{
|
||
|
bool enable = true;
|
||
|
bool shouldOverride = false;
|
||
|
if (s_CachedMode != UserDeveloperModeSettingCache.NoUserSettingCached)
|
||
|
{
|
||
|
shouldOverride = true;
|
||
|
enable = (s_CachedMode == UserDeveloperModeSettingCache.UserSettingTrue);
|
||
|
}
|
||
|
else if (Debug.isDebugBuild)
|
||
|
shouldOverride = true;
|
||
|
|
||
|
if (shouldOverride && !NativeMethods.SetDeveloperModeStrict(enable))
|
||
|
Debug.LogError("Failed to set DeveloperMode on Start.");
|
||
|
}
|
||
|
|
||
|
internal static void OverrideDeveloperModeStop()
|
||
|
{
|
||
|
if (!NativeMethods.SetDeveloperModeStrict(false))
|
||
|
Debug.LogError("Failed to set DeveloperMode to false on Stop.");
|
||
|
}
|
||
|
}
|
||
|
}
|