Zwischen den Szenen wechseln
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.