Menu
CoddyTech

Level Berikutnya

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

Setiap scene dalam daftar scene build memiliki nomor, yaitu indeks build: 0 untuk yang pertama, 1 untuk berikutnya, dan seterusnya. LoadScene menerima nomor itu selain nama, dan SceneManager.sceneCountInBuildSettings menyatakan jumlah scene dalam daftar. Karena level-level tersusun berurutan dalam daftar, indeks level berikutnya adalah indeks scene aktif ditambah 1. Pintu keluar ini memuatnya, lalu berhenti setelah level terakhir:

void OnTriggerEnter(Collider other)
{
    if (!other.CompareTag("Player")) return;
    int next = SceneManager.GetActiveScene().buildIndex + 1;
    if (next < SceneManager.sceneCountInBuildSettings)
    {
        SceneManager.LoadScene(next);
    }
    else
    {
        Debug.Log("You finished the game!");
    }
}

Dengan empat scene, indeksnya adalah 0 sampai 3 dan sceneCountInBuildSettings bernilai 4, jadi di level terakhir next bernilai 4, satu angka melewati indeks terakhir. Itulah sebabnya pengujiannya adalah next < sceneCountInBuildSettings: LoadScene(4) tidak akan memuat apa pun dan akan mencatat error Unity Cannot load scene: Invalid scene name (empty string) and invalid build index 4.

Satu skrip pintu keluar kini berlaku untuk setiap level, dan tidak ada skrip yang menyebutkan nama scene. Untuk menambahkan level, tambahkan scene-nya ke daftar; untuk mengubah urutannya, seret scene-scene di dalam daftar.

challenge icon

Tantangan

Mudah

Build mencantumkan empat scene: Menu (indeks 0), lalu Level1, Level2, dan Level3. Tombol Play di Menu membuka Level1, dan tombol panah menggerakkan Player (keduanya sudah siap). Setiap level memiliki Goal berwarna emas dengan skrip Goal. Tulis skrip tanpa menyebut nama scene apa pun:

  • Di Start, tampilkan nomor level ini dan jumlah level di levelText, dengan format Level 2 of 3. Menu bukan level.
  • Saat Player (dengan tag Player) mencapai goal, muat level berikutnya dalam daftar. Setelah level terakhir, kembali ke Menu.

Tekan Play, mainkan ketiga level sampai selesai, lalu tekan Check.

Coba sendiri

using UnityEngine;
using UnityEngine.SceneManagement;
using TMPro;

public class Goal : MonoBehaviour
{
    public TMP_Text levelText;

    void Start()
    {
        // Tampilkan "Level 2 of 3": nomor level ini dan jumlah seluruh level
    }

    void OnTriggerEnter(Collider other)
    {
        // Pemain mencapai tujuan: muat level berikutnya, atau menu setelah level terakhir
    }
}
quiz iconUji dirimu

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

Semua pelajaran di Membangun Game Sungguhan