UI changes, add fade in/out between SceneLoaded
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user