Schakelen tussen scènes

Pagina bijgewerkt :
Aanmaakdatum van pagina :

Verificatieomgeving

Ramen
  • Voor Windows 11
Unity Editor
  • 2020.3.25f1
Input systeem pakket
  • 1.2.0

Vereisten voor deze tip

De volgende instellingen zijn vooraf gemaakt als uitgangspunt voor de beschrijving van deze tip.

Meer informatie over het schakelen tussen scènes

Een scène is een zogenaamde "scène", maar Unity gebruikt het woord "scène" zoals het is, dus ik zal het uitleggen met de uitdrukking scène.

Scènes wisselen vaak tussen scènes in het spel. Als je het spel bijvoorbeeld start vanuit het startmenu en de actie begint, kun je het zien als een scèneschakelaar. Ook zal de actie van het openen van het menuscherm tijdens een actie ook een scèneschakelaar zijn, afhankelijk van de menu-expressie.

Dit soort scènewisselingen moet worden geïmplementeerd in Unity, en er zijn veel manieren om dit te doen. Er mag bijvoorbeeld maar één "Scène (in Unity)" in het spel zijn. Wanneer de spelscène verandert, worden alle objecten uit de vorige scène weggegooid en worden de benodigde objecten gegenereerd voor de volgende scène. Hoewel deze aanpak het voordeel heeft dat er slechts één scène wordt geboden, heeft deze het nadeel dat objectovergangen programmatisch moeten worden beheerd.

In deze tip wil ik een methode implementeren om zoveel mogelijk "Scène" -bestanden voor te bereiden als er scènes zijn en de benodigde objecten van tevoren in de scène te plaatsen voor het wisselen van scènes. Schakelen tussen echte scènes is heel eenvoudig omdat u alleen maar hoeft te schakelen tussen scènebestanden.

De scène voorbereiden

Maak eerst een normaal project. Er wordt van uitgegaan dat u het invoersysteempakket al hebt voorbereid en de camera hebt geconfigureerd.

Deze keer bereiden we twee scènebestanden voor en implementeren we de werking van het klikken op de knop in de eerste scène en de overgang naar de tweede scène.

De SampleScene bestaande scène moet een naam krijgen, dus wijzig dit SampleScene1 in .

Klik vervolgens met de rechtermuisknop op een leeg gebied van het project en selecteer "Scène" van "Maken". U kunt het ook toevoegen via de knop + onder het tabblad Project.

Er wordt een nieuw scènebestand toegevoegd, dus geef het een naam SampleScene2 .

SampleScene1 Dubbelklik om de scène te openen en plaats het object zoals hieronder weergegeven. Wanneer u op de knop klikt, kunt u SampleScene2 overschakelen naar , zodat de lay-out geschikt kan zijn.

SampleScene2 Dubbelklik om de scène te openen en plaats het object zoals hieronder weergegeven. Het maakt niet uit wat je plaatst, want je wilt gewoon weten wat er is veranderd.

Nadat u de scène hebt gemaakt, opent u "File > Build Settings" in het menu.

Drop in scènes die zijn opgenomen in SampleScene2 build.

Sluit build-instellingen zodra ze zijn toegevoegd, zoals hieronder wordt weergegeven.

Scènewisselingsproces

Scènewisseling gebeurt per script, dus maak een script. De naam is arbitrair, maar in dit geval SceneChange is het .

Het script ziet er als volgt uit:

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

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

De inhoud is heel eenvoudig SceneManager.LoadScene en u kunt schakelen tussen scènes door methoden aan te roepen.

Het eerste argument is de naam van de scène waarnaar moet worden overgeschakeld.

Als u als LoadSceneMode.Single tweede argument opgeeft, kunt u alleen de opgegeven scène openen terwijl u de huidige scène sluit. Er is ook een parameter genaamd simply add LoadSceneMode.Additive scene, maar ik zal het in dit artikel niet uitleggen.

Nadat u het script hebt opgeslagen, SampleScene1 opent u het en koppelt u het aan . EventSystem Het kan elk object zijn waar je aan hecht.

Stel OnClick de klikgebeurtenis van de knop in op een object dat is gekoppeld aan een object, zodat de SceneChange methode kan worden aangeroepen.

Probeer het spel uit te voeren en kijk of de scène verandert nadat je op de knop hebt geklikt.