Menu
CoddyTech

Verknüpfungen im Inspector

Teil des Abschnitts Echte Spiele entwickeln der Unity-Journey von Coddy. Lektion 8 von 56.

Ein Button kann auch im Inspector verknüpft werden, ganz ohne AddListener. Die Liste On Click () des Buttons ist zunächst leer. Über das + wird eine Zeile hinzugefügt; ziehe das Objekt, auf dem sich das Skript befindet, in das Objektfeld der Zeile. Im Funktions-Dropdown werden die Komponenten dieses Objekts samt ihren öffentlichen Methoden aufgeführt. Wähle Jukebox > NextTrack, und bei jedem Klick wird diese Methode aufgerufen:

public class Jukebox : MonoBehaviour
{
    public string[] tracks;
    private int current;

    public void NextTrack()
    {
        current = (current + 1) % tracks.Length;
        Debug.Log("Now playing: " + tracks[current]);
    }
}

Im Dropdown werden Methoden aufgeführt, die public sind, void zurückgeben und keinen Parameter oder einen int-, float-, string-, bool- oder Object-Parameter entgegennehmen, dessen Wert du in der Zeile festlegst. Eine private NextTrack wird nicht aufgeführt und kann daher nicht ausgewählt werden. Die Zeile speichert die Methode anhand ihres Namens: Benenne NextTrack in SkipTrack um, zeigt die Zeile <Missing Jukebox.NextTrack> an, und Klicks bewirken nichts, ohne dass ein Fehler in der Console erscheint.

Zeilen im Inspector eignen sich für Buttons, die in der Szene platziert sind: Jedes Teammitglied kann sehen und ändern, was ein Button aufruft, ohne ein Skript öffnen zu müssen. AddListener im Code eignet sich für Buttons, die während des Spiels erstellt werden, sowie für Aufrufe, die einen Wert aus einer Variablen übergeben; der Compiler erkennt dort umbenannte Methoden. Listener, die im Code hinzugefügt werden, erscheinen nie in der Liste On Click (), daher ruft ein auf beide Arten verknüpfter Button beide auf.

challenge icon

Aufgabe

Einfach

Die Zugbrücke der Burg hat drei Schaltflächen, die im Inspector mit dem Skript Drawbridge auf BridgeControl verbunden sind. Keine davon funktioniert bisher. Wähle RaiseButton, LowerButton und LampButton in der Hierarchy aus und lies jede On Click ()-Zeile: Sie nennt die Methode, die beim Klicken aufgerufen wird. Sorge dafür, dass alle drei funktionieren, indem du nur Drawbridge.cs änderst:

  • Eine der Methoden ist bereits unter einem anderen Namen geschrieben. Gib ihr den Namen, den ihre Zeile aufruft.
  • Beim Hochfahren wird bridge um 70 Grad um die x-Achse gedreht (seine localRotation), und Bridge: up wird in statusText angezeigt.
  • Die Lampenschaltfläche schaltet warningLamp ein, wenn sie ausgeschaltet ist, und aus, wenn sie eingeschaltet ist.

Drücke Play, probiere alle Schaltflächen aus und klicke dann auf Check.

Probier es selbst

using UnityEngine;
using TMPro;

public class Drawbridge : MonoBehaviour
{
    public Transform bridge;
    public TMP_Text statusText;
    public GameObject warningLamp;

    public void LowerBridge()
    {
        bridge.localRotation = Quaternion.Euler(0f, 0f, 0f);
        statusText.text = "Bridge: down";
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Echte Spiele entwickeln