using UnityEngine; using UnityEngine.SceneManagement; public class TRIG_LEVELTRANSITION : MonoBehaviour { public int LevelToGo; [Header("Multiplier, 1 = normal | 0.5 = half speed")] [SerializeField] private float TransitionSpeed = 1f; [SerializeField] private NewMainMenuManager.MainMenuStates TargetState = NewMainMenuManager.MainMenuStates.Hypothetical; [Header("-= Audio =-")] [SerializeField] private AudioClip PlaySoundOnTransition; [SerializeField] private float SoundVolume = 1f; private void OnTriggerEnter2D(Collider2D other) { if ((bool)other.GetComponent()) { PlayerPrefs.SetInt("Game_PreviousVistedRoom", SceneManager.GetActiveScene().buildIndex); BeginTransition(TransitionSpeed); } } public void BeginTransition(float Speed = 1f, bool UnpauseOnEnd = false) { if (ChatboxManager.Instance.ChatIsCurrentlyRunning) { ChatboxManager.Instance.EndText(); } UI_FADE.Instance.StartFadeIn(LevelToGo, Speed, UnpauseOnEnd, TargetState); if (PlaySoundOnTransition != null) { PlayerManager.Instance.PlayerAudioSource.PlayOneShot(PlaySoundOnTransition, SoundVolume); } } public void SimpleBeginTransition() { if (ChatboxManager.Instance.ChatIsCurrentlyRunning) { ChatboxManager.Instance.EndText(); } UI_FADE.Instance.StartFadeIn(LevelToGo, TransitionSpeed, UnpauseOnEnd: false, TargetState); if (PlaySoundOnTransition != null) { PlayerManager.Instance.PlayerAudioSource.PlayOneShot(PlaySoundOnTransition, SoundVolume); } } }