public void OnPreprocessBuild(BuildReport report) { SetRuntimePluginCopyDelegate(); if (report.summary.platform != BuildTarget.Android) { // Sometimes (e.g., build failure), the shader can get "stuck" in the Preloaded Assets array. // Make sure that if we are not building for Android, we remove that shader. BuildHelper.RemoveShaderFromProject(ARCoreCameraSubsystem.backgroundShaderName); return; } var generalSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget)); if (generalSettings == null) { return; } foreach (var loader in generalSettings.Manager.loaders) { if (loader is ARCoreLoader) { EnsureARCoreSupportedIsNotChecked(); EnsureGoogleARCoreIsNotPresent(); EnsureMinSdkVersion(); EnsureOnlyOpenGLES3IsUsed(); EnsureGradleIsUsed(); EnsureGradleVersionIsSupported(); BuildImageTrackingAssets(); BuildHelper.AddBackgroundShaderToProject(ARCoreCameraSubsystem.backgroundShaderName); break; } } }
public static bool OculusLoaderPresentInSettingsForBuildTarget(BuildTargetGroup btg) { var generalSettingsForBuildTarget = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(btg); if (!generalSettingsForBuildTarget) { return(false); } var settings = generalSettingsForBuildTarget.AssignedSettings; if (!settings) { return(false); } #if XR_MGMT_GTE_400 bool loaderFound = false; for (int i = 0; i < settings.activeLoaders.Count; ++i) { if (settings.activeLoaders[i] as OculusLoader != null) { loaderFound = true; break; } } return(loaderFound); #else List <XRLoader> loaders = settings.loaders; return(loaders.Exists(loader => loader is OculusLoader)); #endif }
public virtual void TearDownTest() { EditorBuildSettings.RemoveConfigObject(XRGeneralSettings.k_SettingsKey); if (!string.IsNullOrEmpty(testPathToGeneralSettings)) { AssetDatabase.DeleteAsset(testPathToGeneralSettings); } if (!string.IsNullOrEmpty(testPathToSettings)) { AssetDatabase.DeleteAsset(testPathToSettings); } xrGeneralSettings.Manager = null; UnityEngine.Object.DestroyImmediate(xrGeneralSettings); xrGeneralSettings = null; UnityEngine.Object.DestroyImmediate(testManager); testManager = null; UnityEngine.Object.DestroyImmediate(buildTargetSettings); buildTargetSettings = null; if (currentSettings != null) { EditorBuildSettings.AddConfigObject(XRGeneralSettings.k_SettingsKey, currentSettings, true); } else { EditorBuildSettings.RemoveConfigObject(XRGeneralSettings.k_SettingsKey); } AssetDatabase.DeleteAsset(Path.Combine("Assets", "Temp")); }
protected bool IsLoaderEnabledForTarget(BuildTargetGroup buildTargetGroup, string loaderTypeName) { if (buildTargetGroup != BuildTargetGroup.Standalone && buildTargetGroup != BuildTargetGroup.WSA) { return(false); } #if UNITY_EDITOR XRGeneralSettings settings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(buildTargetGroup); #else XRGeneralSettings settings = XRGeneralSettings.Instance; #endif if (settings == null || settings.Manager == null) { return(false); } var instance = TestBaseSetup.GetInstanceOfTypeWithNameFromAssetDatabase(loaderTypeName); if (instance == null || !(instance is XRLoader)) { return(false); } XRLoader loader = instance as XRLoader; return(settings.Manager.activeLoaders.Contains(loader)); }
static void OnPostProcessBuild(BuildTarget target, string pathToBuiltProject) { if (s_ScenesWithARTypes.Count > 0 && s_SessionCount == 0) { var scenes = ""; foreach (var sceneName in s_ScenesWithARTypes) { scenes += string.Format("\n\t{0}", sceneName); } Debug.LogWarningFormat( "The following scenes contain AR components but no ARSession. The ARSession component controls the AR lifecycle, so these components will not do anything at runtime. Was this intended?{0}", scenes); } var generalSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget)); if (generalSettings != null && generalSettings.Manager != null && generalSettings.Manager.activeLoaders != null) { int loaderCount = generalSettings.Manager.activeLoaders.Count; if (loaderCount <= 0 && s_SessionCount > 0) { Debug.LogWarning( "There are scenes that contain an ARSession, but no XR plug-in providers have been selected for the current platform. To make a plug-in provider available at runtime go to Project Settings > XR Plug-in Management and enable at least one for the target platform."); } } s_ScenesWithARTypes.Clear(); s_SessionCount = 0; }
private bool SetEnableLoderForTarget(BuildTargetGroup buildTargetGroup, bool enable) { if (buildTargetGroup != BuildTargetGroup.Standalone && buildTargetGroup != BuildTargetGroup.WSA) { return(false); } XRGeneralSettings settings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(buildTargetGroup); if (settings == null) { return(false); } bool ret = false; if (enable) { ret = XRPackageMetadataStore.AssignLoader(settings.Manager, typeof(WindowsMRLoader).Name, buildTargetGroup); } else { ret = XRPackageMetadataStore.RemoveLoader(settings.Manager, typeof(WindowsMRLoader).Name, buildTargetGroup); } return(ret); }
protected bool EnableLoader(string loaderTypeName, bool enable, BuildTargetGroup buildTargetGroup = BuildTargetGroup.Standalone) { #if UNITY_EDITOR XRGeneralSettings settings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(buildTargetGroup); #else XRGeneralSettings settings = XRGeneralSettings.Instance; #endif if (settings == null || settings.Manager == null) { return(false); } var instance = TestBaseSetup.GetInstanceOfTypeWithNameFromAssetDatabase(loaderTypeName); if (instance == null || !(instance is XRLoader)) { return(false); } XRLoader loader = instance as XRLoader; bool ret = false; if (enable) { ret = settings.Manager.TryAddLoader(loader); } else { ret = settings.Manager.TryRemoveLoader(loader); } return(ret); }
public bool ShouldIncludeRemotingPluginsInBuild(string path) { XRGeneralSettings generalSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget)); if (generalSettings == null) { return(false); } bool loaderFound = false; for (int i = 0; i < generalSettings.Manager.loaders.Count; ++i) { if (generalSettings.Manager.loaders[i] as WindowsMRLoader != null) { loaderFound = true; break; } } if (!loaderFound) { return(false); } WindowsMRBuildSettings buildSettings = BuildSettingsForBuildTargetGroup(BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget)) as WindowsMRBuildSettings; if (buildSettings == null) { return(false); } return(buildSettings.HolographicRemoting); }
/// <summary>OnPostprocessBuild override to provide XR Plugin specific build actions.</summary> /// <param name="report">The build report.</param> public override void OnPostprocessBuild(BuildReport report) { base.OnPostprocessBuild(report); XRGeneralSettings settings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(report.summary.platformGroup); if (settings == null) { return; } string bootConfigPath = report.summary.outputPath; if (report.summary.platformGroup == BuildTargetGroup.WSA) { bool usePrimaryWindow = true; WindowsMRBuildSettings buildSettings = BuildSettingsForBuildTargetGroup(report.summary.platformGroup); if (buildSettings != null) { usePrimaryWindow = buildSettings.UsePrimaryWindowForDisplay; } // Boot Config data path is highly specific to the platform being built. bootConfigPath = Path.Combine(bootConfigPath, PlayerSettings.productName); bootConfigPath = Path.Combine(bootConfigPath, "Data"); bootConfigPath = Path.Combine(bootConfigPath, "boot.config"); using (StreamWriter sw = File.AppendText(bootConfigPath)) { sw.WriteLine(String.Format("{0}={1}", k_ForcePrimaryWindowHolographic, usePrimaryWindow ? 1 : 0)); } } }
private bool HasLoaderEnabledForTarget(BuildTargetGroup buildTargetGroup) { if (buildTargetGroup != BuildTargetGroup.Standalone && buildTargetGroup != BuildTargetGroup.Android) { return(false); } XRGeneralSettings settings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(buildTargetGroup); if (settings == null) { return(false); } bool loaderFound = false; for (int i = 0; i < settings.Manager.activeLoaders.Count; ++i) { if (settings.Manager.activeLoaders[i] as OculusLoader != null) { loaderFound = true; break; } } return(loaderFound); }
private static void SetUpAppRemoting(BuildTargetGroup targetGroup) { Debug.Log($"Setting up app remoting for {targetGroup}"); const string AppRemotingPlugin = "Microsoft.MixedReality.OpenXR.Remoting.AppRemotingPlugin"; Type appRemotingFeature = typeof(AppRemoting).Assembly.GetType(AppRemotingPlugin); if (appRemotingFeature == null) { Debug.LogError($"Could not find {AppRemotingPlugin}. Has this class been removed or renamed?"); return; } FeatureHelpers.RefreshFeatures(targetGroup); OpenXRFeature feature = OpenXRSettings.ActiveBuildTargetInstance.GetFeature(appRemotingFeature); if (feature == null) { Debug.LogError($"Could not load {AppRemotingPlugin} as an OpenXR feature. Has this class been removed or renamed?"); return; } feature.enabled = true; XRGeneralSettings settings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(targetGroup); if (settings != null) { settings.InitManagerOnStart = false; } }
public static bool OculusLoaderPresentInSettingsForBuildTarget(BuildTargetGroup btg) { var generalSettingsForBuildTarget = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(btg); if (!generalSettingsForBuildTarget) { return(false); } var settings = generalSettingsForBuildTarget.AssignedSettings; if (!settings) { return(false); } bool loaderFound = false; for (int i = 0; i < settings.activeLoaders.Count; ++i) { if (settings.activeLoaders[i] as OculusLoader != null) { loaderFound = true; break; } } return(loaderFound); }
public void OnPreprocessBuild(BuildReport report) { SetRuntimePluginCopyDelegate(); if (report.summary.platform != BuildTarget.Android) { return; } XRGeneralSettings generalSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget)); if (generalSettings == null) { return; } foreach (var loader in generalSettings.Manager.loaders) { if (loader is ARCoreLoader) { EnsureARCoreSupportedIsNotChecked(); EnsureGoogleARCoreIsNotPresent(); EnsureMinSdkVersion(); EnsureOnlyOpenGLES3IsUsed(); EnsureGradleIsUsed(); BuildImageTrackingAssets(); BuildHelper.AddBackgroundShaderToProject(ARCoreCameraSubsystem.backgroundShaderName); break; } } }
/// <summary> /// Applies any preprocessing necessary to setup assets for a given build target. /// </summary> /// <remarks> /// This method instantiates all classes that derive from <see cref="IPreprocessBuild"/> and executes their /// <see cref="IPreprocessBuild.OnPreprocessBuild"/> methods. /// /// You should call this before building asset bundles (see /// [BuildPipeline.BuildAssetBundles](xref:UnityEditor.BuildPipeline.BuildAssetBundles(System.String,UnityEditor.BuildAssetBundleOptions,UnityEditor.BuildTarget))) /// in order to ensure that all AR assets have been correctly configured. /// </remarks> /// <param name="buildTarget">The build target for which assets should be preprocessed.</param> public static void PreprocessBuild(BuildTarget buildTarget) { // Get the list of active loaders for the given BuildTarget var settings = XRGeneralSettingsPerBuildTarget .XRGeneralSettingsForBuildTarget(BuildPipeline.GetBuildTargetGroup(buildTarget)); var activeLoaders = settings && settings.Manager ? settings.Manager.activeLoaders : null; if (activeLoaders == null) { return; } // Clear the data store before asking packages to populate it. XRReferenceImageLibraryBuildProcessor.ClearDataStore(); // Find and create all IPreprocessBuild objects var interfaces = AppDomain.CurrentDomain .GetAssemblies() .SelectMany(x => x.GetTypes()) .Where(type => Array.Exists(type.GetInterfaces(), i => i == typeof(IPreprocessBuild))) .Select(type => Activator.CreateInstance(type) as IPreprocessBuild) .Where(buildPreprocessor => buildPreprocessor != null) .ToList(); // Sort by callback order interfaces.Sort((a, b) => a.callbackOrder.CompareTo(b.callbackOrder)); // Invoke OnPreprocessBuild on each one var eventArgs = new PreprocessBuildEventArgs(buildTarget, activeLoaders); foreach (var @interface in interfaces) { @interface.OnPreprocessBuild(eventArgs); } }
private void EnsureArgumentsNotNull(XRGeneralSettings xrGeneralSettings, XRGeneralSettingsPerBuildTarget buildTargetSettings, XRManagerSettings managerSettings) { EnsureArgumentNotNull(xrGeneralSettings); EnsureArgumentNotNull(buildTargetSettings); EnsureArgumentNotNull(managerSettings); }
private void SetupLoader <T>(XRGeneralSettings xrGeneralSettings, XRGeneralSettingsPerBuildTarget buildTargetSettings, XRManagerSettings managerSettings) where T : XRLoader { var loader = ScriptableObject.CreateInstance <T>(); if (loader == null) { throw new ArgumentNullException( $"Tried to instantiate an instance of {typeof(T).Name}, but it is null."); } loader.name = loader.GetType().Name; xrGeneralSettings.Manager.loaders.Add(loader); buildTargetSettings.SetSettingsForBuildTarget(EditorUserBuildSettings.selectedBuildTargetGroup, xrGeneralSettings); EnsureXrGeneralSettingsPathExists(xrsdkTestXrSettingsPath); AssetDatabase.CreateAsset(buildTargetSettings, xrsdkTestXrSettingsPath); AssetDatabase.AddObjectToAsset(xrGeneralSettings, xrsdkTestXrSettingsPath); AssetDatabase.AddObjectToAsset(managerSettings, xrsdkTestXrSettingsPath); AssetDatabase.AddObjectToAsset(loader, xrsdkTestXrSettingsPath); }
public static void SetXRLoaderEnabled(string loaderClassName, BuildTargetGroup buildTargetGroup, bool enabled) { #if VIU_XR_GENERAL_SETTINGS MethodInfo method = Type.GetType("UnityEditor.XR.Management.XRSettingsManager, Unity.XR.Management.Editor") .GetProperty("currentSettings", BindingFlags.NonPublic | BindingFlags.Static).GetGetMethod(true); XRGeneralSettingsPerBuildTarget generalSettings = (XRGeneralSettingsPerBuildTarget)method.Invoke(null, new object[] {}); XRGeneralSettings xrSettings = generalSettings.SettingsForBuildTarget(buildTargetGroup); if (xrSettings == null) { xrSettings = ScriptableObject.CreateInstance <XRGeneralSettings>() as XRGeneralSettings; generalSettings.SetSettingsForBuildTarget(buildTargetGroup, xrSettings); xrSettings.name = $"{buildTargetGroup.ToString()} Settings"; AssetDatabase.AddObjectToAsset(xrSettings, AssetDatabase.GetAssetOrScenePath(generalSettings)); } var serializedSettingsObject = new SerializedObject(xrSettings); SerializedProperty loaderProp = serializedSettingsObject.FindProperty("m_LoaderManagerInstance"); if (loaderProp.objectReferenceValue == null) { var xrManagerSettings = ScriptableObject.CreateInstance <XRManagerSettings>() as XRManagerSettings; xrManagerSettings.name = $"{buildTargetGroup.ToString()} Providers"; AssetDatabase.AddObjectToAsset(xrManagerSettings, AssetDatabase.GetAssetOrScenePath(generalSettings)); loaderProp.objectReferenceValue = xrManagerSettings; serializedSettingsObject.ApplyModifiedProperties(); } if (enabled) { #if VIU_XR_PACKAGE_METADATA_STORE if (!UnityEditor.XR.Management.Metadata.XRPackageMetadataStore.AssignLoader(xrSettings.AssignedSettings, loaderClassName, buildTargetGroup)) { Debug.LogWarning("Failed to assign XR loader: " + loaderClassName); } #else if (!AssignLoader(xrSettings.AssignedSettings, loaderClassName)) { Debug.LogWarning("Failed to assign XR loader: " + loaderClassName); } #endif } else { #if VIU_XR_PACKAGE_METADATA_STORE if (!UnityEditor.XR.Management.Metadata.XRPackageMetadataStore.RemoveLoader(xrSettings.AssignedSettings, loaderClassName, buildTargetGroup)) { Debug.LogWarning("Failed to remove XR loader: " + loaderClassName); } #else if (!RemoveLoader(xrSettings.AssignedSettings, loaderClassName)) { Debug.LogWarning("Failed to remove XR loader: " + loaderClassName); } #endif } #endif }
public void Verify_iOS_XR_Settings() { var generalSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(BuildTargetGroup.iOS); var settingManager = generalSettings.Manager; Assert.AreEqual(true, generalSettings.InitManagerOnStart); Assert.AreEqual(1, settingManager.activeLoaders.Count()); Assert.AreEqual("AR Kit Loader", settingManager.activeLoaders[0].name); }
public override void PerBuildExecute(BuildReleaseType releaseType, BuildPlatform platform, BuildArchitecture architecture, BuildDistribution distribution, DateTime buildTime, ref BuildOptions options, string configKey, string buildPath) { XRGeneralSettings generalSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(platform.targetGroup); XRManagerSettings settingsManager = generalSettings.Manager; generalSettings.InitManagerOnStart = InitializeXROnStartup; settingsManager.loaders = XRPlugins; }
public void OnPreprocessBuild(BuildReport report) { if (!report.summary.platform.Equals(BuildTarget.StandaloneWindows) && !report.summary.platform.Equals(BuildTarget.StandaloneWindows64)) { var generalSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(BuildTargetGroup.Standalone); var settingManager = generalSettings.Manager; settingManager.loaders.Clear(); } }
public virtual void TearDownTest() { #if UNITY_EDITOR EditorBuildSettings.RemoveConfigObject(XRGeneralSettings.k_SettingsKey); buildTargetSettings = null; testManager = null; xrGeneralSettings = null; AssetDatabase.DeleteAsset(Path.Combine("Assets", "Temp")); #endif }
public virtual void SetupTest() { #if UNITY_EDITOR var windowTypes = TypeCache.GetTypesDerivedFrom(typeof(EditorWindow)); foreach (var wt in windowTypes) { if (wt.Name.Contains("ProjectSettingsWindow")) { var projectSettingsWindow = EditorWindow.GetWindow(wt); if (projectSettingsWindow != null) { projectSettingsWindow.Close(); } } } testPathToGeneralSettings = GetAssetPathForComponents(s_TestGeneralSettings); testPathToGeneralSettings = Path.Combine(testPathToGeneralSettings, "Test_XRGeneralSettingsPerBuildTarget.asset"); if (File.Exists(testPathToGeneralSettings)) { AssetDatabase.DeleteAsset(testPathToGeneralSettings); } buildTargetSettings = ScriptableObject.CreateInstance <XRGeneralSettingsPerBuildTarget>(); AssetDatabase.CreateAsset(buildTargetSettings, testPathToGeneralSettings); testPathToSettings = GetAssetPathForComponents(s_TempSettingsPath); testPathToSettings = Path.Combine(testPathToSettings, "Test_XRGeneralSettings.asset"); if (File.Exists(testPathToSettings)) { AssetDatabase.DeleteAsset(testPathToSettings); } testManager = ScriptableObject.CreateInstance <XRManagerSettings>(); xrGeneralSettings = ScriptableObject.CreateInstance <XRGeneralSettings>() as XRGeneralSettings; XRGeneralSettings.Instance = xrGeneralSettings; xrGeneralSettings.Manager = testManager; buildTargetSettings.SetSettingsForBuildTarget(BuildTargetGroup.Standalone, xrGeneralSettings); AssetDatabase.CreateAsset(xrGeneralSettings, testPathToSettings); AssetDatabase.AddObjectToAsset(testManager, xrGeneralSettings); AssetDatabase.SaveAssets(); EditorBuildSettings.AddConfigObject(XRGeneralSettings.k_SettingsKey, buildTargetSettings, true); #endif }
public static bool HasLoader(BuildTargetGroup targetGroup, System.Type loader) { var settings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(targetGroup); if (settings) { #pragma warning disable CS0618 return(settings.Manager.loaders.Any(loader.IsInstanceOfType)); #pragma warning restore CS0618 } return(false); }
public void ValidateLoaderTest() { if (RuntimeSettings.reuseTestsForXR) { InjectMockHMD.SetupLoader(); var buildTargetSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(BuildTargetGroup.Standalone); Assert.That(buildTargetSettings != null, "Unable to read for XR settings for build target!"); Assert.AreEqual(1, buildTargetSettings.AssignedSettings.loaders.Count, "There should be exactly one XR loader!"); Assert.That(buildTargetSettings.InitManagerOnStart, "XR loader is not set to init on start!"); Assert.AreEqual("Mock HMD Loader", buildTargetSettings.AssignedSettings.loaders[0].name, "Invalid XR loader found!"); } }
public void UpdateConfig() { EditorUserBuildSettings.development = DevelopmentBuild; AppConfig.IsDebug = DevelopmentBuild; AppConfig.IsHotfix = IsHotfix; AppConfig.IsLoadAB = IsLoadAB; AppConfig.IsProServer = IsProServer; AppConfig.RunXLua = RunXLuaScripts; AppConfig.AppFrameRate = AppFrameRate; AppConfig.TargetPackage = ApkTarget; EditorUtility.SetDirty(AppConfig); if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.Android) { EditorUserBuildSettings.exportAsGoogleAndroidProject = NativeApp; XRGeneralSettings androidXRSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(BuildTargetGroup.Android); if (androidXRSettings == null) { var assignedSettings = ScriptableObject.CreateInstance <XRManagerSettings>() as XRManagerSettings; androidXRSettings.AssignedSettings = assignedSettings; EditorUtility.SetDirty(androidXRSettings); // Make sure this gets picked up for serialization later. } //取消当前选择的 IReadOnlyList <XRLoader> list = androidXRSettings.Manager.activeLoaders; int hasCount = list.Count; //Debug.Log(hasCount); for (int i = 0; i < hasCount; i++) { string nameTemp = list[0].GetType().FullName; Debug.Log("disable xr plug:" + nameTemp); XRPackageMetadataStore.RemoveLoader(androidXRSettings.Manager, nameTemp, BuildTargetGroup.Android); } androidXRSettings.InitManagerOnStart = false; if (ApkTarget == TargetPackage.Pico) { androidXRSettings.InitManagerOnStart = true; //启用 string loaderTypeName = "Unity.XR.PXR.PXR_Loader"; XRPackageMetadataStore.AssignLoader(androidXRSettings.Manager, loaderTypeName, BuildTargetGroup.Android); } EditorUtility.SetDirty(androidXRSettings); // Make sure this gets picked up for serialization later. } AssetDatabase.Refresh(); }
public void ValidateLoaderTest() { if (RuntimeSettings.reuseTestsForXR) { InjectMockHMD.SetupLoader(); var buildTargetSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(BuildTargetGroup.Standalone); // XRTODO: remove pragmas once MockHMD package is published with new dependencies to xr.sdk.management and replace loaders with activeLoaders #pragma warning disable CS0618 Assert.That(buildTargetSettings != null, "Unable to read for XR settings for build target!"); Assert.AreEqual(1, buildTargetSettings.AssignedSettings.loaders.Count, "There should be exactly one XR loader!"); Assert.That(buildTargetSettings.InitManagerOnStart, "XR loader is not set to init on start!"); Assert.AreEqual("Mock HMD Loader", buildTargetSettings.AssignedSettings.loaders[0].name, "Invalid XR loader found!"); #pragma warning restore CS0618 } }
public void UpdateGeneralSettings_ToPerBuildTargetSettings() { bool success = XRGeneralSettingsUpgrade.UpgradeSettingsToPerBuildTarget(testPathToSettings); Assert.IsTrue(success); XRGeneralSettingsPerBuildTarget pbtgs = null; pbtgs = AssetDatabase.LoadAssetAtPath(testPathToSettings, typeof(XRGeneralSettingsPerBuildTarget)) as XRGeneralSettingsPerBuildTarget; Assert.IsNotNull(pbtgs); var settings = pbtgs.SettingsForBuildTarget(EditorUserBuildSettings.selectedBuildTargetGroup); Assert.IsNotNull(settings); Assert.IsNotNull(settings.Manager); Assert.AreEqual(testManager, settings.Manager); }
internal static bool IsLoaderAssigned(string loaderTypeName, BuildTargetGroup buildTargetGroup) { var settings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(buildTargetGroup); if (settings == null) { return(false); } foreach (var loader in settings.AssignedSettings.loaders) { if (loader != null && String.Compare(loader.GetType().FullName, loaderTypeName) == 0) { return(true); } } return(false); }
public bool ShouldIncludeRuntimePluginsInBuild(string path) { XRGeneralSettings generalSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget)); if (generalSettings == null) { return(false); } foreach (var loader in generalSettings.Manager.loaders) { if (loader is OpenVRLoader) { return(true); } } return(false); }
public static bool LoaderPresentInSettingsForBuildTarget(BuildTargetGroup btg) { var generalSettingsForBuildTarget = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(btg); if (!generalSettingsForBuildTarget) { return(false); } var settings = generalSettingsForBuildTarget.AssignedSettings; if (!settings) { return(false); } List <XRLoader> loaders = settings.loaders; return(loaders.Exists(loader => loader is PXR_Loader)); }