using System; using UnityEngine; namespace QFSW.QC { /// /// Bitwise flag enum for the runtime platform. Setting a platform bit to 0 includes it as a supported platform. /// [Flags] public enum Platform : long { #pragma warning disable 612,618 OSXEditor = 1L << RuntimePlatform.OSXEditor, OSXPlayer = 1L << RuntimePlatform.OSXPlayer, WindowsPlayer = 1L << RuntimePlatform.WindowsPlayer, OSXWebPlayer = 1L << 3, OSXDashboardPlayer = 1L << 4, WindowsWebPlayer = 1L << 5, WindowsEditor = 1L << RuntimePlatform.WindowsEditor, IPhonePlayer = 1L << RuntimePlatform.IPhonePlayer, PS3 = 1L << RuntimePlatform.PS3, XBOX360 = 1L << RuntimePlatform.XBOX360, Android = 1L << RuntimePlatform.Android, NaCl = 1L << RuntimePlatform.NaCl, LinuxPlayer = 1L << RuntimePlatform.LinuxPlayer, FlashPlayer = 1L << RuntimePlatform.FlashPlayer, LinuxEditor = 1L << RuntimePlatform.LinuxEditor, WebGLPlayer = 1L << RuntimePlatform.WebGLPlayer, MetroPlayerX86 = 1L << RuntimePlatform.MetroPlayerX86, WSAPlayerX86 = 1L << RuntimePlatform.WSAPlayerX86, MetroPlayerX64 = 1L << RuntimePlatform.MetroPlayerX64, WSAPlayerX64 = 1L << RuntimePlatform.WSAPlayerX64, MetroPlayerARM = 1L << RuntimePlatform.MetroPlayerARM, WSAPlayerARM = 1L << RuntimePlatform.WSAPlayerARM, WP8Player = 1L << RuntimePlatform.WP8Player, BlackBerryPlayer = 1L << RuntimePlatform.BlackBerryPlayer, TizenPlayer = 1L << RuntimePlatform.TizenPlayer, PSP2 = 1L << RuntimePlatform.PSP2, PS4 = 1L << RuntimePlatform.PS4, PSM = 1L << RuntimePlatform.PSM, XboxOne = 1L << RuntimePlatform.XboxOne, SamsungTVPlayer = 1L << RuntimePlatform.SamsungTVPlayer, WiiU = 1L << RuntimePlatform.WiiU, tvOS = 1L << RuntimePlatform.tvOS, Switch = 1L << RuntimePlatform.Switch, Lumin = 1L << RuntimePlatform.Lumin, #if UNITY_2019_3_OR_NEWER Stadia = 1L << RuntimePlatform.Stadia, #endif #pragma warning restore 612, 618 None = 0, AllPlatforms = ~0, EditorPlatforms = LinuxEditor | OSXEditor | WindowsEditor, BuildPlatforms = AllPlatforms ^ EditorPlatforms, MobilePlatforms = IPhonePlayer | Android | WP8Player } public static class PlatformExtensions { /// Converts Unity's RuntimePlatform to QC's bitwise Platform. public static Platform ToPlatform(this RuntimePlatform pl) { int val = (int)pl; long bitwise = 1L << val; return (Platform)bitwise; } } }