Esempio n. 1
0
        public static void Install()
        {
            CURRENTLY_INSTALLING = true;
            IS_INSTALLED         = false;

            //Add Layer for project olders than 2018.1
            {
                SetupLayer();
            }

            //Using URP with integrated PPS
            if (RenderPipelineInstallation.CurrentPipeline == RenderPipelineInstallation.Pipeline.URP && PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.Integrated)
            {
                RenderPipelineInstallation.UnpackURPFiles();
            }
            //ShaderConfigurator.ConfigureForCurrentPipeline();

            PostProcessingInstallation.ConfigureURPIfNeeded();

            //If option is chosen, unpack demo content
            {
                if (Settings.installSampleContent)
                {
                    Demo.InstallSamples();
                }
                if (Settings.installDemoContent)
                {
                    Demo.InstallScenes();
                }
            }

            Installer.Log.Write("<b>Installation complete</b>");
            CURRENTLY_INSTALLING = false;
            IS_INSTALLED         = true;
        }
Esempio n. 2
0
            public static void DrawPostProcessing()
            {
                //Post Processing Stack
                string ppsLabel = "Post Processing Stack v2";
                string ppsText  = (PostProcessingInstallation.IS_INSTALLED) ? "Installed (Package Manager)" : "Not installed";

                ppsText = (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.Integrated) ? "Integrated" : ppsText;
                SCPE_GUI.Status ppsStatus = (PostProcessingInstallation.IS_INSTALLED) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Error;

                ppsLabel = "Post Processing";
                //Append current version
                if (PostProcessingInstallation.IS_INSTALLED)
                {
                    ppsLabel += " (" + PostProcessingInstallation.PPS_VERSION + ")";
                }

                //Outdated version
                ppsText   = (PostProcessingInstallation.PPSVersionStatus == PostProcessingInstallation.VersionStatus.Outdated) ? "Outdated" : ppsText;
                ppsStatus = (PostProcessingInstallation.PPSVersionStatus == PostProcessingInstallation.VersionStatus.Outdated) ? SCPE_GUI.Status.Warning : ppsStatus;

                SCPE_GUI.DrawStatusBox(new GUIContent(ppsLabel, EditorGUIUtility.IconContent("Camera Gizmo").image), ppsText, ppsStatus);

                //Warning in 2019.3 and 2019.4
#if UNITY_2019_3_OR_NEWER && !UNITY_2020_1_OR_NEWER
                if (RenderPipelineInstallation.CurrentPipeline == RenderPipelineInstallation.Pipeline.URP && PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.PackageManager)
                {
                    EditorGUILayout.HelpBox("Support for the Post Processing Stack with URP will no longer be possible in Unity 2020.1!", MessageType.Warning);
                }
#endif
                if (RenderPipelineInstallation.CurrentPipeline == RenderPipelineInstallation.Pipeline.URP && (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.Integrated))
                {
                    EditorGUILayout.HelpBox("URP is installed, effects will use integrated post processing system", MessageType.None);
                }

                //Built-in render pipeline and LWRP require PPS
                if (PostProcessingInstallation.IS_INSTALLED == false && RenderPipelineInstallation.CurrentPipeline != RenderPipelineInstallation.Pipeline.URP)
                {
                    using (new EditorGUILayout.HorizontalScope())
                    {
                        if (SCPE_GUI.DrawActionBox("Install " + PostProcessingInstallation.LATEST_COMPATIBLE_VERSION, EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                        {
                            PostProcessingInstallation.InstallPackage();
                        }
                    }
                } //End if-installed
                //When installed but outdated
                else
                {
                    using (new EditorGUILayout.HorizontalScope())
                    {
                        if (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.PackageManager && PostProcessingInstallation.PPSVersionStatus == PostProcessingInstallation.VersionStatus.Outdated)
                        {
                            if (SCPE_GUI.DrawActionBox("Update to " + PostProcessingInstallation.LATEST_COMPATIBLE_VERSION, EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                            {
                                PostProcessingInstallation.InstallPackage();
                            }
                        }
                    }
                }
            }
Esempio n. 3
0
        //Check if SC Post Effects folder is placed inside PostProcessing folder
        public static void CheckRootFolder()
        {
            //For the package manager PPS version, asset folder can sit anywhere
            if (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.PackageManager)
            {
                IS_CORRECT_BASE_FOLDER = true;
                return;
            }

            SCPE.PACKAGE_ROOT_FOLDER = SCPE.GetRootFolder();

            PostProcessingInstallation.FindInstallationDir();

            //When already installed, root folder may be in PPS installation dir
            if (PostProcessingInstallation.IS_INSTALLED)
            {
                IS_CORRECT_BASE_FOLDER = (SCPE.PACKAGE_PARENT_FOLDER == PostProcessingInstallation.PPS_INSTALLATION_DIR);
                //Debug.Log(SCPE.PACKAGE_PARENT_FOLDER + " == " + PostProcessingInstallation.PPS_INSTALLATION_DIR);
            }
            //When not installed, installation will be in "Assets/PostProcessing/"
            else
            {
                IS_CORRECT_BASE_FOLDER = (SCPE.PACKAGE_PARENT_FOLDER == "Assets/PostProcessing/");
            }


#if SCPE_DEV && !PACKAGE_MANAGER
            Debug.Log("<b>Installer</b> Correct folder location: " + IS_CORRECT_BASE_FOLDER);
#endif
        }
Esempio n. 4
0
 //Store values in the volatile SessionState
 static void Init()
 {
     Installer.CheckRootFolder();
     PackageVersionCheck.CheckForUpdate();
     PostProcessingInstallation.CheckInstallation();
     PostProcessingInstallation.FindInstallationDir();
 }
Esempio n. 5
0
        //Store values in the volatile SessionState
        static void InitInstallation()
        {
            //Installer.CheckRootFolder();
            PackageVersionCheck.CheckForUpdate();
            PostProcessingInstallation.CheckPPSInstallation();
            PostProcessingInstallation.FindInstallationDir();

            installationVerified = true;
        }
Esempio n. 6
0
        //Store values in the volatile SessionState
        static void InitInstallation()
        {
            //Installer.CheckRootFolder();
            PackageVersionCheck.CheckForUpdate();
            RenderPipelineInstallation.CheckInstallation();
            PostProcessingInstallation.CheckPackageInstallation();

            installationVerified = true;
        }
Esempio n. 7
0
        public static void Initialize()
        {
            IS_INSTALLED = false;
            Log.Clear();

            PackageVersionCheck.CheckForUpdate();
            UnityVersionCheck.CheckCompatibility();
            PostProcessingInstallation.CheckInstallation();
            //PPS Installation is checked before the folder is, so the installation type has been determined
            CheckRootFolder();

            Demo.FindPackages();
        }
Esempio n. 8
0
        public static void Initialize()
        {
            IS_INSTALLED = false;
            Log.Clear();

            PackageVersionCheck.CheckForUpdate();
            UnityVersionCheck.CheckCompatibility();
            PackageManager.RetreivePackageList();

            RenderPipelineInstallation.CheckInstallation(); //Check first, in case URP is installed
            PostProcessingInstallation.CheckPackageInstallation();

            Demo.FindPackages();
        }
        public static void Initialize()
        {
            IS_INSTALLED = false;
            Log.Clear();

            PackageVersionCheck.CheckForUpdate();
            UnityVersionCheck.CheckCompatibility();
#if PACKAGE_MANAGER
            PackageManager.RetreivePackageList();
#endif
            PostProcessingInstallation.CheckPPSInstallation();
#if UNITY_2018_1_OR_NEWER
            RenderPipelineInstallation.CheckInstallation();
#endif
            //PPS Installation is checked before the folder is, so the installation type has been determined
            // CheckRootFolder();

            Demo.FindPackages();
        }
Esempio n. 10
0
            public static void Initialize()
            {
                if (EditorApplication.isPlaying)
                {
                    return;
                }

                //Package has been imported, but window may not show due to console errors
                //Force window to open after compilation is complete
                if (HAS_APPEARED == false)
                {
                    InstallerWindow.ShowWindow();
                    HAS_APPEARED = true;
                }

                //For 2018.1+, after compiling the PostProcessing package, check for installaton again
                if (PostProcessingInstallation.IS_INSTALLED == false)
                {
                    PostProcessingInstallation.CheckInstallation();
                }
            }
Esempio n. 11
0
            public static void DrawPostProcessing()
            {
                //Post Processing Stack
                string ppsLabel = "Post Processing Stack v2";
                string ppsText  = (PostProcessingInstallation.IS_INSTALLED) ? (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub) ? "Installed (GitHub)" : "Installed (Package Manager)" : "Not installed";

                SCPE_GUI.Status ppsStatus = (PostProcessingInstallation.IS_INSTALLED) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Error;

#if PACKAGE_MANAGER
                ppsLabel = "Post Processing";
                //Append current version
                if (PostProcessingInstallation.IS_INSTALLED)
                {
                    ppsLabel += " (" + PostProcessingInstallation.PPS_VERSION + ")";
                }

                //Outdated version
                ppsText   = (PostProcessingInstallation.PPSVersionStatus == PostProcessingInstallation.Version.Outdated) ? "Outdated" : ppsText;
                ppsStatus = (PostProcessingInstallation.PPSVersionStatus == PostProcessingInstallation.Version.Outdated) ? SCPE_GUI.Status.Warning : ppsStatus;
#endif
                SCPE_GUI.DrawStatusBox(new GUIContent(ppsLabel, EditorGUIUtility.IconContent("Camera Gizmo").image), ppsText, ppsStatus);

                if (PostProcessingInstallation.IS_INSTALLED == false)
                {
#if PACKAGE_MANAGER
                    PostProcessingInstallation.Config = PostProcessingInstallation.Configuration.PackageManager;

                    /* v1, no longer supporting GitHub installation in 2018.1+
                     * using (new EditorGUILayout.HorizontalScope())
                     * {
                     *  EditorGUILayout.LabelField("       Installation source", EditorStyles.label);
                     *
                     *  if (GUILayout.Button(new GUIContent("GitHub"), PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub ? SCPE_GUI.ToggleButtonLeftToggled : SCPE_GUI.ToggleButtonLeftNormal))
                     *  {
                     *      PostProcessingInstallation.Config = PostProcessingInstallation.Configuration.GitHub;
                     *  }
                     *  if (GUILayout.Button(new GUIContent("Package Manager"), PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.PackageManager ? SCPE_GUI.ToggleButtonRightToggled : SCPE_GUI.ToggleButtonRightNormal))
                     *  {
                     *      PostProcessingInstallation.Config = PostProcessingInstallation.Configuration.PackageManager;
                     *  }
                     * }
                     */
#else
                    PostProcessingInstallation.Config = PostProcessingInstallation.Configuration.GitHub;
#endif

                    using (new EditorGUILayout.HorizontalScope())
                    {
                        if (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub)
                        {
                            if (SCPE_GUI.DrawActionBox(string.IsNullOrEmpty(PostProcessingInstallation.PACKAGE_PATH) ? "Download" : "Install", EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                            {
                                //Download
                                if (PostProcessingInstallation.PACKAGE_PATH.Contains(".unitypackage") == false)
                                {
                                    //Open browser and start download
                                    Application.OpenURL(PostProcessingInstallation.PP_DOWNLOAD_URL);

                                    //While the editor is minimized at this point, prompt the file browser
                                    if (EditorUtility.DisplayDialog("Post Processing Stack download", "Once the file has been downloaded, locate the file path and install it", "Browse"))
                                    {
                                        PostProcessingInstallation.PACKAGE_PATH = EditorUtility.OpenFilePanel("Package download location", "", "unitypackage");
                                    }
                                }
                                //Install
                                else
                                {
                                    PostProcessingInstallation.InstallPackage();
                                }
                            }
                        }
                        else
                        {
                            if (SCPE_GUI.DrawActionBox("Install " + PostProcessingInstallation.LATEST_COMPATIBLE_VERSION, EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                            {
                                PostProcessingInstallation.InstallPackage();
                            }
                        }
                    }

                    EditorGUILayout.Space();

                    if (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub)
                    {
                        using (new EditorGUILayout.HorizontalScope())
                        {
                            EditorGUILayout.LabelField(new GUIContent(" Package location", EditorGUIUtility.IconContent("d_UnityLogo").image));

                            EditorGUILayout.TextField(PostProcessingInstallation.PACKAGE_PATH, SCPE_GUI.PathField, GUILayout.MaxWidth(180f));

                            if (GUILayout.Button("...", GUILayout.MaxWidth(30f)))
                            {
                                PostProcessingInstallation.PACKAGE_PATH = EditorUtility.OpenFilePanel("Package download location", "", "unitypackage");
                            }
                        }
                    }
                    else
                    {
                    }
                } //End if-installed
                //When installed but outdated
                else
                {
                    using (new EditorGUILayout.HorizontalScope())
                    {
                        if (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.PackageManager && PostProcessingInstallation.PPSVersionStatus == PostProcessingInstallation.Version.Outdated)
                        {
                            if (SCPE_GUI.DrawActionBox("Update to " + PostProcessingInstallation.LATEST_COMPATIBLE_VERSION, EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                            {
                                PostProcessingInstallation.InstallPackage();
                            }
                        }
                    }
                }
            }
Esempio n. 12
0
        public static void ConfigureShaderPaths(PostProcessingInstallation.Configuration configuration = PostProcessingInstallation.Configuration.Auto)
        {
            string packageDir = SCPE.GetRootFolder() + "/Effects";

            //Find all shaders in the package folder
            string[] GUIDs = AssetDatabase.FindAssets("*Shader t:Shader", new string[] { packageDir });


#if SCPE_DEV
            Debug.Log("<b>ConfigureShaderPaths</b> found " + GUIDs.Length + " shaders to reconfigure");
#endif

            configuration = (configuration == PostProcessingInstallation.Configuration.Auto) ? PostProcessingInstallation.CheckInstallation() : configuration;

            for (int i = 0; i < GUIDs.Length; i++)
            {
                string assetPath = AssetDatabase.GUIDToAssetPath(GUIDs[i]);

                Shader shaderFile = (Shader)AssetDatabase.LoadAssetAtPath(assetPath, typeof(Shader));
                string shaderName = shaderFile.name.Replace("Hidden/SC Post Effects/", string.Empty);

                EditorUtility.DisplayProgressBar("Configuring shaders for " + configuration + " installation...", shaderName + " (" + i + "/" + GUIDs.Length + ")", (float)i / GUIDs.Length);

                string fileContents = File.ReadAllText(assetPath);

                if (configuration == PostProcessingInstallation.Configuration.GitHub)
                {
                    fileContents = fileContents.Replace("PostProcessing", "../../../..");
                }
                else if (configuration == PostProcessingInstallation.Configuration.PackageManager)
                {
                    fileContents = fileContents.Replace("../../../..", "PostProcessing");
                }

                File.WriteAllText(assetPath, fileContents);

                AssetDatabase.ImportAsset(assetPath);
            }

            EditorUtility.ClearProgressBar();

            Installer.Log.Write("Modified shaders for " + configuration + " configuration...");
        }
Esempio n. 13
0
        private void StartScreen()
        {
            EditorGUILayout.HelpBox("\nThis wizard will guide you through the installation of the SC Post Effects package\n\nPress \"Next\" to continue...\n", MessageType.Info);

            EditorGUILayout.Space();

            EditorGUILayout.LabelField("Pre-install checks", SCPE_GUI.Header);

            EditorGUILayout.Space();

            using (new EditorGUILayout.VerticalScope(EditorStyles.textArea))
            {
                EditorGUILayout.Space();

                //Package Version
                {
                    string versionText = null;
                    versionText = (PackageVersionCheck.IS_UPDATED) ? "Latest version" : "New version available";
                    SCPE_GUI.Status versionStatus;
                    versionStatus = (PackageVersionCheck.IS_UPDATED) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Warning;

                    SCPE_GUI.DrawStatusBox(new GUIContent(SCPE.INSTALLED_VERSION, EditorGUIUtility.IconContent("cs Script Icon").image), versionText, versionStatus);
                }

                if (!PackageVersionCheck.IS_UPDATED)
                {
                    using (new EditorGUILayout.HorizontalScope())
                    {
                        if (SCPE_GUI.DrawActionBox("Update", EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                        {
                            SCPE.OpenStorePage();
                        }
                    }
                }

                //Unity Version
                {
                    string versionText = null;
                    versionText = (UnityVersionCheck.COMPATIBLE) ? "Compatible" : "Not compatible";
                    versionText = (UnityVersionCheck.UNTESTED) ? "Untested!" : versionText;
                    SCPE_GUI.Status versionStatus;
                    versionStatus = (UnityVersionCheck.COMPATIBLE) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Error;
                    versionStatus = (UnityVersionCheck.UNTESTED) ? SCPE_GUI.Status.Warning : versionStatus;

                    SCPE_GUI.DrawStatusBox(new GUIContent("Unity " + UnityVersionCheck.UnityVersion, EditorGUIUtility.IconContent("UnityLogo").image), versionText, versionStatus);
                }
                //Folder

                /*
                 * {
                 #if !PACKAGE_MANAGER
                 *  string folderText = (Installer.IS_CORRECT_BASE_FOLDER) ? "Correct location" : "Outside \"PostProcessing/\"";
                 *  SCPE_GUI.Status folderStatus = (Installer.IS_CORRECT_BASE_FOLDER) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Error;
                 *
                 *  SCPE_GUI.DrawStatusBox(new GUIContent("SC Post Effects folder", EditorGUIUtility.IconContent("FolderEmpty Icon").image), folderText, folderStatus);
                 *
                 *  if (!Installer.IS_CORRECT_BASE_FOLDER && (PostProcessingInstallation.IS_INSTALLED))
                 *  {
                 *      EditorGUILayout.HelpBox("Please move the SC Post Effects folder to where you've installed the Post Processing Stack", MessageType.Error);
                 *  }
                 #endif
                 * }
                 */
                //Color space
                {
                    string          colorText    = (UnityEditor.PlayerSettings.colorSpace == ColorSpace.Linear) ? "Linear" : "Linear is recommended";
                    SCPE_GUI.Status folderStatus = (UnityEditor.PlayerSettings.colorSpace == ColorSpace.Linear) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Warning;

                    SCPE_GUI.DrawStatusBox(new GUIContent("Color space", EditorGUIUtility.IconContent("d_PreTextureRGB").image), colorText, folderStatus);
                }

                //Post Processing Stack
                string          ppsText   = (PostProcessingInstallation.IS_INSTALLED) ? (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub) ? "Installed (GitHub)" : "Installed (Package Manager)" : "Not installed";
                SCPE_GUI.Status ppsStatus = (PostProcessingInstallation.IS_INSTALLED) ? SCPE_GUI.Status.Ok : SCPE_GUI.Status.Error;

                string ppsLabel = "Post Processing Stack v2";
#if PACKAGE_MANAGER
                ppsLabel = "Post Processing";
#endif
                SCPE_GUI.DrawStatusBox(new GUIContent(ppsLabel, EditorGUIUtility.IconContent("Camera Gizmo").image), ppsText, ppsStatus);

                if (PostProcessingInstallation.IS_INSTALLED == false)
                {
#if PACKAGE_MANAGER
                    using (new EditorGUILayout.HorizontalScope())
                    {
                        EditorGUILayout.LabelField("       Installation source", EditorStyles.label);

                        if (GUILayout.Button(new GUIContent("GitHub"), PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub ? SCPE_GUI.ToggleButtonLeftToggled : SCPE_GUI.ToggleButtonLeftNormal))
                        {
                            PostProcessingInstallation.Config = PostProcessingInstallation.Configuration.GitHub;
                        }
                        if (GUILayout.Button(new GUIContent("Package Manager"), PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.PackageManager ? SCPE_GUI.ToggleButtonRightToggled : SCPE_GUI.ToggleButtonRightNormal))
                        {
                            PostProcessingInstallation.Config = PostProcessingInstallation.Configuration.PackageManager;
                        }
                    }
#else
                    PostProcessingInstallation.Config = PostProcessingInstallation.Configuration.GitHub;
#endif

                    using (new EditorGUILayout.HorizontalScope())
                    {
                        if (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub)
                        {
                            if (SCPE_GUI.DrawActionBox(string.IsNullOrEmpty(PostProcessingInstallation.PACKAGE_PATH) ? "Download" : "Install", EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                            {
                                //Download
                                if (PostProcessingInstallation.PACKAGE_PATH.Contains(".unitypackage") == false)
                                {
                                    Application.OpenURL(PostProcessingInstallation.PP_DOWNLOAD_URL);
                                    if (EditorUtility.DisplayDialog("Post Processing Stack download", "Once the file has been downloaded, locate the file path and install it", "Browse"))
                                    {
                                        PostProcessingInstallation.PACKAGE_PATH = EditorUtility.OpenFilePanel("Package download location", "", "unitypackage");
                                    }
                                }
                                //Install
                                else
                                {
                                    PostProcessingInstallation.InstallPackage();
                                }
                            }
                        }
                        else
                        {
                            if (SCPE_GUI.DrawActionBox("Install", EditorGUIUtility.IconContent("BuildSettings.Standalone.Small").image))
                            {
                                PostProcessingInstallation.InstallPackage();
                            }
                        }
                    }

                    EditorGUILayout.Space();

                    if (PostProcessingInstallation.Config == PostProcessingInstallation.Configuration.GitHub)
                    {
                        using (new EditorGUILayout.HorizontalScope())
                        {
                            EditorGUILayout.LabelField(new GUIContent(" Package location", EditorGUIUtility.IconContent("d_UnityLogo").image));

                            EditorGUILayout.TextField(PostProcessingInstallation.PACKAGE_PATH, SCPE_GUI.PathField, GUILayout.MaxWidth(180f));

                            if (GUILayout.Button("...", GUILayout.MaxWidth(30f)))
                            {
                                PostProcessingInstallation.PACKAGE_PATH = EditorUtility.OpenFilePanel("Package download location", "", "unitypackage");
                            }
                        }
                    }
                    else
                    {
                    }
                } //End if-installed

                EditorGUILayout.Space();
            }


            //Validate for errors before allowing to continue
            hasError = !UnityVersionCheck.COMPATIBLE;
            //hasError = !Installer.IS_CORRECT_BASE_FOLDER;
            hasError = (PostProcessingInstallation.IS_INSTALLED == false);
        }