So erstellen Sie eine Ampel in Unity
Dieses Tutorial führt Sie durch den Prozess der Erstellung eines einfachen Ampelsystems in Unity mit C#. Sie lernen, wie Sie die Ampeln einrichten, Logik zur Steuerung hinzufügen und ein funktionierendes Ampelsystem simulieren.
Voraussetzungen
- Grundkenntnisse der Unity-Schnittstelle
- Grundlegende Kenntnisse der C#-Programmierung
- Unity auf Ihrem Computer installiert (jede aktuelle Version)
Schritt 1: Einrichten der Szene
Zuerst müssen wir die Szene in Unity mit drei Lichtern (Rot, Gelb und Grün) einrichten, um ein Ampelsystem zu simulieren.
- Öffnen Sie Unity und erstellen Sie ein neues Projekt.
- Erstellen Sie im Fenster Hierarchie drei 3D-Objekte, die die Ampeln darstellen. Sie können für jede Ampel Kugeln verwenden. Benennen Sie sie in RotesLicht, GelbesLicht und GrünesLicht um.
- Platzieren Sie sie in der Szenen-Ansicht übereinander, um eine vertikale Ampel zu simulieren. Passen Sie ihre Position und Skalierung nach Bedarf an.
- To make them look like real traffic lights, assign different colors to each sphere:
- Wählen Sie RedLight und ändern Sie die Materialfarbe in Rot.
- Wählen Sie YellowLight und ändern Sie die Materialfarbe in Gelb.
- Wählen Sie GreenLight und ändern Sie die Materialfarbe in Grün.
Schritt 2: Erstellen des Ampelskripts
Jetzt schreiben wir ein Skript zur Steuerung des Ampelverhaltens. Dieses Skript wechselt in regelmäßigen Abständen zwischen den roten, gelben und grünen Ampeln.
- Klicken Sie mit der rechten Maustaste in den Ordner Assets und wählen Sie Erstellen > C#-Skript. Nennen Sie es TrafficLightController.
- Öffnen Sie das Skript in Ihrem bevorzugten Code-Editor und schreiben Sie den folgenden Code:
using System.Collections;
using UnityEngine;
public class TrafficLightController : MonoBehaviour
{
public GameObject redLight;
public GameObject yellowLight;
public GameObject greenLight;
public float redLightDuration = 5f;
public float yellowLightDuration = 2f;
public float greenLightDuration = 5f;
private void Start()
{
StartCoroutine(TrafficLightCycle());
}
IEnumerator TrafficLightCycle()
{
while (true)
{
// Red light on
redLight.SetActive(true);
yellowLight.SetActive(false);
greenLight.SetActive(false);
yield return new WaitForSeconds(redLightDuration);
// Green light on
redLight.SetActive(false);
yellowLight.SetActive(false);
greenLight.SetActive(true);
yield return new WaitForSeconds(greenLightDuration);
// Yellow light on
redLight.SetActive(false);
yellowLight.SetActive(true);
greenLight.SetActive(false);
yield return new WaitForSeconds(yellowLightDuration);
}
}
}
Dieses Skript definiert einen einfachen Zyklus, bei dem die roten, grünen und gelben Lichter nacheinander an- und ausgehen.
Schritt 3: Zuweisen der Lichter zum Skript
Nachdem das Skript nun fertig ist, müssen wir die Lichtobjekte mit dem Skript verknüpfen, damit es weiß, welche Lichter gesteuert werden sollen.
- Wählen Sie die Hauptkamera aus oder erstellen Sie in der Szene ein leeres GameObject, das das Skript enthält. Nennen Sie es TrafficLightController.
- Klicken Sie im Inspector auf Komponente hinzufügen und hängen Sie das Skript TrafficLightController an.
- Assign the traffic light spheres to the script:
- Ziehen Sie das Objekt RedLight in das Feld redLight im Skript.
- Ziehen Sie das Objekt YellowLight in das Feld yellowLight.
- Ziehen Sie das Objekt GreenLight in das Feld greenLight.
Schritt 4: Testen des Ampelsystems
Jetzt ist es an der Zeit, das Ampelsystem zu testen und zu sehen, ob alles wie erwartet funktioniert.
- Drücken Sie oben im Unity-Editor die Schaltfläche Play.
- Beobachten Sie das Ampelsystem in Aktion. Die roten, grünen und gelben Ampeln sollten in den im Skript definierten Zeitintervallen wechseln.
Wenn alles funktioniert, sollte das rote Licht 5 Sekunden lang aufleuchten, gefolgt von dem grünen Licht für 5 Sekunden und dann dem gelben Licht für 2 Sekunden, und dies in einer Schleife.
Schritt 5: Anpassen der Ampel
Sie können das Ampelsystem ganz einfach anpassen, indem Sie die Zeitintervalle für jede Ampel ändern. Ändern Sie im Fenster Inspector die Felder redLightDuration, yellowLightDuration und greenLightDuration, um zu ändern, wie lange jede Ampel eingeschaltet bleibt.
Sie können zum Beispiel die Dauer des roten Lichts verlängern, um eine stark befahrene Kreuzung zu simulieren, oder die Dauer des gelben Lichts anpassen, um einen schnelleren Übergang zu ermöglichen.
Abschluss
Sie haben erfolgreich ein einfaches Ampelsystem in Unity erstellt. In diesem Tutorial haben Sie gelernt, wie Sie GameObjects mit C# steuern und eine zeitgesteuerte Schleife implementieren, um ein reales System zu simulieren. Von hier aus können Sie dieses Projekt erweitern, indem Sie weitere Funktionen wie Fußgängerampeln, Countdown-Timer oder komplexere Verkehrsregeln hinzufügen.