public override void PerBuildExecute(BuildReleaseType releaseType, BuildPlatform platform, BuildArchitecture architecture, BuildDistribution distribution, System.DateTime buildTime, ref BuildOptions options, string configKey, string buildPath) { // Get valid SDKs for platform string[] validSDKs = PlayerSettings.GetAvailableVirtualRealitySDKs(platform.targetGroup); // Build list of valid SDKs to set List <string> sdks = new List <string>(); foreach (SDK sdk in Sdks) { string sdkName = sdkNames[sdk]; if (Array.IndexOf(validSDKs, sdkName) != -1) { sdks.Add(sdkName); } } // Update player settings PlayerSettings.SetVirtualRealitySupported(platform.targetGroup, VRSupported); PlayerSettings.SetVirtualRealitySDKs(platform.targetGroup, sdks.ToArray()); PlayerSettings.stereoRenderingPath = StereoRenderingMode; #if SUPPORTS_OCULUS_V2_SIGNING PlayerSettings.VROculus.v2Signing = OculusV2Signing; #endif if (platform.targetGroup == BuildTargetGroup.Android) { PlayerSettings.Android.ARCoreEnabled = ARCoreSupported; } }
public static string[] getAvailableVRSdks(BuildTargetGroup targetGroup) { #if UNITY_2017_2_OR_NEWER && !UNITY_2019_3_OR_NEWER return(PlayerSettings.GetAvailableVirtualRealitySDKs(targetGroup)); #elif UNITY_2019_3_OR_NEWER return(UnityEngine.XR.XRSettings.supportedDevices); #else return(new string[0]); #endif }
/// <summary> /// Discover and set the appropriate XR Settings for the current build target. /// </summary> private static void ApplyXRSettings() { BuildTargetGroup targetGroup = EditorUserBuildSettings.selectedBuildTargetGroup; List <string> targetSDKs = new List <string>(); foreach (string sdk in PlayerSettings.GetAvailableVirtualRealitySDKs(targetGroup)) { if (sdk.Contains("OpenVR") || sdk.Contains("Windows")) { targetSDKs.Add(sdk); } } if (targetSDKs.Count != 0) { PlayerSettings.SetVirtualRealitySDKs(targetGroup, targetSDKs.ToArray()); PlayerSettings.SetVirtualRealitySupported(targetGroup, true); } }
/// <summary> /// Discover and set the appropriate XR Settings for virtual reality supported for the current build target. /// </summary> public static void ApplyXRSettings() { // Ensure compatibility with the pre-2019.3 XR architecture for customers / platforms // with legacy requirements. #pragma warning disable 0618 BuildTargetGroup targetGroup = EditorUserBuildSettings.selectedBuildTargetGroup; List <string> targetSDKs = new List <string>(); foreach (string sdk in PlayerSettings.GetAvailableVirtualRealitySDKs(targetGroup)) { if (sdk.Contains("OpenVR") || sdk.Contains("Windows")) { targetSDKs.Add(sdk); } } if (targetSDKs.Count != 0) { PlayerSettings.SetVirtualRealitySDKs(targetGroup, targetSDKs.ToArray()); PlayerSettings.SetVirtualRealitySupported(targetGroup, true); } #pragma warning restore 0618 }
public void Activate() { if (!string.IsNullOrEmpty(Spatializer)) { var hasSpatializer = AudioSettings .GetSpatializerPluginNames() .Contains(Spatializer); if (hasSpatializer) { AudioSettings.SetSpatializerPluginName(Spatializer); AudioSettingsExt.SetAmbisonicDecoderPluginName(Spatializer); } } var buildTargetGroup = GetTargetGroup(); #pragma warning disable CS0618 // Type or member is obsolete var supportedVRSDKs = PlayerSettings.GetAvailableVirtualRealitySDKs(buildTargetGroup); var vrSDKs = XRPlatforms .Distinct() .Select(x => x.ToString()) .Where(supportedVRSDKs.Contains) .ToArray(); var enableVR = vrSDKs.Any(sdk => sdk != "None"); if (enableVR != PlayerSettings.GetVirtualRealitySupported(buildTargetGroup)) { PlayerSettings.SetVirtualRealitySupported(buildTargetGroup, enableVR); if (enableVR && !vrSDKs.Matches(PlayerSettings.GetVirtualRealitySDKs(buildTargetGroup))) { PlayerSettings.SetVirtualRealitySDKs(buildTargetGroup, vrSDKs); } } #pragma warning restore CS0618 // Type or member is obsolete if (buildTargetGroup == BuildTargetGroup.WSA) { EditorUserBuildSettings.wsaBuildAndRunDeployTarget = WSABuildAndRunDeployTarget.LocalMachine; EditorUserBuildSettings.wsaUWPBuildType = WSAUWPBuildType.D3D; PlayerSettings.WSA.inputSource = PlayerSettings.WSAInputSource.IndependentInputSource; if (Enum.TryParse(WsaSubtarget, out WSASubtarget sub)) { EditorUserBuildSettings.wsaSubtarget = sub; PlayerSettings.WSA.SetCapability(PlayerSettings.WSACapability.SpatialPerception, sub == WSASubtarget.HoloLens); } } else if (buildTargetGroup == BuildTargetGroup.Android && Enum.TryParse(AndroidSdkVersion, out AndroidSdkVersions sdkVersion)) { PlayerSettings.Android.minSdkVersion = (AndroidSdkVersions)Math.Max( (int)PlayerSettings.Android.minSdkVersion, (int)sdkVersion); } else if (buildTargetGroup == BuildTargetGroup.iOS && Version.TryParse(IOSVersion, out var v) && ApplleiOS.TargetOSVersion < v) { ApplleiOS.TargetOSVersion = v; } var curDefines = Project.GetDefines(); curDefines.AddRange(GetCompilerDefines()); Project.SetDefines(curDefines); }