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.
Aufgabe
EinfachDie 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
bridgeum 70 Grad um die x-Achse gedreht (seinelocalRotation), undBridge: upwird instatusTextangezeigt. - Die Lampenschaltfläche schaltet
warningLampein, 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";
}
}
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
1Text auf dem Bildschirm
Canvas und TextPunktestand anzeigenZahlen formatierenEin Countdown-TimerRückblick: Tachometer4Szenen und Level
Eine Szene ladenDas Level neu startenNächstes LevelZwischen Szenen beibehaltenRückblick: Levelauswahl10Projekt: 3D-Plattformer
Der ParcoursBewegliche Plattformen2Buttons und Bildschirme
Buttons und onClickLambdasVerknüpfungen im InspectorPanels ein- und ausblendenGesundheitsbalkenRückblick: Upgrade-Shop5Speichern mit PlayerPrefs
Eine Zahl speichernMit einem Standardwert ladenHöchstpunktzahlEinstellungen speichernRückblick: Münzen auf der Bank