Skift mellem scener

Side opdateret :
Dato for oprettelse af side :

Miljø til bekræftelse

Windows
  • Windows 11
Enhedslistens redaktør
  • 2020.3.25f1
Input System Pakke
  • 1.2.0

Forudsætninger for dette tip

Følgende indstillinger er foretaget på forhånd som en forudsætning for beskrivelsen af dette tip.

Se, hvordan du skifter mellem scener

En scene er en såkaldt "scene", men Unity bruger ordet "scene", som det er, så jeg vil forklare det med udtrykket scene.

Scener skifter ofte mellem scener i spillet. For eksempel, hvis du starter spillet fra startmenuen, og handlingen starter, kan du tænke på det som en sceneskift. Handlingen med at åbne menuskærmen under en handling vil også være en scenekontakt afhængigt af menuudtrykket.

Denne form for sceneskift skal implementeres i Unity, og der er mange måder at gøre det på. For eksempel bør der kun være en "Scene (i enhed)" i spillet. Når spilscenen ændres, kasseres alle objekter fra den forrige scene, og de nødvendige objekter genereres til den næste scene. Men selvom denne tilgang har fordelen ved kun at levere én scene, har den ulempen ved at skulle programmere styring af objektovergange.

I dette tip vil jeg gerne implementere en metode til at forberede så mange "Scene" -filer, som der er scener, og placere de nødvendige objekter i scenen på forhånd for at skifte scener. Det er meget let at skifte mellem faktiske scener, fordi alt hvad du skal gøre er at skifte mellem scenefiler.

Forberedelse af scenen

Opret først et normalt projekt. Det antages, at du allerede har forberedt inputsystempakken og konfigureret kameraet.

Denne gang forbereder vi to scenefiler og implementerer operationen med at klikke på knappen i den første scene og overgå til den anden scene.

Den SampleScene eksisterende scene skal navngives , så skift dette SampleScene1 til .

Højreklik derefter på et tomt område af projektet og vælg "Scene" fra "Opret". Du kan også tilføje det fra knappen + under projektfanen.

En ny scenefil tilføjes, så navngiv SampleScene2 den .

SampleScene1 Dobbeltklik for at åbne scenen og placere objektet som vist nedenfor. Når du klikker på knappen, kan du SampleScene2 skifte til , så layoutet kan være passende.

SampleScene2 Dobbeltklik for at åbne scenen og placere objektet som vist nedenfor. Det betyder ikke noget, hvad du lægger, fordi du bare vil vide, hvad der har ændret sig.

Når du har oprettet scenen, skal du åbne "File > Build Settings" i menuen.

Indsæt scener, der er inkluderet i SampleScene2 buildet.

Luk Build-indstillinger, når de er tilføjet som vist nedenfor.

Scene skift proces

Sceneskift udføres efter script, så opret venligst et script. Navnet er vilkårligt, men i dette tilfælde SceneChange er det .

Scriptet ser sådan ud:

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

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

Indholdet er meget enkelt SceneManager.LoadScene , og du kan skifte mellem scener ved hjælp af opkaldsmetoder.

Det første argument er navnet på den scene, der skal skiftes til.

Hvis du angiver som det LoadSceneMode.Single andet argument, kan du kun åbne den angivne scene, mens du lukker den aktuelle scene. Der er også en parameter kaldet blot tilføj LoadSceneMode.Additive scene, men jeg vil ikke forklare det i denne artikel.

Når du har gemt scriptet, SampleScene1 skal du åbne og vedhæfte det til . EventSystem Det kan være ethvert objekt, du vedhæfter til.

Indstil OnClick knappens klikhændelse til et objekt, der er knyttet til, SceneChange så metoden kan kaldes.

Prøv at køre spillet og se, om scenen ændrer sig, når du har klikket på knappen.