UI changes, add fade in/out between SceneLoaded

This commit is contained in:
Vladimir Koshevarov
2023-03-07 13:28:51 +02:00
parent 5f17173ce5
commit 85292eeb87
22 changed files with 1105 additions and 3864 deletions
+46
View File
@@ -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);
}
}