Passare da una scena all'altra
Ambiente di verifica
- Finestre
-
- Windows 11
- Unity Editor
-
- 2020.3.25F1
- Pacchetto del sistema di input
-
- 1.2.0
Prerequisiti per questo suggerimento
Le seguenti impostazioni sono state effettuate in anticipo come premessa per la descrizione di questo suggerimento.
Scopri come passare da una scena all'altra
Una scena è una cosiddetta "scena", ma Unity usa la parola "scena" così com'è, quindi la spiegherò con l'espressione scena.
Le scene spesso passano da una scena all'altra del gioco. Ad esempio, se avvii il gioco dal menu Start e inizia l'azione, puoi pensarlo come un cambio di scena. Inoltre, l'azione di apertura della schermata del menu durante un'azione sarà anche un cambio di scena a seconda dell'espressione del menu.
Questo tipo di cambio di scena deve essere implementato in Unity e ci sono molti modi per farlo. Ad esempio, dovrebbe esserci solo una "Scena (in Unity)" nel gioco. Quando la scena di gioco cambia, tutti gli oggetti della scena precedente vengono scartati e gli oggetti necessari vengono generati per la scena successiva. Tuttavia, sebbene questo approccio abbia il vantaggio di fornire una sola scena, presenta lo svantaggio di dover gestire a livello di codice le transizioni degli oggetti.
In questo suggerimento, vorrei implementare un metodo per preparare tanti file "Scena" quante sono le scene e posizionare gli oggetti necessari nella scena in anticipo per cambiare scena. Passare da una scena reale all'altra è molto semplice perché tutto ciò che devi fare è passare da un file di scena all'altro.
Preparazione della scena
Innanzitutto, crea un progetto normale. Si presuppone che il pacchetto del sistema di input sia già stato preparato e configurato la telecamera.
Questa volta, prepareremo due file di scena e implementeremo l'operazione di fare clic sul pulsante nella prima scena e passare alla seconda scena.
La SampleScene
scena esistente dovrebbe essere denominata , quindi cambialo SampleScene1
in .
Quindi, fai clic con il pulsante destro del mouse su un'area vuota del progetto e seleziona "Scena" da "Crea". Puoi anche aggiungerlo dal pulsante + sotto la scheda del progetto.
Verrà aggiunto un nuovo file di scena, quindi chiamalo SampleScene2
.
SampleScene1
Fare doppio clic per aprire la scena e posizionare l'oggetto come illustrato di seguito.
Quando si SampleScene2
fa clic sul pulsante, è possibile passare a , in modo che il layout possa essere appropriato.
SampleScene2
Fare doppio clic per aprire la scena e posizionare l'oggetto come illustrato di seguito.
Non importa cosa metti perché vuoi solo sapere cosa è cambiato.
Dopo aver creato la scena, apri "File > Build Settings" dal menu.
Elimina le scene incluse nella SampleScene2
build.
Chiudi le impostazioni di compilazione una volta aggiunte come mostrato di seguito.
Processo di cambio scena
Il cambio di scena viene eseguito tramite script, quindi crea uno script. Il nome è arbitrario, ma in questo caso SceneChange
è .
Lo script è simile al seguente:
using UnityEngine;
using UnityEngine.SceneManagement; // 追加
public class SceneChange : MonoBehaviour
{
<summary>ボタンをクリックしたときに呼ばれます。</summary>
public void OnClick()
{
// 指定したシーンを読み込み他のシーンは削除します
SceneManager.LoadScene("SampleScene2", LoadSceneMode.Single);
}
}
Il contenuto è molto semplice SceneManager.LoadScene
e puoi passare da una scena all'altra chiamando metodi.
Il primo argomento è il nome della scena a cui passare.
Se specificate come LoadSceneMode.Single
secondo argomento, potete aprire solo la scena specificata mentre chiudete la scena corrente.
C'è anche un parametro chiamato semplicemente aggiungi LoadSceneMode.Additive
scena, ma non lo spiegherò in questo articolo.
Dopo aver salvato lo script, SampleScene1
aprirlo e collegarlo a . EventSystem
Può essere qualsiasi oggetto a cui ti alleghi.
Impostare OnClick
l'evento click del pulsante su un oggetto associato in modo che il SceneChange
metodo possa essere chiamato.
Prova a eseguire il gioco e vedi se la scena cambia dopo aver fatto clic sul pulsante.