namespace UnityEngine.Rendering.HighDefinition { public sealed partial class VisualEnvironment : IVersionable { /// /// The version used during the migration /// enum Version { /// Version Step Initial, /// Version Step UnitChange, /// Latest Version Count, } /// /// The migration steps for PhysicallyBasedSky /// static readonly MigrationDescription k_Migration = MigrationDescription.New( MigrationStep.New(Version.UnitChange, (VisualEnvironment env) => { // Avoids migrating twice (the pbr sky also does it if present) if (env.planetRadius.value > k_DefaultEarthRadius / 1000.0f + 1.0f) { env.planetRadius.value /= 1000.0f; env.planetCenter.value /= 1000.0f; } }) ); void Awake() { if (m_Version == Version.Count) m_Version = Version.Initial; k_Migration.Migrate(this); } [SerializeField] Version m_Version = Version.Count; Version IVersionable.version { get => m_Version; set => m_Version = value; } } }