Unity adalah salah satu platform pengembangan permainan yang paling populer di dunia saat ini. Dalam pengembangan permainan, seringkali kita perlu memindahkan pemain dari satu scene ke scene yang lain. Dalam artikel ini, akan dijelaskan cara pindah scene di Unity secara detail.
1. Menggunakan SceneManager
Unity menyediakan sebuah kelas bernama SceneManager yang dapat digunakan untuk mengatur transisi antar scene. Pertama, kita perlu mengimpor namespace UnityEngine.SceneManagement di bagian atas script.
Contoh penggunaan SceneManager untuk memindah scene adalah sebagai berikut:
using UnityEngine.SceneManagement;public class SceneController : MonoBehaviour{public void PindahScene(string namaScene){SceneManager.LoadScene(namaScene);}}
Dalam contoh di atas, kita membuat sebuah fungsi bernama PindahScene yang menerima parameter string namaScene. Fungsi ini akan memuat scene dengan nama yang diberikan. Misalnya, jika kita memanggil PindahScene(“Scene2”), maka Unity akan memuat scene dengan nama Scene2.
2. Menggunakan Build Settings
Cara lain untuk pindah scene di Unity adalah dengan menggunakan Build Settings. Build Settings adalah pengaturan yang berhubungan dengan proses membangun permainan. Untuk menggunakan Build Settings, kita perlu menambahkan semua scene yang ingin digunakan ke dalam pengaturan tersebut.
Langkah-langkahnya sebagai berikut:
- Buka Build Settings dengan cara pergi ke menu File > Build Settings.
- Tambahkan semua scene yang ingin digunakan dengan menekan tombol Add Open Scenes atau bisa juga dengan menyeret scene ke dalam daftar scene yang ada.
- Tentukan scene pertama yang akan dimuat saat permainan dijalankan dengan menekan tombol Set Active.
- Simpan pengaturan dengan menekan tombol Build atau Build And Run.
Setelah pengaturan Build Settings selesai, kita dapat menggunakan kode berikut untuk memindah scene:
using UnityEngine.SceneManagement;public class SceneController : MonoBehaviour{public void PindahScene(int nomorScene){SceneManager.LoadScene(nomorScene);}}
Di contoh di atas, kita membuat sebuah fungsi bernama PindahScene yang menerima parameter int nomorScene. Fungsi ini akan memuat scene dengan nomor yang diberikan berdasarkan urutan scene yang ditambahkan ke Build Settings.
3. Menggunakan AsyncOperation
Cara pindah scene di Unity yang ketiga adalah dengan menggunakan AsyncOperation. AsyncOperation adalah kelas yang digunakan untuk mengatur operasi asinkron, termasuk proses memuat scene.
Berikut adalah contoh penggunaan AsyncOperation untuk memindah scene:
using UnityEngine;using UnityEngine.SceneManagement;public class SceneController : MonoBehaviour{public void PindahScene(string namaScene){StartCoroutine(LoadSceneAsync(namaScene));}private IEnumerator LoadSceneAsync(string namaScene){AsyncOperation operasi = SceneManager.LoadSceneAsync(namaScene);while (!operasi.isDone){float progress = operasi.progress;// Tampilkan progress loading scene jika diperlukanyield return null;}}}
Pada contoh di atas, kita membuat sebuah fungsi bernama PindahScene yang menerima parameter string namaScene. Fungsi ini menggunakan StartCoroutine untuk memanggil fungsi LoadSceneAsync yang bertanggung jawab memuat scene secara asinkron. Dalam fungsi LoadSceneAsync, kita menggunakan AsyncOperation untuk mendapatkan kemajuan proses memuat scene. Jika operasi telah selesai (isDone bernilai true), kita dapat melanjutkan dengan kode setelah while loop.
4. Menggunakan DontDestroyOnLoad
Metode terakhir yang dapat digunakan untuk pindah scene di Unity adalah dengan menggunakan DontDestroyOnLoad. DontDestroyOnLoad adalah sebuah fungsi yang memungkinkan objek tetap ada saat pindah scene.
Berikut adalah contoh penggunaan DontDestroyOnLoad:
using UnityEngine;using UnityEngine.SceneManagement;public class SceneController : MonoBehaviour{private static SceneController instance;private void Awake(){if (instance == null){instance = this;DontDestroyOnLoad(gameObject);}else{Destroy(gameObject);}}public void PindahScene(string namaScene){SceneManager.LoadScene(namaScene);}}
Pada contoh di atas, kita menggunakan DontDestroyOnLoad pada objek yang terdapat dalam scene. Dengan demikian, objek tersebut akan tetap ada saat pindah scene. Kita juga menggunakan sebuah instance static untuk memastikan hanya ada satu objek SceneController yang aktif dalam permainan.
Kesimpulan
Pindah scene merupakan salah satu hal yang penting dalam pengembangan permainan menggunakan Unity. Dalam artikel ini, telah dijelaskan empat cara untuk melakukan pindah scene di Unity, yaitu menggunakan SceneManager, Build Settings, AsyncOperation, dan DontDestroyOnLoad. Setiap metode memiliki kelebihan dan cara penggunaannya masing-masing. Dengan memahami cara-cara tersebut, diharapkan pengembangan permainan menggunakan Unity dapat berjalan lebih lancar dan efisien.