11.2.9 Erster Wechsel von CanvasMain zu CanvasSettings -Bug

Wenn man zum ersten Mal nach Drücken des Unity-Play-Buttons in CanvasMain auf ButtonSettings klickt, spielt zwar die Wechsel-Animation komplett ab, fährt aber dann unmittelbar wieder zurück auf CanvasMain (d.h. zweite Animation re wird auch getriggert).
Danach wenn man wieder ButtonSettings drückt, funktioniert es normal, Reset gibt es nur beim ersten Mal. Passiert bei mir wenn ich dem Text im Buch folge, aber auch ebenso direkt bei DL-Datei Traces_TheGame_100...

Fix: wenn man im MenuController Skript den Call zu ShowCanvasMain() in der Awake() Funktion auskommentiert, scheint das Problem behoben...

Errata
gefragt18.06.2015
tobiasros145
tobiasros
bearbeitet18.06.2015
tobiasros145
tobiasros

1 Antwort

Stimmt! In der Version Traces_TheGame_100.zip habe ich das jetzt schonmal so korrigiert. Kommenden Sonntag gehe ich das gesamte Kapitel 11 nochmal durch und baue dann mit Unity 5.0.2 auch die noch fehlenden Projektstände (070, 080 und 090) sowie den letzten Screencast, der noch fehlt ("Einen Screenwechsel für Unity UI mit Mecanim animieren").

Es scheint so, als würde der Trigger-Wert neuerdings gespeichert werden und dann direkt nach dem Wechsel auf den Settings-Screen zu einem erneuten Zustandswechsel führen. Das war in früheren Versionen von Unity scheinbar nicht so - da hatte das nämlich korrekt geklappt. Lieber wäre mir an sich eine Lösung, bei der das ShowCanvasMain() in der Awake() bleibt, da das eigentlich robuster wäre.

Wahrscheinlich mache ich es dann so:

    public void Awake() {
        ShowCanvasMain();
    }

    public void ShowCanvasSettings() {
        animator.SetTrigger(settingsTrigger);
        animator.ResetTrigger(mainTrigger);
    }

    public void ShowCanvasMain() {
        animator.SetTrigger(mainTrigger);
        animator.ResetTrigger(settingsTrigger);
    }

Auf diese Weise ist dann sichergestellt, dass alte, hängengebliebene Trigger nicht zu einem unerwünschten Screenwechsel führen können.

beantwortet19.06.2015 Jashan Chittesh 301
Jashan Chittesh

Deine Antwort

Um eine Antwort zu geben, musst du Login

Ich markiere diese Frage weil ...

10 übrige Markierungen um Moderator zu informieren

Ich lösche diese Frage weil ...

Ich markiere diese Antwort weil ...

10 übrige Markierungen um Moderator zu informieren

Posting markieren

Du hast diese Beitrag bereits markiert. Klicke "Markierung aufheben" um deine Markierung zu entfernen, was auch die Anzahl der Markierungen um eins reduziert.

Ich lösche diese Antwort weil ...