/// <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));
                }
            }
        }
Exemple #2
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);
        }
Exemple #6
0
        /// <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);
        }
Exemple #8
0
        /// <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);
                    }
                }
            }
        }