47 lines
1.1 KiB
C#
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);
|
|
}
|
|
}
|