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

Страницата се актуализира :
Дата на създаване на страница :

Среда за проверка

Уиндоус
  • Прозорци 11
Редактор на единство
  • 2020.3.25ф1
Пакет на входната система
  • 1.2.0

Предпоставки за този съвет

Следните настройки са направени предварително като предпоставка за описанието на този съвет.

Научете как да превключвате между сцени

Сцената е така наречената "сцена", но Unity използва думата "сцена" такава, каквато е, така че ще я обясня с израза сцена.

Сцените често превключват между сцените в играта. Например, ако започнете играта от стартовото меню и действието започне, можете да мислите за нея като за превключвател на сцената. Също така, действието на отваряне на екрана на менюто по време на действие също ще бъде превключване на сцена в зависимост от израза на менюто.

Този вид превключване на сцени трябва да бъде реализирано в Unity и има много начини да го направите. Например, трябва да има само една "Сцена (в единство)" в играта. Когато сцената на играта се промени, всички обекти от предишната сцена се изхвърлят и необходимите обекти се генерират за следващата сцена. Въпреки това, докато този подход има предимството да предоставя само една сцена, той има недостатъка, че трябва програмно да управлява обектните преходи.

В този съвет бих искал да внедря метод за подготовка на толкова "Scene" файлове, колкото има сцени и предварително поставяне на необходимите обекти в сцената за превключване на сцени. Превключването между действителните сцени е много лесно, защото всичко, което трябва да направите, е да превключвате между файловете на сцената.

Подготовка на сцената

Първо, създайте нормален проект. Предполага се, че вече сте подготвили пакета на входната система и сте конфигурирали камерата.

Този път ще подготвим два файла със сцени и ще реализираме операцията по щракване върху бутона в първата сцена и преминаване към втората сцена.

Съществуващата SampleScene сцена трябва да бъде наречена , така че променете това SampleScene1 на .

След това кликнете с десния бутон върху празна област на проекта и изберете "Сцена" от "Създаване". Можете също да го добавите от бутона + под раздела на проекта.

Ще бъде добавен нов файл със сцена, така че го наименувайте SampleScene2 .

SampleScene1 Щракнете двукратно, за да отворите сцената и да поставите обекта, както е показано по-долу. SampleScene2 Когато щракнете върху бутона, можете да преминете към , така че оформлението да е подходящо.

SampleScene2 Щракнете двукратно, за да отворите сцената и да поставите обекта, както е показано по-долу. Няма значение какво ще сложите, защото просто искате да знаете какво се е променило.

След като създадете сцената, отворете "File > Build Settings" от менюто.

Спад в сцените, включени в 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 методът да може да бъде извикан.

Опитайте да стартирате играта и вижте дали сцената се променя, след като кликнете върху бутона.