Przełączanie między scenami

Strona zaktualizowana :
Data utworzenia strony :

Środowisko weryfikacji

Windows
  • Okna 11
Edytor Unity
  • 2020.3.25f1
Pakiet systemu wejściowego
  • 1.2.0

Wymagania wstępne dotyczące tej porady

Poniższe ustawienia zostały wcześniej wprowadzone jako przesłanka do opisu tej wskazówki.

Dowiedz się, jak przełączać się między scenami

Scena jest tak zwaną "sceną", ale Unity używa słowa "scena" takim, jakim jest, więc wyjaśnię to wyrażeniem scena.

Sceny często przełączają się między scenami w grze. Na przykład, jeśli uruchomisz grę z menu Start i rozpocznie się akcja, możesz myśleć o tym jako o przełączniku sceny. Ponadto akcja otwierania ekranu menu podczas akcji będzie również przełączaniem sceny w zależności od wyrażenia menu.

Tego rodzaju przełączanie scen musi zostać zaimplementowane w Unity i jest na to wiele sposobów. Na przykład w grze powinna być tylko jedna "Scena (w Jedności)". Gdy scena gry ulegnie zmianie, wszystkie obiekty z poprzedniej sceny zostaną odrzucone, a niezbędne obiekty zostaną wygenerowane dla następnej sceny. Jednakże, chociaż takie podejście ma tę zaletę, że zapewnia tylko jedną scenę, ma tę wadę, że musi programowo zarządzać przejściami obiektów.

W tej wskazówce chciałbym zaimplementować metodę przygotowania tylu plików "Scen", ile jest scen i umieszczenia niezbędnych obiektów w scenie z wyprzedzeniem do przełączania scen. Przełączanie między rzeczywistymi scenami jest bardzo łatwe, ponieważ wszystko, co musisz zrobić, to przełączać się między plikami scen.

Przygotowanie sceny

Najpierw utwórz normalny projekt. Zakłada się, że masz już przygotowany pakiet wejściowy i skonfigurowany kamerę.

Tym razem przygotujemy dwa pliki scen, oraz zrealizujemy operację kliknięcia przycisku w pierwszej scenie i przejścia do drugiej sceny.

Istniejąca SampleScene scena powinna mieć nazwę , więc zmień ją SampleScene1 na .

Następnie kliknij prawym przyciskiem myszy pusty obszar projektu i wybierz "Scena" z "Utwórz". Możesz go również dodać za pomocą przycisku + poniżej karty projektu.

Zostanie dodany nowy plik sceny, więc nazwij SampleScene2 go .

SampleScene1 Kliknij dwukrotnie, aby otworzyć scenę i umieścić obiekt w sposób pokazany poniżej. SampleScene2 Po kliknięciu przycisku można przejść do programu , aby układ był odpowiedni.

SampleScene2 Kliknij dwukrotnie, aby otworzyć scenę i umieścić obiekt w sposób pokazany poniżej. Nie ma znaczenia, co umieścisz, ponieważ chcesz tylko wiedzieć, co się zmieniło.

Po utworzeniu sceny otwórz "File > Build Settings" z menu.

Upuść sceny zawarte w SampleScene2 kompilacji.

Zamknij ustawienia kompilacji po ich dodaniu, jak pokazano poniżej.

Proces przełączania scen

Przełączanie scen odbywa się za pomocą skryptu, więc utwórz skrypt. Nazwa jest arbitralna, ale w tym przypadku SceneChange jest .

Skrypt wygląda tak:

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

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

Treść jest bardzo prosta SceneManager.LoadScene i można przełączać się między scenami, wywołując metody.

Pierwszym argumentem jest nazwa sceny, na którą należy się przełączyć.

Jeśli jako drugi argument zostanie określony LoadSceneMode.Single , można otworzyć tylko określoną scenę podczas zamykania bieżącej sceny. Istnieje również parametr o nazwie po prostu dodaj LoadSceneMode.Additive scenę, ale nie będę tego wyjaśniał w tym artykule.

Po zapisaniu skryptu SampleScene1 otwórz go i dołącz do programu . EventSystem Może to być dowolny obiekt, do którego się dołączysz.

Ustaw OnClick zdarzenie click przycisku na obiekt dołączony do, aby można było SceneChange wywołać metodę.

Spróbuj uruchomić grę i sprawdź, czy scena zmieni się po kliknięciu przycisku.