Переключение между сценами
Среда верификации
- Виндоус
-
- Windows 11
- Редактор Unity
-
- 2020.3.25f1
- Входной системный пакет
-
- 1.2.0
Предпосылки для этого совета
Следующие настройки были сделаны заранее в качестве предпосылки для описания этого совета.
Узнайте, как переключаться между сценами
Сцена — это так называемая «сцена», но Unity использует слово «сцена» как таковое, поэтому я объясню это сценой выражения.
Сцены часто переключаются между сценами в игре. Например, если вы запускаете игру из меню «Пуск» и начинается действие, вы можете думать об этом как о переключении сцены. Кроме того, действие по открытию экрана меню во время действия также будет переключателем сцены в зависимости от выражения меню.
Такое переключение сцен должно быть реализовано в Unity, и есть много способов сделать это. Например, в игре должна быть только одна "Сцена (в Unity)". При смене игровой сцены все объекты из предыдущей сцены отбрасываются, а необходимые объекты генерируются для следующей сцены. Однако, несмотря на то, что этот подход имеет то преимущество, что предоставляет только одну сцену, он имеет недостаток, заключающийся в необходимости программного управления переходами объектов.
В этом совете я хотел бы реализовать метод подготовки как можно большего количества файлов «Сцены», сколько есть сцен и заранее разместить в сцене необходимые объекты для переключения сцен. Переключаться между реальными сценами очень просто, потому что все, что вам нужно сделать, это переключаться между файлами сцены.
Подготовка сцены
Во-первых, создайте нормальный проект. Предполагается, что вы уже подготовили входной системный пакет и настроили камеру.
На этот раз мы подготовим два файла сцены и реализуем операцию нажатия кнопки в первой сцене и перехода ко второй сцене.
Существующая SampleScene
сцена должна иметь имя , поэтому измените его SampleScene1
на .
Далее кликните правой кнопкой мыши по пустой области проекта и выберите «Сцена» из «Создать». Вы также можете добавить его с помощью кнопки + под вкладкой проекта.
Будет добавлен новый файл сцены, поэтому назовите SampleScene2
его .
SampleScene1
Дважды щелкните, чтобы открыть сцену и разместить объект, как показано ниже.
Когда вы нажимаете кнопку, вы SampleScene2
можете перейти к , поэтому макет может быть подходящим.
SampleScene2
Дважды щелкните, чтобы открыть сцену и разместить объект, как показано ниже.
Неважно, что вы ставите, потому что вы просто хотите знать, что изменилось.
После создания сцены откройте «Файл > Настройки сборки» из меню.
Добавьте сцены, включенные в SampleScene2
сборку.
Закройте параметры сборки после их добавления, как показано ниже.
Процесс переключения сцен
Переключение сцен осуществляется по сценарию, поэтому, пожалуйста, создайте сценарий. Название произвольное, но в данном случае SceneChange
это .
Скрипт выглядит следующим образом:
using UnityEngine;
using UnityEngine.SceneManagement; // 追加
public class SceneChange : MonoBehaviour
{
<summary>ボタンをクリックしたときに呼ばれます。</summary>
public void OnClick()
{
// 指定したシーンを読み込み他のシーンは削除します
SceneManager.LoadScene("SampleScene2", LoadSceneMode.Single);
}
}
Контент очень прост, SceneManager.LoadScene
и вы можете переключаться между сценами, вызывая методы.
Первый аргумент — это имя сцены, на которую нужно переключиться.
Если вы укажете в качестве LoadSceneMode.Single
второго аргумента, вы сможете открыть только указанную сцену, закрыв текущую сцену.
Существует также параметр, который называется просто добавить LoadSceneMode.Additive
сцену, но я не буду объяснять его в этой статье.
После сохранения сценария SampleScene1
откройте и прикрепите его к . EventSystem
Это может быть любой объект, к которому вы прикрепляетесь.
Присвойте OnClick
событию нажатия кнопки объект, к которому прикреплен метод, чтобы SceneChange
можно было вызвать метод.
Попробуйте запустить игру и посмотрите, изменится ли сцена после нажатия кнопки.