public static void Init() { // troyhack //PostFXManager.Instance.Init(Camera.main, PerformanceInfo.ePOSTFX_QUALITY.High,new PerformanceInfo.ePOSTFX[] { PerformanceInfo.ePOSTFX.Bloom, PerformanceInfo.ePOSTFX.Vignette, PerformanceInfo.ePOSTFX.Warp }); #if UNITY_EDITOR if (Camera.main == null) { GameObject go = new GameObject("MainCamera"); Camera main_camera = go.AddComponent <Camera>(); main_camera.tag = "MainCamera"; } #endif PerformanceInfo.ePOSTFX[] postFX = (PerformanceInfo.ePOSTFX[])System.Enum.GetValues(typeof(PerformanceInfo.ePOSTFX)); postFX = postFX.Where(p => p != PerformanceInfo.ePOSTFX.FakeVignette).ToArray(); PostFXManager.Instance.Init(Camera.main, PerformanceInfo.ePOSTFX_QUALITY.High, postFX); PostFXManagerTrigger trigger = Camera.main.gameObject.GetComponent <PostFXManagerTrigger>(); if (trigger == null) { Camera.main.gameObject.AddComponent <PostFXManagerTrigger>(); } RenderSettings.forceUpdate = true; RenderSettings renderSettings = Object.FindObjectOfType <RenderSettings>(); if (renderSettings == null) { GameObject go = new GameObject("RenderSettings"); renderSettings = go.AddComponent <RenderSettings>(); } }
public override void OnInspectorGUI() { base.OnInspectorGUI(); PostFXInit postInit = (PostFXInit)target; if (!Application.isPlaying && GUILayout.Button("Active")) { Camera camera = null; if (SceneView.lastActiveSceneView != null) { camera = SceneView.lastActiveSceneView.camera; } if (camera != null) { PostFXManagerTrigger trigger = camera.GetComponent <PostFXManagerTrigger>(); if (trigger == null) { trigger = camera.gameObject.AddComponent <PostFXManagerTrigger>(); } RenderSettings.forceUpdate = true; List <PerformanceInfo.ePOSTFX> fxtypes = new List <PerformanceInfo.ePOSTFX>(3); if ((postInit.fxs & PerformanceInfo.ePOSTFX.Bloom) == PerformanceInfo.ePOSTFX.Bloom) { fxtypes.Add(PerformanceInfo.ePOSTFX.Bloom); } if ((postInit.fxs & PerformanceInfo.ePOSTFX.Vignette) == PerformanceInfo.ePOSTFX.Vignette) { fxtypes.Add(PerformanceInfo.ePOSTFX.Vignette); } if ((postInit.fxs & PerformanceInfo.ePOSTFX.Vignette2) == PerformanceInfo.ePOSTFX.Vignette2) { fxtypes.Add(PerformanceInfo.ePOSTFX.Vignette2); } if ((postInit.fxs & PerformanceInfo.ePOSTFX.ColorGrade) == PerformanceInfo.ePOSTFX.ColorGrade) { fxtypes.Add(PerformanceInfo.ePOSTFX.ColorGrade); } if ((postInit.fxs & PerformanceInfo.ePOSTFX.ToneMap) == PerformanceInfo.ePOSTFX.ToneMap) { fxtypes.Add(PerformanceInfo.ePOSTFX.ToneMap); } if ((postInit.fxs & PerformanceInfo.ePOSTFX.Warp) == PerformanceInfo.ePOSTFX.Warp) { fxtypes.Add(PerformanceInfo.ePOSTFX.Warp); } if ((postInit.fxs & PerformanceInfo.ePOSTFX.RadialBlur) == PerformanceInfo.ePOSTFX.RadialBlur) { fxtypes.Add(PerformanceInfo.ePOSTFX.RadialBlur); } PostFXManager.Instance.Init(camera, PerformanceInfo.ePOSTFX_QUALITY.High, fxtypes.ToArray()); } } }
public void UnRegister(RenderSettings renderSettings) { if (Ignore(renderSettings)) { return; } if (_renderSettings.ContainsKey(renderSettings.name)) { _renderSettings.Remove(renderSettings.name); } if (defaultSettings == renderSettings.name) { defaultSettings = string.Empty; } if (RemoveActiveItems(renderSettings.name)) { ActivateTopItem(); } #if UNITY_EDITOR if (!Application.isPlaying) { if (_activeRenderSettings.Count == 0 && _renderSettings.Count == 0) { DestroyImmediate(_Instance.gameObject); RenderSettings.forceUpdate = false; var cameras = UnityEditor.SceneView.GetAllSceneCameras(); foreach (var camera in cameras) { PostFXManagerTrigger trigger = camera.GetComponent <PostFXManagerTrigger>(); if (trigger != null) { DestroyImmediate(trigger); } } //PostFXManager.DestroyInstance(); //PlanarReflectionManager.DestroyInstance(); } } #endif }
public static void DeregisterAll() { RenderGlobals.SetBloom(0, 2, 2, 1, Color.white); RenderGlobals.SetVignette(0, 0.3f, Color.white); RenderGlobals.SetWarp(0, new Vector2(0.05f, 0.05f)); if (PostFXManager.Instance != null && Camera.main != null) { PostFXManager.Instance.Init(Camera.main, PerformanceInfo.ePOSTFX_QUALITY.Off, null); } if (Camera.main != null) { PostFXManagerTrigger trigger = Camera.main.gameObject.GetComponent <PostFXManagerTrigger>(); if (trigger != null) { Object.DestroyImmediate(trigger); } } RenderSettings.forceUpdate = false; _activeTracks.Clear(); }