Comutați între scene

Pagina actualizată :
Data creării paginii :

Mediul de verificare

Windows
  • Ferestre 11
Unity Editor
  • 2020.3.25F1
Pachet sistem de intrare
  • 1.2.0

Cerințe preliminare pentru acest sfat

Următoarele setări au fost făcute în avans ca premisă pentru descrierea acestui sfat.

Află cum să comuți între scene

O scenă este o așa-numită "scenă", dar Unity folosește cuvântul "scenă" așa cum este, așa că o voi explica cu expresia scenă.

Scenele comută adesea între scenele din joc. De exemplu, dacă porniți jocul din meniul de pornire și începe acțiunea, vă puteți gândi la acesta ca la un comutator de scenă. De asemenea, acțiunea de deschidere a ecranului meniului în timpul unei acțiuni va fi, de asemenea, un comutator de scenă în funcție de expresia meniului.

Acest tip de schimbare a scenei trebuie implementat în Unity și există multe modalități de a face acest lucru. De exemplu, ar trebui să existe o singură "Scenă (în unitate)" în joc. Când scena jocului se schimbă, toate obiectele din scena anterioară sunt aruncate și obiectele necesare sunt generate pentru scena următoare. Cu toate acestea, în timp ce această abordare are avantajul de a oferi o singură scenă, are dezavantajul de a trebui să gestioneze programatic tranzițiile obiectelor.

În acest sfat, aș dori să implementez o metodă de pregătire a cât mai multor fișiere "Scenă" câte scene există și plasarea obiectelor necesare în scenă în avans pentru comutarea scenelor. Comutarea între scenele reale este foarte ușoară, deoarece tot ce trebuie să faceți este să comutați între fișierele scenei.

Pregătirea scenei

În primul rând, creați un proiect normal. Se presupune că ați pregătit deja pachetul sistemului de intrare și ați configurat camera.

De data aceasta, vom pregăti două fișiere de scenă și vom implementa operația de a face clic pe butonul din prima scenă și de a trece la a doua scenă.

Scena SampleScene existentă ar trebui să fie numită , deci schimbați acest lucru SampleScene1 în .

Apoi, faceți clic dreapta pe o zonă goală a proiectului și selectați "Scenă" din "Creați". De asemenea, îl puteți adăuga din butonul + de sub fila proiectului.

Va fi adăugat un nou fișier de scenă, deci numiți-l SampleScene2 .

SampleScene1 Faceți dublu clic pentru a deschide scena și plasați obiectul așa cum se arată mai jos. Când faceți SampleScene2 clic pe buton, puteți trece la , astfel încât aspectul să poată fi adecvat.

SampleScene2 Faceți dublu clic pentru a deschide scena și plasați obiectul așa cum se arată mai jos. Nu contează ce pui pentru că vrei doar să știi ce s-a schimbat.

După crearea scenei, deschideți "File > Build Settings" din meniu.

Scene incluse în SampleScene2 construcție.

Închideți setările de compilare odată ce sunt adăugate așa cum se arată mai jos.

Procesul de comutare a scenei

Comutarea scenelor se face prin script, așa că vă rugăm să creați un script. Numele este arbitrar, dar în acest caz SceneChange este .

Scenariul arată astfel:

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

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

Conținutul este foarte simplu SceneManager.LoadScene și puteți comuta între scene prin metode de apelare.

Primul argument este numele scenei la care trebuie să treceți.

Dacă specificați ca LoadSceneMode.Single al doilea argument, puteți deschide numai scena specificată în timp ce închideți scena curentă. Există, de asemenea, un parametru numit pur și simplu adăugați LoadSceneMode.Additive scenă, dar nu îl voi explica în acest articol.

După ce salvați scriptul, SampleScene1 deschideți-l și atașați-l la . EventSystem Poate fi orice obiect pe care îl atașați.

Setați OnClick evenimentul de clic al butonului la un obiect atașat, astfel încât SceneChange metoda să poată fi apelată.

Încercați să rulați jocul și vedeți dacă scena se schimbă după ce faceți clic pe buton.