Загрузить сцену
Часть раздела Создание настоящих игр путешествия по Unity на Coddy. Урок 17 из 60.
Игра в Unity разделена на сцены: меню, каждый уровень, титры. Каждая сцена — отдельный файл со своими объектами, а скрипт переключает её на другую с помощью SceneManager.LoadScene из пространства имён UnityEngine.SceneManagement. Кнопка «Играть» в этом меню, настроенная в Inspector, открывает уровень Forest:
using UnityEngine;
using UnityEngine.SceneManagement;
public class MainMenu : MonoBehaviour
{
public void Play()
{
SceneManager.LoadScene("Forest");
}
}Unity может загружать только сцены, включённые в список сцен сборки: в Unity 6 он находится в разделе File > Build Profiles, в подразделе Scene List (в более старых версиях это окно называется Build Settings). Имя должно точно совпадать с именем файла сцены. Если сцена отсутствует в списке или в имени допущена опечатка, например "Forrest", ничего не загрузится, а в Console появится ошибка, начинающаяся с Scene 'Forrest' couldn't be loaded, в которой говорится, что сцена не добавлена в сборку, и игра останется в меню.
Переключение происходит не мгновенно. Сначала выполняется остаток текущего кадра, поэтому строки после LoadScene всё ещё выполняются; в начале следующего кадра Unity уничтожает все объекты старой сцены и создаёт новую, скрипты которой снова запускаются с Awake и Start.
Задание
ЛегкоСделай так, чтобы каждый портал загружал сцену, имя которой указано в sceneName.
- В начале
Portal.csдобавьusing UnityEngine.SceneManagement;. - Напиши
void OnTriggerEnter(Collider other): еслиother.CompareTag("Player"), вызовиSceneManager.LoadScene(sceneName);.
Нажми «Играть» и войди в каждый портал: по очереди загрузятся Desert, Hub и Glacier. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class Portal : MonoBehaviour
{
public string sceneName;
// когда игрок войдёт, загрузи сцену с именем sceneName
}
Все уроки раздела Создание настоящих игр
1Текст на экране
Холст и текстПокажем счётФорматирование чиселТаймер обратного отсчётаПовторение: спидометр4Сцены и уровни
Загрузить сценуПерезапустить уровеньСледующий уровеньСохранить между сценамиПовторение: выбор уровня2Кнопки и экраны
Кнопки и onClickЛямбдыСвязи в InspectorВключение и выключение панелейШкалы здоровьяПовторение: магазин улучшений5Сохранение с помощью PlayerPrefs
Сохранение числаЗагрузка со значением по умолчаниюРекордСохранение настроекПовторение: монеты в банкеПотренируйтесь самостоятельно: Песочница Unity