Zwischen den Szenen wechseln

Diese Seite wurde aktualisiert :
Erstellungsdatum der Seite :

Verifizierungsumgebung

Fenster
  • Windows 11
Unity-Editor
  • 2020.3.25f1
Eingabesystem-Paket
  • 1.2.0

Voraussetzungen für diesen Tipp

Die folgenden Einstellungen wurden im Vorfeld als Prämisse für die Beschreibung dieses Tipps vorgenommen.

Erfahren Sie, wie Sie zwischen Szenen wechseln

Eine Szene ist eine sogenannte "Szene", aber Unity verwendet das Wort "Szene" so, wie es ist, also werde ich es mit dem Ausdruck Szene erklären.

Szenen wechseln oft zwischen Szenen im Spiel. Wenn Sie beispielsweise das Spiel über das Startmenü starten und die Aktion beginnt, können Sie sich dies als Szenenwechsel vorstellen. Außerdem ist die Aktion zum Öffnen des Menübildschirms während einer Aktion je nach Menüausdruck auch ein Szenenwechsel.

Diese Art des Szenenwechsels muss in Unity implementiert werden, und es gibt viele Möglichkeiten, dies zu tun. Zum Beispiel sollte es nur eine "Szene (in Unity)" im Spiel geben. Wenn sich die Spielszene ändert, werden alle Objekte aus der vorherigen Szene verworfen und die erforderlichen Objekte für die nächste Szene generiert. Dieser Ansatz hat zwar den Vorteil, dass nur eine Szene bereitgestellt wird, hat jedoch den Nachteil, dass Objektübergänge programmgesteuert verwaltet werden müssen.

In diesem Tipp möchte ich eine Methode implementieren, um so viele "Szenen"-Dateien vorzubereiten, wie Szenen vorhanden sind, und die notwendigen Objekte im Voraus in der Szene zu platzieren, um Szenen zu wechseln. Das Umschalten zwischen den eigentlichen Szenen ist sehr einfach, da Sie nur zwischen den Szenendateien wechseln müssen.

Vorbereiten der Szene

Erstellen Sie zunächst ein normales Projekt. Es wird davon ausgegangen, dass Sie das Eingabesystempaket bereits vorbereitet und die Kamera konfiguriert haben.

Dieses Mal bereiten wir zwei Szenendateien vor und implementieren den Vorgang des Klickens auf die Schaltfläche in der ersten Szene und des Übergangs zur zweiten Szene.

Die SampleScene vorhandene Szene sollte benannt werden, also ändern Sie dies SampleScene1 in .

Klicken Sie anschließend mit der rechten Maustaste auf einen leeren Bereich des Projekts und wählen Sie "Szene" aus "Erstellen". Sie können es auch über die Schaltfläche + unter der Registerkarte "Projekt" hinzufügen.

Eine neue Szenendatei wird hinzugefügt, also nennen Sie SampleScene2 sie .

SampleScene1 Doppelklicken Sie, um die Szene zu öffnen und das Objekt wie unten gezeigt zu platzieren. Wenn Sie auf die Schaltfläche klicken, können Sie SampleScene2 zu wechseln, damit das Layout angepasst werden kann.

SampleScene2 Doppelklicken Sie, um die Szene zu öffnen und das Objekt wie unten gezeigt zu platzieren. Es spielt keine Rolle, was Sie eingeben, denn Sie möchten nur wissen, was sich geändert hat.

Nachdem Sie die Szene erstellt haben, öffnen Sie "Datei > Build-Einstellungen" aus dem Menü.

Drop-in-Szenen, die im SampleScene2 Build enthalten sind.

Schließen Sie die Build-Einstellungen, sobald sie hinzugefügt wurden, wie unten gezeigt.

Szenenwechsel

Der Szenenwechsel erfolgt per Skript, also erstellen Sie bitte ein Skript. Der Name ist willkürlich, aber in diesem Fall SceneChange ist es .

Das Skript sieht wie folgt aus:

using UnityEngine;
using UnityEngine.SceneManagement;  // 追加

public class SceneChange : MonoBehaviour
{
  /// <summary>ボタンをクリックしたときに呼ばれます。</summary>
  public void OnClick()
  {
    // 指定したシーンを読み込み他のシーンは削除します
    SceneManager.LoadScene("SampleScene2", LoadSceneMode.Single);
  }
}

Der Inhalt ist sehr einfach SceneManager.LoadScene und Sie können zwischen den Szenen wechseln, indem Sie Methoden aufrufen.

Das erste Argument ist der Name der Szene, zu der gewechselt werden soll.

Wenn Sie als zweites Argument LoadSceneMode.Single angeben, können Sie nur die angegebene Szene öffnen, während Sie die aktuelle Szene schließen. Es gibt auch einen Parameter namens einfach Szene hinzufügen LoadSceneMode.Additive , aber ich werde ihn in diesem Artikel nicht erklären.

Nachdem Sie das Skript gespeichert haben, öffnen Sie es, SampleScene1 und fügen Sie es an . EventSystem Es kann jedes Objekt sein, an das Sie anhängen.

Legen Sie das click-Ereignis der Schaltfläche auf ein angefügtes Objekt festOnClick, damit die SceneChange Methode aufgerufen werden kann.

Versuchen Sie, das Spiel auszuführen, und prüfen Sie, ob sich die Szene nach dem Klicken auf die Schaltfläche ändert.