Unity 2D Tutorial Teil 10

Unity 2D Tutorial – Laden weiterer Level (10/12)

Gefällt Dir der Artikel? Dann teile ihn doch, um diese Informationen auch anderen zugänglich zu machen!

Seiteninhalt

Im letzten Teil des Unity 2D Tutorials haben wir das User Interface (UI) ergänzt. Durch eine Anzeige hat der Spieler die Möglichkeit, die Anzahl aller gesammelten Token zu betrachten. Dies haben wir mit einem Canvas Image und einem Text erstellt. Der Text wurde dabei mit einem Skript verlinkt, welches die Logik für das Zählen der gesammelten Token übernimmt.

Ein weiteres, wichtiges Feature eines Jump and Run Spiels ist natürlich die Erstellung weiterer Level. Und genau das werden wir uns in diesem Schritt ansehen. Zuvor wie immer eine Übersicht über alle Teile des Unity 2D Tutorials.

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

Neue Scene erstellen

Bisher haben wir in unserer Anwendung lediglich eine einzige Scene erstellt. Diese stellt das erste Level dar. Um nun ein weiteres Level hinzufügen zu können, ist es zunächst wichtig, eine neue Scene zu erstellen. Wie zu Beginn des Unity 2D Tutorials hast du die Möglichkeit, unter Assets im Ordner Scenes eine neue zu erstellen. Alternativ kannst du zum Testen auch das bestehende Level duplizieren. Um das durchzuführen, musst du lediglich die Scene über File -> Save as im Ordner Scenes unter dem Namen Level 02 abspeichern.

Ab sofort hast du zwei Levels in deiner Anwendung. Dieser Aufbau erlaubt dir allerdings lediglich immer nur eine aktive Scene. Damit das ganze etwas übersichtlicher bleibt, kannst du das zweite Level etwas abändern. So erkennst du sofort den Unterschied zwischen beiden.

Übergang Level erstellen

Nachdem wir eine zweite Scene hinzugefügt haben, ist es möglich den Übergang zwischen den Level einzubinden. Öffne dazu Level 01 und erstelle ein neues GameObject mit dem Namen LevelEnd. Dieses Objekt ist im Endeffekt nichts anderes als ein Sprite in Rechteckform. Wähle im Kontextmenü in der Hierarchie 2D Object -> Sprites -> Square und platziere es am Ende des Levels. Falls das GameObject nicht sichtbar sein soll, kannst du die Komponente SpriteRenderer deaktivieren. Um den Übergang zum nächsten Level auszulösen, fügen wir noch die Komponente Box Collider 2D hinzu und aktivieren die Option Is Trigger.

Übergang Level erstellen

Logik für Übergang integrieren

Der gerade erstellte Bereich löst beim Eintritt des Players den Übergang zum nächsten Level aus. Allerdings fehlt noch die Logik, welches Level geladen werden soll und welches GameObject den Übergang auslösen soll.

Dafür ist es notwendig den SceneManager anzusprechen, was wiederrum über ein C#-Skript erfolgt. Einen ausführlichen C# Kurs findest du übrigens auch auf der nobreakpoints Lernplattform. Importiere nun das Skript SceneLoader.cs in dein Projekt unter Assets im Ordner Scripts -> Gameplay. Du findest es am Ende des Blogartikels. Anschließend fügst du es als Komponente im GameObject LevelEnd ein.

In dieser Komponente hast du zwei verschiedene Parameter:

  • Tag To Check: Tag, der überprüft werden soll, um in neue Scene zu wechseln
  • Scene Name: Name der Scene, die geladen werden soll

In unserem 2D Tutorial soll das GameObject Player den Übergang auslösen. Wenn du in dieses GameObject wechselst, erkennst du im Inspector ganz oben den Tag. Dieser sollte mit Player bezeichnet sein. Und genau diesen Tag wählen wir im Parameter Tag To Check des Skripts. Und unter Scene Name verlinken wir den Namen der neuen Scene (Level 02). Also die Scene, die geladen werden soll.

Logik für Übergang des Levels integrieren

Levelübergang testen

Nun haben wir alles für den Übergang zu einem neuen Level erstellt. Teste doch gleich einmal, ob alles funktioniert. Sobald du mit dem Player in das GameObject LevelEnd läufst, wird in der Unity-Console womöglich ein Fehler erscheinen und der Übergang nicht ausgeführt. Der Fehler sollte in etwa folgendermaßen lauten:

Scene ‚Level 02‘ couldn’t be loaded because it has not been added to the build settings or the AssetBundle has not been loaded.

To add a scene to the build settings use the menu File->Build Settings…

Jede Scene, die geladen und gestartet werden soll, muss zu Beginn in den Build-Settings hinterlegt sein. Um das durchzuführen, wähle File > Build Settings und ziehe beide Scenes aus deinem Scenes Ordner in die Build Settings. Über den Button Add Open Scenes kannst du diese hinzufügen. Teste deine Anwendung erneut über den Play-Button.

Okay, du hast jetzt eine Möglichkeit kennengelernt, mit der du verschiedene Level erstellen und in diese wechseln kannst. Im nächsten Abschnitt werden wir die UI um eine wichtige Komponente ergänzen.

Build Settings Unity einstellen

SceneLoader.cs Skript

				
					using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class SceneLoader : MonoBehaviour
{
    public string tagToCheck;
    public string sceneName;

    public void LoadMyScene(string sceneName)
    {
        SceneManager.LoadScene(sceneName);
    }

    private void OnTriggerEnter2D(Collider2D collision)
    {
        // is it the player
        if(collision.CompareTag(tagToCheck))
        {
            LoadMyScene(sceneName);
        }
    }
}

				
			

Auf unserer Lernplattform findest du übrigens ausführliche Workshops und Online-Kurse, um 2D, 3D, VR und AR Anwendungen problemlos zu erstellen. Dort erhältst du das nötige Wissen, um deine Ideen und Anwendungen perfekt umzusetzen. Teste jetzt die Lernplattform, um dir weitere, grundlegende und fortgeschrittene Fähigkeiten anzueignen.

Gefällt Dir der Artikel? Dann teile ihn doch, um diese Informationen auch anderen zugänglich zu machen!

Weitere Blogartikel

Bist du bereit deine eigenen Anwendungen zu erstellen?

Teste jetzt alle Online-Kurse auf der Lernplattform und erstelle problemlos deine eigenen 2D/3D, Virtual oder Augmented Reality Anwendungen.

Bist du bereit deine eigenen Anwendungen zu erstellen?

Teste jetzt alle Online-Kurse auf der Lernplattform und erstelle problemlos deine eigenen 2D/3D, Virtual oder Augmented Reality Anwendungen.