/// <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); if (!HasLoaderEnabledForTarget(report.summary.platformGroup)) { 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)); } } }
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); }
internal bool Internal_ShouldIncludeRemotingPluginsInBuild(string path, BuildTargetGroup buildTargetGroup) { WindowsMRBuildSettings buildSettings = BuildSettingsForBuildTargetGroup(buildTargetGroup) as WindowsMRBuildSettings; if (buildSettings == null) { return(false); } return(buildSettings.HolographicRemoting); }
/// <summary>Get the XR Plugin build settings for the specific build platform.</summary> /// <param name="buildTargetGroup">The build platform we want to get settings for.</param> /// <returns>An instance of WindowsMRBuildSettings, or null if there are none for the current build platform.</returns> public WindowsMRBuildSettings BuildSettingsForBuildTargetGroup(BuildTargetGroup buildTargetGroup) { WindowsMRPackageSettings settings = PackageSettingsForBuildTargetGroup(buildTargetGroup); if (settings != null) { WindowsMRBuildSettings targetSettings = settings.GetBuildSettingsForBuildTargetGroup(buildTargetGroup); return(targetSettings); } return(null); }
public bool ShouldIncludeRemotingPluginsInBuild(string path) { BuildTargetGroup buildTargetGroup = BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget); WindowsMRBuildSettings buildSettings = BuildSettingsForBuildTargetGroup(buildTargetGroup) 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; } bool loaderFound = false; for (int i = 0; i < settings.Manager.loaders.Count; ++i) { if (settings.Manager.loaders[i] as WindowsMRLoader != null) { loaderFound = true; break; } } if (!loaderFound) { 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)); } } }
/// <summary>Get the build settings instance for the build target.</summary> /// <param name="buildTargetGroup">The build platform we wish to get settings for.</param> /// <returns>An instance of WindowsMRBuildSettings if found, else null.</returns> public WindowsMRBuildSettings GetBuildSettingsForBuildTargetGroup(BuildTargetGroup buildTargetGroup) { WindowsMRBuildSettings ret = null; BuildSettings.TryGetValue(buildTargetGroup, out ret); if (ret == null) { ret = ScriptableObject.CreateInstance <WindowsMRBuildSettings>() as WindowsMRBuildSettings; if (BuildSettings.ContainsKey(buildTargetGroup)) { Debug.LogWarning("We think you have a settings object for the current build target but we can't find it. We are recreating the settings instance."); BuildSettings[buildTargetGroup] = ret; } else { BuildSettings.Add(buildTargetGroup, ret); } AssetDatabase.AddObjectToAsset(ret, this); } return(ret); }
/// <summary>OnPostprocessBuild override to provide XR Plugin specific build actions.</summary> /// <param name="report">The build report.</param> public override void OnPostprocessBuild(BuildReport report) { if (!IsCurrentBuildTargetVaild(report)) { return; } if (!HasLoaderEnabledForTarget(report.summary.platformGroup)) { return; } base.OnPostprocessBuild(report); BootConfig bootConfig = new BootConfig(report); bootConfig.ReadBootConfg(); bootConfig.SetValueForKey(k_VrEnabled, "1", true); bootConfig.SetValueForKey(k_WmrLibrary, k_WmrLibraryName, true); if (report.summary.platformGroup == BuildTargetGroup.WSA) { bootConfig.SetValueForKey(k_EarlyBootHolographic, "1", true); bool usePrimaryWindow = true; WindowsMRBuildSettings buildSettings = BuildSettingsForBuildTargetGroup(report.summary.platformGroup); if (buildSettings != null) { usePrimaryWindow = buildSettings.UsePrimaryWindowForDisplay; } bootConfig.SetValueForKey(k_ForcePrimaryWindowHolographic, usePrimaryWindow ? "1" : "0", true); } bootConfig.WriteBootConfig(); }
/// <summary>OnPreprocessBuild override to provide XR Plugin specific build actions.</summary> /// <param name="report">The build report.</param> public override void OnPreprocessBuild(BuildReport report) { if (IsCurrentBuildTargetVaild(report) && HasLoaderEnabledForTarget(report.summary.platformGroup)) { base.OnPreprocessBuild(report); BootConfig bootConfig = new BootConfig(report); bootConfig.ReadBootConfg(); bootConfig.SetValueForKey(k_VrEnabled, "1", true); bootConfig.SetValueForKey(k_WmrLibrary, k_WmrLibraryName, true); if (report.summary.platformGroup == BuildTargetGroup.WSA) { bootConfig.SetValueForKey(k_EarlyBootHolographic, "1", true); bool usePrimaryWindow = true; WindowsMRBuildSettings buildSettings = BuildSettingsForBuildTargetGroup(report.summary.platformGroup); if (buildSettings != null) { usePrimaryWindow = buildSettings.UsePrimaryWindowForDisplay; } bootConfig.SetValueForKey(k_ForcePrimaryWindowHolographic, usePrimaryWindow ? "1" : "0", true); } bootConfig.WriteBootConfig(); } var allPlugins = PluginImporter.GetAllImporters(); foreach (var plugin in allPlugins) { if (plugin.isNativePlugin) { foreach (var pluginName in remotingPluginNames) { if (plugin.assetPath.Contains(pluginName)) { plugin.SetIncludeInBuildDelegate((path) => { return(Internal_ShouldIncludeRemotingPluginsInBuild(path, report.summary.platformGroup)); }); break; } } foreach (var pluginName in runtimePluginNames) { if (plugin.assetPath.Contains(pluginName)) { plugin.SetIncludeInBuildDelegate((path) => { return(Internal_ShouldIncludeRuntimePluginsInBuild(path, report.summary.platformGroup)); }); break; } } if (plugin.assetPath.Contains(spatializerPluginName)) { plugin.SetIncludeInBuildDelegate(Internal_ShouldIncludeSpatializerPluginsInBuild); } } } }