Academia.eduAcademia.edu

main-bab-9.pdf

Mahasiswa dapat membuat graphical user interface (GUI) game pada Unity3D.

BAB 9 User Interface 9.1 Tujuan • Mahasiswa dapat membuat graphical user interface (GUI) game pada Unity3D. • Mahasiswa dapat melakukan manipulasi GUI dan menambahkan HUD (Head-up display) pada game yang dirancang. . 9.2 Pengantar Kekuatan utama dalam sebuah game yaitu graphical user interface (GUI) yang interaktif dan menarik. Dengan adanya GUI yang menarik ini, pemain game akan merasa betah dan senang untuk tetap memainkan sebuah game. Selain itu, GUI ini juga akan memberikan informasi apa saja yang bisa dilakukan didalamnya sehingga pemain dapat dengan mudah menjalankan dan mengoperasikan game yang akan dimainkan. Pembuatan user interface game dalam Unity3D dapat dilakukan dengan beberapa cara, antara lain menggunakan script langsung, atau menggunakan properties yang dimiliki Unity. Keduanya sama-sama powerfull, dan akan lebih menguatkan lagi jika memahami keduanya. Beberapa bahasan tentang GUI lebih lanjut dapat ditemukan di internet baik dari dokumentasi manual resminya maupun dari tutorial lain yang ditulis oleh pengguna. Salah satu referensi pada kegiatan praktikum bab 9 ini adalah dari sini. https://www.raywenderlich.com/149464/introduction-to-unity-ui-part-1. 54 BAB 9. USER INTERFACE 9.3 9.3.1 55 Kegiatan Praktikum Kegiatan 1: Membuat GUI Menu Utama 1. Buat project baru dan simpan Scene pertama dengan nama ”MenuScene”. 2. https://www.raywenderlich.com/149464/introduction-to-unity-ui-part-1, adalah tempat mengunduh assets berupa gambar-gambar dan font pendukung. 3. Download assets dan ekstrak file tersebut lalu masukkan/import asset tersebut ke dalam project Unity dengan cara drag and drop ke project window. Dengan demikian assets yang dibutuhkan sudah masuk kedalam project. 4. Hal pertama adalah mengatur background game. Dari menu Game Object, pilih UI → Image → ganti nama Image menjadi img background. (a) (b) (c) Gambar 9.1: Pengaturan UI Canvas 5. Pilih asset gambar ”menu background” yang tadi diimport, perhatikan window inspector, ubah properties tersebut menjadi seperti pada gambar 9.1 (b). 6. Kembali ke window hierarchy dan pilih objek img background tadi, isi Source Image dengan gambar menu background yang baru saja diubah. Selanjutnya tekan tombol Set Native Size untuk mengatur ukuran asli gambar tersebut. Atur juga Pos X dan Pos Y pada posisi 0. 7. Pilih objek Canvas → Perhatikan Canvas Scaler (Sript) pada bagian Inspector window, ubah komponen window dari Constant Pixel Size menjadi Scale With Screen Size dan atur resolusinya menjadi 1136 x 600 seperti yang terlihat pada Gambar 9.1 (c). Dengan demikian, tampilan background akan terlihat full menutupi seluruh layar. 8. Selanjutnya akan kita tambahkan header game berupa gambar, untuk itu buat UI baru dengan cara: Game Object → UI → Image., lalu ubah namanya menjadi img header. → Isi Source Image dengan gambar header label. BAB 9. USER INTERFACE 56 9. Klik Set Native Size → Set Achors ke top-center → Atur posisi Pos X : 0 dan Pos Y : -100. (a) (b) (c) Gambar 9.2: Pengaturan gambar header. 10. Berikutnya adalah menambahkan Start Button, pilih menu Game Object → UI → Button → ubah namanya menjadi Btn start → Set Anchor menjadi bottomstrech → Atur Rect Transform Left dan Right = 350, Height = 80, Pos Y = 300 seperti pada gambar 9.2 (b). 11. Pilih elemen Text dibawah Btn start → Ganti text menjadi ”Start Game” → Ganti font menggunakan TitanOne-Regular → Ubah ukuran fornt menjadi 32 sehingga terlihat lebih besar. 12. Berikutnya mengatur background button, sebelumnya cari asset gambar btn 9slice normal yang bisa ditemukan di project window. Perhatikan bagian inspector window, ubah properties nya menjadi seperti pada gambar 9.2 (c) 13. Klik tombol Sprite Editor, ubah nilai Border menjadi L:14, R:14, B:16, T:16 dan klik apply. 14. Lakukan hal yang sama untuk asset gambar btn 9slice highlighted dan btn 9slice pressed, sprite tersebut akan digunakan untuk membuat perilaku berbeda ketika tombol ditekan dan saat mouse berada diatas button. 15. Kembali ke objek Btn start, atur Source Image : btn 9slice normal, Transition : Sprite Swap dan atur masing-masing komponen untuk Highlighted Sprite dan Pressed Sprite seperti pada gambar 9.3 16. Jalankan game dan perhatikan tombol tersebut saat ditekan maupun mouse berada diatas tombol. BAB 9. USER INTERFACE 57 Gambar 9.3: Pengaturan behavior button 17. Berikutnya lakukan hal yang sama untuk membuat tombol pengaturan dengan ketentuan sebagai berikut : nama: Btn Settings; Rect Transform: Left dan Right : 400, Height : 70 dan Pos Y : 180 Text: Settings; Fontsize: 24 9.3.2 Kegiatan 2: Event Handler 1. Saat membuat button untuk menangani event (event handler ), perlu menentukan fungsi (method) mana yang digunakan untuk memanggilnya. Karena tidak mungkin menggunakan fungsi/method statis, maka perlu membuat method yang bersifat public agar dapat diakses kelas (class) lain. 2. Buat Game object kosong : Game Object → Create Empty → Ubah namanya menjadi UIManager. 3. Tambahkan Script C# baru dengan nama UIManagerScript pada obejk UIManager tersebut yang nantinya akan digunakan untuk melakukan pemanggilan method/fungsi ketika button Start Game diklik maka akan lari ke Scene berikutnya, yaitu play game arena. 4. Buka Script tersebut dan tambahkan using UnityEngine.SceneManagement; di header program atau bagian atas program sebelum nama kelas (class). 5. Buat Scene baru dengan nama GameScene, yang akan digunakan sebagai arena permainan. 6. Tambahkan objek baru berupa plane dan Cube seperti pada kegiatan-kegiatan praktikum sebelumnya. BAB 9. USER INTERFACE 58 7. Supaya dapat dipanggil saat game dijalankan, maka GameScene tersebut perlu ditambahkan ke build & setting, caranya : File → Build & Settings → tekan tombol Add Open Scenes. Atau dengan cara lain, drag and drop GameScene kedalam Scene in Build. 8. Tambahkan Script berikut pada UIManagerScript: 1 2 3 4 ♣✉❜❧✐❝ ✈♦✐❞ JalankanGameScene() { SceneManager.LoadScene("GameScene"); } 9. Kembali ke MenuScene dan pilih tombol Btn start. Perhatikan komponen Button (Script) pada bagian inspector window, tekan tombol plus untuk menambah action seperti pada gambar 9.4 (a). (a) (b) Gambar 9.4: Menambahkan action event handler. 10. Isikan filed None dengan UIManager, Pilih method JalankanGameScene, yaitu fungsi/method yang dibuat sebelumnya seperti pada gambar 9.4 (b). 11. Jalankan game dan tekan tombol Star Game maka akan dilarikan ke GameScene. 9.3.3 Kegiatan 3: Menambahkan HUD 1. HUD atau Head-up Display merupakan user interface suatu game yang memberikan informasi tentang kondisi game saat itu, misalnya skor, health dan komponen lain. HUD ini akan selalu berada pada koordinat yang sama meskipun karakter game bergerak menelusuri seluruh area. 2. Buka GameScene, karena HUD akan dipasang disitu. 3. Pada objek Main Camera, tambahkan Script baru bernama Hud , kemudian buka file tersebut dan tambahkan variabel counter bertipe integer serta nilai awal 0. int counter = 0; BAB 9. USER INTERFACE 59 4. Tambahkan method/fungsi baru bernama OnGUI (perhatikan huruf besar kecilnya karena case sensitive), lalu tambahkan label dengan script: GUI.Label (new Rect (10, 10, 200, 50), "Clicked: "+counter);. Sehingga script menjadi: 1 2 ✈♦✐❞ OnGUI() { GUI.Label (♥❡✇ Rect (10, 10, 200, 50), "Counter: "+counter); 3 } 5. Bagian method/fungsi Update(), tambahkan script berikut: 1 2 3 4 5 6 7 8 ✈♦✐❞ Update() { ✐❢ (Input.GetKeyDown("space")){ print("space key was pressed"); counter = counter + 1; } ✐❢ (Input.GetKey(KeyCode.RightArrow)){ transform.Translate(Vector3.right * Time.deltaTime, Camera.main.transform); print("right arrow ditekan"); 9 10 11 12 13 14 15 16 } ✐❢ (Input.GetKey(KeyCode.LeftArrow)) { transform.Translate(Vector3.left * Time.deltaTime, Camera.main.transform); print("left arrow ditekan"); } } 6. Jalankan game dan jika tombol spasi ditekan, maka nilai counter akan bertambah satu. Sementara jika tombol panah kanan dan kiri ditekan, maka kamera akan bergerak, sedangkan posisi nilai counter akan tetap. 9.4 Tugas 1. Lakukan modifikasi HUD kegiatan 3 agar tampilannya menjadi lebih menarik seperti pada kegiatan 1 dan 2. BAB 9. USER INTERFACE 60 2. Buat beberapa HUD baru untuk menampilkan prperty health atau properti yang lain. 3. Tambahkan tombol stop atau exit GameScene, artinya jika tombol tersebut ditekan maka akan keluar dari GameScene dan kembali ke menu utama (MenuScene). 4. Lakukan eksperimen untuk GUI selain Button dan label, misalnya Box, Text, Toggle, dll.