Button-Klick: Eingaben weiterleiten

Um Objekt-spezifischen Code auslösen zu können, müssen wir eine aufrufbare Funktion, einen Schalter und eine entsprechende Weiterleitung einbauen.

Button einfügen

  • Wähle das Canvas-Objekt in der Hierarchy aus und füge über Game ObjectUIButton eine Schaltfläche der Szene hinzu.
  • Platziere den Schalter und ändere die Beschriftung zu Aktion.

Zielfunktion definieren

  • Füge in ObjektMitTitelUndFortschritt.cs einen Zählerstatus und eine Funktion, sowie einen möglichen Abbruch der Update-Methode hinzu:
    private bool zaehlerLaeuft = true;

    public void AktionAusfuehren()
    {
        zaehlerLaeuft = !zaehlerLaeuft;
    }

    public void Update()
    {
        if (!zaehlerLaeuft) return; 
        ...

Ereignis-Anker für Button anlegen

  • Füge in EigenschaftenZeichner.cs ein Speicherfeld für das aktive Objekt hinzu und weise dieses in zeichneObjekt zu. Ergänze zudem die Funktion BeiAktionsButtonClick hinzu:
    protected ObjektMitTitel dasAktuelleObjekt = null;

    public void zeichneObjekt(ObjektMitTitel dasObjekt)
    {
        dasAktuelleObjekt = dasObjekt;
        ...
     }

    public void BeiAktionsButtonClick()
    {
        Debug.Log("Button geklickt");

        if ( dasAktuelleObjekt!=null && dasAktuelleObjekt.GetType() == typeof(ObjektMitTitelUndFortschritt))
        {
            ((ObjektMitTitelUndFortschritt)dasAktuelleObjekt).AktionAusfuehren();
        }
    }

Anker mit Button verbinden

  • Wähle den Button in der Hierarchy aus und klicke im Inspector bei ▾Button OnClick auf +, um eine Ereignisverknüpfung anzulegen.
  • Ziehe den Canvas aus Hierarchy auf das Objektfeld der Ereignisverknüpfung.
  • Wähle aus dem Funktionsdropdown die Methode EigenschaftenZeichnerBeiAktionsButtonClick aus.

Hinweise

  • Wenn wir im MouseExit -Ereignis null senden, ist der Schalter im Beispiel nur funktional, wenn der Button über dem Kollisionsobjekt liegt. Du kannst das MouseExit-Ereignis einfach auskommentieren, um dieses Problem hier zu umgehen.
  • Um den Schalter auch auszublenden, füge ein Feld für den Button in EigenschaftenZeichner.cs hinzu und de/aktiviere den Schalter ähnlich wie wir die anderen Komponenten de/aktivieren.

Anhänge

Die hier gezeigten Lektionen sind eine Auswahl von Inhalten aus mehreren verschiedenen kostenpflichtigen Kursen. Um alle Inhalte zu sehen, müssen mehrere Kurse gekauft werden. Änderungen und Aktualisierungen der Kursinhalte werden auf dieser Seite möglicherweise nicht oder nicht sofort dargestellt. Die kostenpflichtigen Udemy-Kurse enthalten neben den Videos auch Übungen, Textartikel, weitere Materialien, sowie ein Support-Forum für Fragen. Vereinzelt kann eine Lektion im mehreren Kursen gleichzeitig enthalten sein. Wenn etwas unklar ist, stelle Deine Frage per E-Mail an rene@gamedev-profi.de .