Växla mellan scener
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.