Menu
CoddyTech

Wczytaj scenę

Część sekcji Tworzenie prawdziwych gier ścieżki Unity w Coddy. Lekcja 17 z 60.

Gra w Unity jest podzielona na sceny: menu, każdy poziom, napisy końcowe. Każda scena jest osobnym plikiem z własnymi obiektami, a skrypt przełącza się na inną za pomocą SceneManager.LoadScene z przestrzeni nazw UnityEngine.SceneManagement. Przycisk „Graj” w tym menu, skonfigurowany w Inspectorze, otwiera poziom Forest:

using UnityEngine;
using UnityEngine.SceneManagement;

public class MainMenu : MonoBehaviour
{
    public void Play()
    {
        SceneManager.LoadScene("Forest");
    }
}

Unity może wczytać tylko sceny znajdujące się na liście scen kompilacji: w Unity 6 jest to File > Build Profiles, w sekcji Scene List (w starszych wersjach to okno nazywa się Build Settings). Nazwa musi dokładnie odpowiadać nazwie pliku sceny. Jeśli sceny brakuje na liście albo nazwa zawiera literówkę, na przykład "Forrest", nic się nie wczyta, a w konsoli pojawi się błąd zaczynający się od Scene 'Forrest' couldn't be loaded i informujący, że scena nie została dodana do kompilacji; gra pozostanie w menu.

Przełączenie nie następuje natychmiast. Najpierw wykonuje się reszta bieżącej klatki, więc instrukcje po LoadScene nadal zostaną wykonane; na początku następnej klatki Unity niszczy wszystkie obiekty starej sceny i tworzy nową, której skrypty ponownie rozpoczynają działanie od Awake i Start.

challenge icon

Wyzwanie

Łatwy

Spraw, aby każdy portal wczytywał scenę wskazaną przez jego sceneName.

  1. Na górze pliku Portal.cs dodaj using UnityEngine.SceneManagement;.
  2. Napisz void OnTriggerEnter(Collider other): gdy other.CompareTag("Player"), wywołaj SceneManager.LoadScene(sceneName);.

Naciśnij „Graj” i wejdź do każdego portalu: kolejno wczytają się Desert, Hub i Glacier. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

using UnityEngine;

public class Portal : MonoBehaviour
{
    public string sceneName;

    // gdy gracz wejdzie, wczytaj scenę o nazwie sceneName
}

Wszystkie lekcje w sekcji Tworzenie prawdziwych gier

Poćwicz samodzielnie: Edytor online Unity