107 lines
4.2 KiB
C#
107 lines
4.2 KiB
C#
using UnityEngine;
|
|
#if UNITY_EDITOR
|
|
using UnityEditor;
|
|
#endif
|
|
|
|
namespace VLB
|
|
{
|
|
public class PlatformHelper
|
|
{
|
|
#if UNITY_EDITOR
|
|
static BuildTarget ms_BuildTargetOverride = BuildTarget.NoTarget;
|
|
|
|
public static void SetBuildTargetOverride(BuildTarget target)
|
|
{
|
|
ms_BuildTargetOverride = target;
|
|
Config.Instance.RefreshShaders(Config.RefreshShaderFlags.All);
|
|
}
|
|
|
|
static BuildTarget GetCurrentBuildTarget()
|
|
{
|
|
if (BuildPipeline.isBuildingPlayer && ms_BuildTargetOverride != BuildTarget.NoTarget) return ms_BuildTargetOverride;
|
|
return EditorUserBuildSettings.activeBuildTarget;
|
|
}
|
|
|
|
static RuntimePlatform BuildTargetToRuntimePlatform(BuildTarget buildTarget)
|
|
{
|
|
#pragma warning disable 0618 // obsolete BuildTargets
|
|
switch (buildTarget)
|
|
{
|
|
case BuildTarget.Android: return RuntimePlatform.Android;
|
|
case BuildTarget.PS4: return RuntimePlatform.PS4;
|
|
case BuildTarget.StandaloneLinux64: return RuntimePlatform.LinuxPlayer;
|
|
case BuildTarget.StandaloneWindows: return RuntimePlatform.WindowsPlayer;
|
|
case BuildTarget.StandaloneWindows64: return RuntimePlatform.WindowsPlayer;
|
|
case BuildTarget.WSAPlayer: return RuntimePlatform.WSAPlayerARM;
|
|
case BuildTarget.XboxOne: return RuntimePlatform.XboxOne;
|
|
case BuildTarget.iOS: return RuntimePlatform.IPhonePlayer;
|
|
case BuildTarget.tvOS: return RuntimePlatform.tvOS;
|
|
case BuildTarget.WebGL: return RuntimePlatform.WebGLPlayer;
|
|
|
|
#if UNITY_2017_1_OR_NEWER
|
|
case BuildTarget.Switch: return RuntimePlatform.Switch;
|
|
#endif
|
|
|
|
#if UNITY_2017_3_OR_NEWER
|
|
case BuildTarget.StandaloneOSX: return RuntimePlatform.OSXPlayer;
|
|
#else
|
|
case BuildTarget.StandaloneOSXUniversal:return RuntimePlatform.OSXPlayer;
|
|
#endif
|
|
|
|
#if UNITY_2019_3_OR_NEWER
|
|
case BuildTarget.Stadia: return RuntimePlatform.Stadia;
|
|
#endif
|
|
|
|
#if UNITY_2020_2_OR_NEWER
|
|
case BuildTarget.CloudRendering: return RuntimePlatform.CloudRendering;
|
|
#endif
|
|
|
|
#if UNITY_2021_1_OR_NEWER
|
|
case BuildTarget.GameCoreScarlett: return RuntimePlatform.GameCoreScarlett;
|
|
case BuildTarget.GameCoreXboxOne: return RuntimePlatform.GameCoreXboxOne;
|
|
case BuildTarget.PS5: return RuntimePlatform.PS5;
|
|
#endif
|
|
|
|
// obsolete
|
|
case BuildTarget.StandaloneOSXIntel: return RuntimePlatform.OSXPlayer;
|
|
case BuildTarget.StandaloneOSXIntel64: return RuntimePlatform.OSXPlayer;
|
|
case BuildTarget.StandaloneLinuxUniversal:return RuntimePlatform.LinuxPlayer;
|
|
case BuildTarget.WiiU: return RuntimePlatform.WiiU;
|
|
case BuildTarget.PSP2: return RuntimePlatform.PSP2;
|
|
case BuildTarget.PS3: return RuntimePlatform.PS3;
|
|
case BuildTarget.XBOX360: return RuntimePlatform.XBOX360;
|
|
|
|
default: return (RuntimePlatform)(-1);
|
|
}
|
|
#pragma warning restore 0618
|
|
}
|
|
|
|
public static bool IsValidPlatformSuffix(string suffix)
|
|
{
|
|
if (string.IsNullOrEmpty(suffix))
|
|
return true;
|
|
|
|
foreach (var platform in System.Enum.GetNames(typeof(RuntimePlatform)))
|
|
{
|
|
if (suffix == platform)
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
#endif // UNITY_EDITOR
|
|
|
|
public static string GetCurrentPlatformSuffix()
|
|
{
|
|
#if UNITY_EDITOR
|
|
return GetPlatformSuffix(BuildTargetToRuntimePlatform(GetCurrentBuildTarget()));
|
|
#else
|
|
return GetPlatformSuffix(Application.platform);
|
|
#endif
|
|
}
|
|
|
|
static string GetPlatformSuffix(RuntimePlatform platform)
|
|
{
|
|
return platform.ToString();
|
|
}
|
|
}
|
|
} |