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.
Wyzwanie
ŁatwySpraw, aby każdy portal wczytywał scenę wskazaną przez jego sceneName.
- Na górze pliku
Portal.csdodajusing UnityEngine.SceneManagement;. - Napisz
void OnTriggerEnter(Collider other): gdyother.CompareTag("Player"), wywołajSceneManager.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
1Tekst na ekranie
Canvas i tekstWyświetlanie wynikuFormatowanie liczbOdliczanie czasuPowtórka: prędkościomierz4Sceny i poziomy
Wczytaj scenęUruchom poziom ponownieNastępny poziomZachowaj między scenamiPodsumowanie: wybór poziomu2Przyciski i ekrany
Przyciski i onClickLambdyPodłączanie w InspectorzeWłączanie i wyłączanie paneliPaski zdrowiaPodsumowanie: sklep z ulepszeniami5Zapisywanie za pomocą PlayerPrefs
Zapisz liczbęWczytywanie z wartością domyślnąNajlepszy wynikZapisz ustawieniaPodsumowanie: monety w bankuPoćwicz samodzielnie: Edytor online Unity