Menu
CoddyTech

Wczytaj scenę

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

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 Play 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 wczytywać 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 lub nazwa zawiera literówkę, na przykład "Forrest", nic się nie wczytuje, a w konsoli pojawia się błąd zaczynający się od Scene 'Forrest' couldn't be loaded, który informuje, że scena nie została dodana do kompilacji. Gra pozostaje 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 ze starej sceny i tworzy nową, której skrypty ponownie uruchamiają się od Awake i Start.

challenge icon

Wyzwanie

Łatwy

Hub z dwoma portalami. Ta kompilacja ma trzy sceny: Hub (pierwszą), Desert i Glacier. W Hub jeden portal prowadzi do Desert, a drugi do Glacier; w każdej z tych scen znajduje się portal z powrotem do Hub. Każdy portal ma skrypt Portal, a w Inspectorze ustawiono jego sceneName na nazwę sceny, do której prowadzi. Strzałkami poruszasz Playerem (gotowe).

Napisz Portal.cs: gdy Player (oznaczony tagiem Player) wejdzie w portal, załaduj scenę o nazwie podanej w sceneName tego portalu.

Naciśnij Play, odwiedź oba miejsca, a następnie naciśnij Check.

Spróbuj swoich sił

using UnityEngine;

public class Portal : MonoBehaviour
{
    public string sceneName;

    // gdy gracz wejdzie do portalu, wczytaj scenę o nazwie sceneName
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Tworzenie prawdziwych gier