Belajar Unity - Memperbaiki Application.LoadLevel is obsolete - IMedia9 - Education

Breaking

Sunday, July 24, 2016

Belajar Unity - Memperbaiki Application.LoadLevel is obsolete



Postingan pendek kali ini akan membahas tentang cara membuat game dengan Unity, khususnya permasalahan sejuta umat yang dialami oleh para programmer Unity pasca versi 5.3++. Pada versi ini adalah sebuah class baru yang menyebabkan fungsi pada versi sebelumnya obosolete.
Masalah obosolete ini sebenarnya bukan error sih, cuma masalah warning saja yang menyebutkan kalau fungsi yang dipakai sebaiknya ditinggalkan dan menggunakan fungsi yang baru saja.
Fungsi yang dimaksud pada postingan kali ini adalah:

Application.LoadLevel

Kebetulan buku saya terbit pas awal2 versi 5.3 dan sialnya, fungsi itu sudah diimplementasikan. Jadi banyak yang komplain soal perbedaan fungsi. Jangan salahin saya, salahin aja tukang cetaknya, eh? Salahin aja developer Unity-nya.

Ngapain sering2 banget update versi, hehehe.

Warning yang dimaksud bentuknya kurang lebih seperti berikut. Ingat! Ini cuma warning karena sebenarnya scriptnya nggak error. Alias fungsi ini masih bisa dipakai. Cuma obosolete doang.
Apa itu obosolete? Cari aja di google. Saya juga nggak tahu terjemahannya, hehehe.

Troubleshooting01

Biasanya, warning ini muncul kalau anda memanggil fungsi Application.LoadLevel seperti di bawah:

1:  using UnityEngine;  
2:  using System.Collections;  
3:  public class ClickMe : MonoBehaviour {  
4:       // Use this for initialization  
5:       void Start () {  
6:       }  
7:       // Update is called once per frame  
8:       void Update () {  
9:       }  
10:       void OnGUI(){  
11:            if (GUI.Button(new Rect(10,10,100,50), "Load Scenes")){  
12:                 Application.LoadLevel("Scene02");  
13:            }  
14:       }  
15:  }  

Terus bagaimana cara mengatasinya?
Cukup dengan mengganti baris itu dengan fungsi lain yaitu SceneManager.LoadScene. Mudah kan?

1:  using UnityEngine;  
2:  using System.Collections;  
3:  using UnityEngine.SceneManagement;  
4:  public class ClickMe2 : MonoBehaviour {  
5:       // Use this for initialization  
6:       void Start () {  
7:       }  
8:       // Update is called once per frame  
9:       void Update () {  
10:       }  
11:       void OnGUI(){  
12:            if (GUI.Button(new Rect(10,10,100,50), "Load Scene")){  
13:                 SceneManager.LoadScene("Scene02");  
14:            }  
15:       }  
16:  }  

Oh, karena kasus ini menggunakan "makhluk" baru yang bernama SceneManager maka diperlukan deklarasi class-nya yaitu using SceneManagement. Lihat baris 3.

Nah, segitu saja dulu barangkali postingan kali ini.

Semoga bermanfaat.

No comments:

Post a Comment