Files
SimUL/Assets/LevelChanger.cs
T
2023-03-07 13:28:51 +02:00

47 lines
1.1 KiB
C#

using System;
using UnityEngine;
using UnityEngine.SceneManagement;
public class LevelChanger : MonoBehaviour
{
[SerializeField]
public Animator _animator;
private const string FADE_OUT = "FadeOut";
private const string FADE_IN = "FadeIn";
private string _sceneToLoad;
private Action _onSceneLoaded;
private void Start()
{
UnityEngine.SceneManagement.SceneManager.sceneLoaded += SceneLoaded;
}
private void SceneLoaded(Scene arg0, LoadSceneMode arg1)
{
_animator.SetTrigger(FADE_IN);
}
public void FadeIn(Action onSceneLoaded)
{
_onSceneLoaded = onSceneLoaded;
_animator.SetTrigger(FADE_IN);
}
public void FadeToLevel(string name, Action onSceneLoaded)
{
_sceneToLoad = name;
_onSceneLoaded = onSceneLoaded;
_animator.SetTrigger(FADE_OUT);
}
public void OnFadeInComplete()
{
_onSceneLoaded.Invoke();
}
public void OnFadeOutComplete()
{
UnityEngine.SceneManagement.SceneManager.LoadScene(_sceneToLoad);
}
}