Ich habe ein Problem mit Szenenausblendung. Ich machte eine Animation von Fade in & heraus auch ein Skript namens Fader
, die eine Coroutine-Funktion hat. Animation funktioniert gut. Es gibt auch ein leeres Spielobjekt namens SceneManager
mit einem Skript. In diesem Skript werden Tastenfunktionen beschrieben, die eine Szene öffnen. Button funktioniert nicht korrekt bei Szenenausblendung
Aber das Problem ist, wenn ich eine beliebige Taste klicken, zum Beispiel Scene2 Button
verblassen dann in der Animation starten, an einem gewissen milliseconds
wenn schwarzer Bildschirm erscheinen, wenn ich auf dieser schwarzen Bildschirm klicken Sie dann auf eine andere Szene ist offen . Es wird nicht geöffnet scene2
Dieses Video sehen
https://drive.google.com/file/d/0B1H5fdK2PJAnbm5fWDhlN3dVVnc
Paket Link https://drive.google.com/file/d/0B1H5fdK2PJAnZ2Y1UEFRMmVFbTA
Szene-Manager Skript:
public class Manager : MonoBehaviour
{
public void GoBackScene1()
{
Fader.instance.Perform ("Scene1");
}
public void Scene2()
{
Fader.instance.Perform ("Scene2");
}
public void Scene3()
{
Fader.instance.Perform ("Scene3");
}
public void Scene4()
{
Fader.instance.Perform ("Scene4");
}
}
Szene Fader Script:
public class Fader : MonoBehaviour {
public static Fader instance;
[SerializeField]
private GameObject canvas;
[SerializeField]
private Animator anim;
void Awake(){
makeSingleton();
}
public void Perform(string levelname)
{
StartCoroutine(FadeInAnimation(levelname));
}
void makeSingleton(){
if (instance != null) {
Destroy (gameObject);
} else {
instance = this;
DontDestroyOnLoad(gameObject);
}
}
IEnumerator FadeInAnimation(string level){
canvas.SetActive (true);
anim.Play ("FadeIn");
yield return new WaitForSeconds (1f);
Application.LoadLevel (level);
anim.Play ("FadeOut");
yield return new WaitForSeconds (2f);
canvas.SetActive (false);
}
}
können Sie mich vorschlagen, wie die Sekunden sind Schreib in 'Ausbeute return new WaitForSeconds (1f)' für Ein- und Ausblendung –
Es gibt keine richtige oder falsche Anzahl von Sekunden , du entscheidest. Wenn Sie einen hartcodierten Wert verwenden, ist dies die falsche Wahl. Die Wartezeit sollte auf Ihrer Animationslänge basieren. – Everts
Wie gesagt, hier gibt es kein Richtig oder Falsch, man kann es 1 Sekunde lassen, es ist Ok, aber versuchen Sie nicht, den Punkt des Problems zu übersehen: Das Problem tritt nicht wegen der Länge der Animation auf, sondern weil Sie t Deaktivieren Sie Ihre Schaltflächen während der Animation. –