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; }
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(); } } } } }
//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 }
//Store values in the volatile SessionState static void Init() { Installer.CheckRootFolder(); PackageVersionCheck.CheckForUpdate(); PostProcessingInstallation.CheckInstallation(); PostProcessingInstallation.FindInstallationDir(); }
//Store values in the volatile SessionState static void InitInstallation() { //Installer.CheckRootFolder(); PackageVersionCheck.CheckForUpdate(); PostProcessingInstallation.CheckPPSInstallation(); PostProcessingInstallation.FindInstallationDir(); installationVerified = true; }
//Store values in the volatile SessionState static void InitInstallation() { //Installer.CheckRootFolder(); PackageVersionCheck.CheckForUpdate(); RenderPipelineInstallation.CheckInstallation(); PostProcessingInstallation.CheckPackageInstallation(); installationVerified = true; }
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(); }
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(); }
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(); } }
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(); } } } } }
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..."); }
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); }