void ClearOverrideVolum() { overridePPState = OverridePPState.None; if (overrideVolum == null) { return; } Object.Destroy(overrideVolum.profile); Object.Destroy(overrideVolum.gameObject); }
void InitOverrideVolum() { overridePPState = OverridePPState.Init; var mainLayer = cam.GetComponent <PostProcessLayer>(); if (mainLayer == null) { return; } List <PostProcessVolume> vols = new List <PostProcessVolume>(); PostProcessManager.instance.GetActiveVolumes(mainLayer, vols, true, true); if (vols == null || vols.Count < 1) { return; } foreach (var v in vols) { if (v.sharedProfile.HasSettings <ColorGrading>()) { mainVolum = v; break; } } if (mainVolum == null) { return; } var grading = mainVolum.sharedProfile.GetSetting <ColorGrading>(); overrideVolum = new GameObject("[OverrideVolum]").AddComponent <PostProcessVolume>(); overrideVolum.gameObject.layer = mainVolum.gameObject.layer; overrideVolum.isGlobal = true; overrideVolum.priority = mainVolum.priority; overrideVolum.weight = 0f; overrideVolum.profile = CustomCopyProfile(mainVolum.sharedProfile); }