2017-10-28 2 views
0

Ich versuche eine Co-Routine zu starten, nachdem meine Animation beendet wurde.Unity - warten bis die Animation beendet ist

Ich habe versucht, es wie folgt aus:

... 

while (animCamera.isPlaying) { 
    new WaitForSeconds(1); 
} 

StartCoroutine(LoadAsync(sceneName, sliderLoadbar, sliderLoadbarText)); 

Aber diese stürzt meine Einheit und meine Browser auch nach einer Weile und meine Einheit stucks sobald die while-Schleife eingegeben wird.

Wie kann ich das lösen?

+1

Die Syntax machen 'Ausbeute neue WaitForSeconds return (1)'; – Hellium

+1

Sie könnten aber interessiert sein an: 'yield return new WaitUntil (() => animCamera.isPlaying);' Oder durch [State Machine Behaviour] (https://unity3d.com/fr/learn/tutorials/modules/beginner/ 5-Pre-Order-Beta/State-Machine-Verhalten) – Hellium

+0

Schön, das sieht vielversprechend aus, aber mein Versuch ist gescheitert. Die Einheit friert nicht mehr ein oder stürzt ab, aber nichts passiert und das Spiel bleibt hängen. – Black

Antwort

3

in der Animation Registerkarte Ihres animierten Gameobject eine Veranstaltung im letzten Frame der Animation erstellen, fügen Sie das Skript zu diesem Gameobject, und wählen Sie die Methode, die Sie am Ende der es ausgeführt werden soll

enter image description here

Die Koroutine entfernen und nur eine einfache Methode ist,

public void LoadScene() 
{ 
    LoadAsync(sceneName, sliderLoadbar, sliderLoadbarText) 
} 
Verwandte Themen