Zum Hauptinhalt springen

So erstellen Sie einen Tag-Nacht-Effekt in Unity 2D: Exemplarische Vorgehensweise

Unity 2D ist ein leistungsfähiges Werkzeug, um Spiele mit räumlichen beweglichen Grafiken zu erstellen. Einer der wichtigsten Aspekte bei der Erstellung eines faszinierenden Spiels ist es, eine Atmosphäre zu schaffen, die den Spieler anzieht und sein Interesse aufrechterhält. Eine Möglichkeit, dies zu tun, besteht darin, dem Spiel einen Tag- und Nachteffekt hinzuzufügen. Dieser Effekt erzeugt je nach Tageszeit eine Veränderung der Beleuchtung und der umgebenden Atmosphäre.

In diesem schritt für Schritt Anleitung wir werden uns ansehen, wie Sie den Tag- und Nachteffekt in Unity 2D erstellen, indem wir die bereits in Unity vorhandenen Komponenten und Skripts verwenden.

Der erste Schritt besteht darin, einen Zeitzyklus zu erstellen, der die Veränderung der Beleuchtung und der umgebenden Atmosphäre steuert. Wir können ein Skript verwenden, um die Anfangszeit des Tages festzulegen und dann jeden Frame zu aktualisieren.

Als nächstes müssen wir helles und dunkles Licht für Tag und Nacht einstellen. Dazu können wir Lichtquellen und verschiedene Effekte wie Bloom und Reflexion verwenden.

Schritt 1: Hintergrund und Himmel erstellen

1. Erstellen Sie zunächst ein neues Hintergrundobjekt in Unity.

2. Wählen Sie ein Bild für den Hintergrund Ihres Spiels aus und importieren Sie es in Unity.

3. Ziehen Sie den ausgewählten Hintergrund auf das zuvor erstellte Hintergrundobjekt.

4. Passen Sie die Größe und das Layout des Hintergrunds an Ihre Bedürfnisse an.

5. Erstellen Sie dann ein neues Himmelsobjekt in Unity.

6. Wählen Sie ein Himmelsbild aus und importieren Sie es in Unity.

7. Ziehen Sie das ausgewählte Himmelbild auf das erstellte Himmelsobjekt.

8. Passen Sie die Größe und Position des Himmels sowie den Hintergrund an.

Jetzt haben Sie einen Hintergrund und einen Himmel für Ihre Spielszene, mit denen Sie einen Tageszeitwechseleffekt erstellen können.

Schritt 2: Lichtsteuerung

In Unity 2D können Sie Beleuchtungskomponenten wie Directional Light und Point Light verwenden, um Ihrer Szene Beleuchtung hinzuzufügen. Directional Light erzeugt die Illusion von parallelem Licht wie Sonnenlicht, während Point Light die Illusion einer Punktlichtquelle wie einer Glühbirne erzeugt.

Um einen Tag- und Nachteffekt zu erzeugen, müssen Sie die Beleuchtungseinstellungen während des Spiels ändern. Zum Beispiel können Sie die Intensität des Lichts und seine Farbe ändern, um einen Übergangseffekt von hellem Tageslicht zu dunklem Nachtlicht zu erzeugen.

Sie können Skripte und Komponenten verwenden, um die Beleuchtung in Unity 2D zu steuern. Sie können beispielsweise ein Skript erstellen, das die Beleuchtungseinstellungen anhand eines Timers oder eines Ereignisses ändert, z. B. durch Ändern der Tageszeit.

Zusätzlich zum Ändern der Beleuchtungseinstellungen können Sie auch Sprites und Texturen verwenden, um einen Übergangseffekt von Tag zu Nacht zu erzeugen. Sie können beispielsweise die Hintergrundstruktur ändern oder Sprites verwenden, um einen Sonnenuntergang- oder Morgendämmerung-Effekt zu erzeugen.

Im nächsten Schritt werden wir uns ansehen, wie Sie ein Beleuchtungssteuerungsskript hinzufügen und einen Tag- und Nachteffekt in Unity 2D erstellen.

Schritt 3: Wechseln Sie zwischen Tag und Nacht

Jetzt, da wir die Grundlage für den Tag-Nacht-Effekt geschaffen haben, lernen wir, zwischen diesen Zuständen zu wechseln.

Dazu müssen wir unserem Spielobjekt, das für die Umschaltung der Tageszeit zuständig ist, ein Skript hinzufügen. Erstellen Sie ein neues Skript und fügen Sie es Ihrem Objekt hinzu.

In diesem Skript verwenden wir eine enum (enum), um die Tageszeit darzustellen. Erstellen Sie eine neue Enumeration mit dem Namen "TimeOfDay", die zwei Werte enthält: "Day" und "Night".

Erstellen Sie als Nächstes ein öffentliches Feld vom Typ "TimeOfDay" und nennen Sie es "currentTime". Dieses Feld zeigt die aktuelle Tageszeit an.

Jetzt fügen wir eine Methode hinzu, um die Tageszeit zu wechseln. Erstellen Sie eine öffentliche Methode namens "ToggleTimeOfDay", die den Wert der Variablen "currentTime" in den entgegengesetzten Wert ändert (wenn die aktuelle Zeit ein Tag ist, wird sie in die Nacht umgeschaltet und umgekehrt).

Um die Tageszeit zu wechseln, verwenden wir bedingte Operatoren. Wenn die aktuelle Zeit ein Tag ist, ändern wir sie in der Nacht und umgekehrt.

Fügen Sie Ihrer Methode "ToggleTimeOfDay" den folgenden Code hinzu:

if (currentTime == TimeOfDay.Day)

currentTime = TimeOfDay.Night;

else

currentTime = TimeOfDay.Day;

Jetzt wird unsere Methode die Tageszeit jedes Mal umschalten, wenn sie aufgerufen wird.

Lassen Sie uns schließlich unsere "ToggleTimeOfDay" -Methode an eine Tastatur- oder Maustastentaste binden, damit wir die Tageszeit während des Spiels wechseln können.

In Unity ist es einfach, eine Methode mit einem speziellen Werkzeug im Editor an das Drücken einer bestimmten Taste oder Maustaste zu binden.

Öffnen Sie das Fenster "Projekteinstellungen" und wählen Sie die Registerkarte "Input". Klicken Sie auf die Schaltfläche "Create", um einen neuen Datensatz in der Tabelle "Axes" zu erstellen. Geben Sie einen Namen für den Datensatz ein und wählen Sie die Schaltfläche oder den Schlüssel aus, mit der Sie die Tageszeit verknüpfen möchten.

Suchen Sie dann im Skript Ihres Objekts nach der Methode "Update" und fügen Sie Code hinzu, der den Tasten- oder Tastendruck überprüft, und rufen Sie die Methode "ToggleTimeOfDay" als Antwort auf.

Hier ist ein Beispiel für einen solchen Code:

if (Input.GetKeyDown(KeyCode.Space))

ToggleTimeOfDay();

Wenn Sie nun das Spiel starten und die von Ihnen gewählte Taste oder Taste drücken, wechselt die Tageszeit zwischen Tag und Nacht.

Damit beenden wir Schritt 3. Jetzt hast du einen funktionierenden Tag- und Nachteffekt in deinem Spiel.