using UnityEngine; using ERAGANX.Parallax2D.Runtime; using ERAGANX.Parallax2D.Environment; public sealed class GuideTransition : MonoBehaviour { public Parallax2DTransition transition; public Parallax2DEnvironmentPreset nightPreset; public Parallax2DTimeController clock; private bool ownsClock; private bool savedAutomatic; public void BeginNight() { if (!transition || !nightPreset || !clock) return; if (!ownsClock) savedAutomatic = clock.automatic; ownsClock = true; clock.automatic = false; transition.TransitionTo(nightPreset, 3f, applyDiscreteSettingsOnComplete: true); } void Update() { if (ownsClock && (!transition || !transition.IsTransitioning)) RestoreClock(); } public void StopTransition() { if (transition) transition.Cancel(); RestoreClock(); } void RestoreClock() { if (ownsClock && clock) clock.automatic = savedAutomatic; ownsClock = false; } void OnDisable() { if (ownsClock) StopTransition(); } }