This question was
closed Jul 07, 2016 at 02:32 AM by
El-Deiablo for the following reason:
Other
Question by
El-Deiablo · Jul 06, 2016 at 07:41 AM ·
animationscene-switchingscene-changefadeoutfadein
Animation Not Playing
I have been trying to set up my scenefader, but my scene fade animation is not playing. I also get another issue with the canvas / panel when transitioning to the next scene. Here's a youtube link showing the issue and my setup - https://youtu.be/sDQ_emLn4SA. I have been working on this for a week now and cannot get it to work. I wanted to add some polish to my game and therefore need to get this figured out. I would appreciate any help.
My code:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class SceneFader : MonoBehaviour {
public static SceneFader instance;
[SerializeField]
private GameObject fadeCanvas;
[SerializeField]
private Animator fadeAnim;
void Awake(){
MakeASingleInstance ();
}
void MakeASingleInstance(){
if (instance != null) {
Destroy (gameObject);
} else {
instance = this;
DontDestroyOnLoad (gameObject);
}
}
IEnumerator FadeInAnimate (string levelName){
fadeCanvas.SetActive (true);
fadeAnim.Play ("FadeIn");
yield return new WaitForSeconds (1f);
SceneManager.LoadScene (levelName);
FadeOut ();
}
IEnumerator FadeOutAnimate(){
fadeAnim.Play ("FadeOut");
yield return new WaitForSeconds (0.7f);
fadeCanvas.SetActive (false);
}
public void FadeIn(string levelName){
StartCoroutine (FadeInAnimate (levelName));
}
public void FadeOut(){
StartCoroutine (FadeOutAnimate ());
}
}
Code 2 (Using SceneFader script):
using UnityEngine;
using System.Collections;
using UnityEngine .SceneManagement ;
using UnityEngine .UI;
public class ChangeSceneManager : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
public void MainMenu(){
//SceneManager.LoadScene ("Title Menu");
//SceneFader.instance.LoadLevel("Title Menu");
SceneFader.instance.FadeIn("Title Menu");
}
public void HowToPlay(){
SceneManager.LoadScene ("How To Play Scene");
//SceneFader.instance.LoadLevel("How To Play Scene");
}
public void Play(){
SceneFader.instance.FadeIn ("Gameplay");
//SceneManager.LoadScene ("Gameplay");
}
}
Comment