using System; namespace UnityEngine.Rendering { public partial class ProbeVolume : MonoBehaviour { enum Version { Initial, LocalMode, InvertOverrideLevels, Count } [SerializeField] Version version = Version.Initial; void Awake() { if (version == Version.Count) return; if (version == Version.LocalMode - 1) { #pragma warning disable 618 // Type or member is obsolete mode = globalVolume ? Mode.Scene : Mode.Local; #pragma warning restore 618 version++; } if (version == Version.InvertOverrideLevels - 1) { #if UNITY_EDITOR ProbeVolumeBakingSet.SyncBakingSets(); var bakingSet = ProbeVolumeBakingSet.GetBakingSetForScene(gameObject.scene); if (bakingSet != null) { int maxSubdiv = bakingSet != null ? bakingSet.simplificationLevels : 5; int tmpLowest = lowestSubdivLevelOverride; lowestSubdivLevelOverride = Mathf.Clamp(maxSubdiv - highestSubdivLevelOverride, 0, 5); highestSubdivLevelOverride = Mathf.Clamp(maxSubdiv - tmpLowest, 0, 5); } #endif version++; } #if UNITY_EDITOR UnityEditor.EditorUtility.SetDirty(this); #endif } /// <summary> /// If is a global bolume /// </summary> [SerializeField, Obsolete("Use mode instead")] public bool globalVolume = false; } }