Växla mellan scener

Sidan uppdaterad :
Datum för skapande av sida :

Verifiering miljö

Windows
  • Fönster 11
Unity-redaktör
  • 2020.3.25F1
Paket för inmatningssystem
  • 1.2.0

Förutsättningar för det här tipset

Följande inställningar har gjorts i förväg som en förutsättning för beskrivningen av detta tips.

Läs om hur du växlar mellan scener

En scen är en så kallad "scen", men Unity använder ordet "scen" som det är, så jag kommer att förklara det med uttrycksscenen.

Scener växlar ofta mellan scener i spelet. Om du till exempel startar spelet från startmenyn och åtgärden startar kan du tänka på det som en scenväxling. Åtgärden att öppna menyskärmen under en åtgärd kommer också att vara en scenomkopplare beroende på menyuttrycket.

Denna typ av scenväxling måste implementeras i Unity, och det finns många sätt att göra det. Till exempel bör det bara finnas en "Scen (i enhet)" i spelet. När spelscenen ändras kasseras alla objekt från föregående scen och de nödvändiga objekten genereras för nästa scen. Men även om den här metoden har fördelen att den bara tillhandahåller en scen, har den nackdelen att den måste hantera objektövergångar programmatiskt.

I det här tipset vill jag implementera en metod för att förbereda så många "Scene" -filer som det finns scener och placera nödvändiga objekt i scenen i förväg för att byta scener. Att växla mellan faktiska scener är väldigt enkelt eftersom allt du behöver göra är att växla mellan scenfiler.

Förbereda scenen

Skapa först ett normalt projekt. Det antas att du redan har förberett inmatningssystempaketet och konfigurerat kameran.

Den här gången kommer vi att förbereda två scenfiler och implementera funktionen att klicka på knappen i den första scenen och övergå till den andra scenen.

Den SampleScene befintliga scenen ska namnges, så ändra detta SampleScene1 till .

Högerklicka sedan på ett tomt område i projektet och välj "Scene" från "Create". Du kan också lägga till den från + -knappen under projektfliken.

En ny scenfil kommer att läggas till, så namnge SampleScene2 den .

SampleScene1 Dubbelklicka för att öppna scenen och placera objektet enligt nedan. När du klickar på knappen kan du SampleScene2 övergå till , så att layouten kan vara lämplig.

SampleScene2 Dubbelklicka för att öppna scenen och placera objektet enligt nedan. Det spelar ingen roll vad du lägger eftersom du bara vill veta vad som har förändrats.

När du har skapat scenen öppnar du "File > Build Settings" från menyn.

Drop in-scener som ingår i SampleScene2 bygget.

Stäng Bygginställningar när de har lagts till enligt nedan.

Process för scenbyte

Scenbyte görs med skript, så skapa ett manus. Namnet är godtyckligt, men i det här fallet SceneChange är det .

Skriptet ser ut så här:

using UnityEngine;
using UnityEngine.SceneManagement;  // 追加

public class SceneChange : MonoBehaviour
{
  /// <summary>ボタンをクリックしたときに呼ばれます。</summary>
  public void OnClick()
  {
    // 指定したシーンを読み込み他のシーンは削除します
    SceneManager.LoadScene("SampleScene2", LoadSceneMode.Single);
  }
}

Innehållet är mycket enkelt SceneManager.LoadScene och du kan växla mellan scener genom att anropa metoder.

Det första argumentet är namnet på scenen att växla till.

Om du anger som det andra argumentet LoadSceneMode.Single kan du bara öppna den angivna scenen när du stänger den aktuella scenen. Det finns också en parameter som heter helt enkelt lägg till LoadSceneMode.Additive scen, men jag kommer inte att förklara det i den här artikeln.

När du har sparat skriptet SampleScene1 öppnar du och kopplar det till . EventSystem Det kan vara vilket objekt du bifogar till.

Ange OnClick knappens click-händelse till ett objekt som är kopplat till så att SceneChange metoden kan anropas.

Prova att köra spelet och se om scenen ändras efter att ha klickat på knappen.