Menu
CoddyTech

Muat Scene

Termasuk bagian Membangun Game Sungguhan dalam perjalanan Unity di Coddy. Pelajaran 17 dari 56.

Game Unity terbagi menjadi scene: menu, setiap level, dan kredit. Setiap scene adalah file tersendiri dengan object-nya sendiri, dan sebuah skrip beralih ke scene lain menggunakan SceneManager.LoadScene, dari namespace UnityEngine.SceneManagement. Tombol Play di menu ini, yang dihubungkan melalui Inspector, membuka level Forest:

using UnityEngine;
using UnityEngine.SceneManagement;

public class MainMenu : MonoBehaviour
{
    public void Play()
    {
        SceneManager.LoadScene("Forest");
    }
}

Unity hanya dapat memuat scene yang ada di daftar scene build: di Unity 6, daftar itu ada di File > Build Profiles, pada bagian Scene List (di versi lama, jendela ini disebut Build Settings). Namanya harus sama persis dengan nama file scene. Jika scene tidak ada dalam daftar, atau ada salah ketik seperti "Forrest", scene tidak akan dimuat dan Console menampilkan error yang diawali dengan Scene 'Forrest' couldn't be loaded serta menyebutkan bahwa scene belum ditambahkan ke build, lalu game tetap berada di menu.

Peralihan ini tidak terjadi seketika. Sisa frame saat ini berjalan terlebih dahulu, jadi baris setelah LoadScene tetap dijalankan. Pada awal frame berikutnya, Unity menghancurkan setiap object dari scene lama dan membangun scene baru, yang skripnya dimulai kembali dengan Awake dan Start.

challenge icon

Tantangan

Mudah

Sebuah hub dengan dua portal. Build ini memiliki tiga scene: Hub (yang pertama), Desert, dan Glacier. Di Hub, satu portal menuju Desert dan satu lagi menuju Glacier, dan masing-masing memiliki portal kembali ke Hub. Setiap portal memiliki script Portal, dan Inspector mengatur sceneName ke scene tujuan. Tombol panah menggerakkan Player (sudah siap).

Tulis Portal.cs: saat Player (dengan tag Player) berjalan masuk ke portal, muat scene yang namanya tercantum di sceneName portal tersebut.

Tekan Play, kunjungi kedua tempat, lalu tekan Check.

Coba sendiri

using UnityEngine;

public class Portal : MonoBehaviour
{
    public string sceneName;

    // saat pemain masuk, muat scene bernama sceneName
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Membangun Game Sungguhan