Переключення між сценами

Сторінка оновлюється :
Дата створення сторінки :

Середовище перевірки

Вікна
  • вікна 11
Редактор єдності
  • 2020.3.25f1
Пакет системи введення
  • 1.2.0

Передумови для цієї поради

Наступні настройки були зроблені заздалегідь як передумова для опису цієї поради.

Дізнайтеся, як переключатися між сценами

Сцена - це так звана «сцена», але 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 метод можна було викликати.

Спробуйте запустити гру і подивіться, чи зміниться сцена після натискання кнопки.