Переключение между сценами

Страница обновлена :
Дата создания страницы :

Среда верификации

Виндоус
  • 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 можно было вызвать метод.

Попробуйте запустить игру и посмотрите, изменится ли сцена после нажатия кнопки.