Membuat Game 2D Sederhana dengan Unity (Part 5)

2222-1024x535

Oke, sebelum keburu basi mari kita lanjut ke video selanjutnya, yaitu menambahkan Score pada game. Video dari Brackeys seperti berikut :

Kita telah memiliki Game Object dengan nama _GM sebagai game manager. System score tersebut akan kita simpan sebagai komponen script pada objek _GM. Pada _GM buatlah script baru dengan nama GameManager dengan language Java Script seperti berikut :

Double klik pada komponen GameManager (script) tersebut sehingga muncul jendela monodevelop. Buat beberapa variable. Ada tiga variable yang kita butuhkan : variable score untuk player 1, variable score untuk player 2, dan variable berupa GUISkin sebagai indicator score.

Mengapa harus menggunakan keyword ‘static’ pada variable playerScore01 dan playerScore02 ? Ini akan berhubungan dengan function yang akan kita gunakan selanjutnya. Kita akan membuat sebuah fungsi dimana ketika Player01 berhasil memantulkan bola dan Player02 tidak mendapatkannya, maka Player01 akan mendapatkan Score = 1 begitu pula sebaliknya. Simpel, kita akan menjadikan wall dari masing-masing arah berlawanan sebagai point. Misal jika bola datang dari arah Player01 (yang berada di kiri) kemudian menyentuh wall yang berada di kanan (setelah Player02) maka Player01 mendapatkan point = 1. Got it ? Maka jika dituliskan dalam Script akan menjadi seperti berikut :

Kita membuat suatu function dengan keyword static, why ? Karena kita akan memanggil function Score secara langsung dari manapun tanpa harus instance atau mendifinisikannya terlebih dahulu. Normalnya kita bisa menggunakan method ‘SendMessage’, namun harus didefinisikan terlebih dahulu atau wiring di inspector yang mana hal tersebut bukan yang kita inginkan saat ini. Kita membutuhkan method yang lebih cepat untuk system score atau system-system yang bersifat manager atau penggunaannya sering. Sebagai pemahaman selanjutnya Anda bisa mengikuti module tutorial dari Unity tentang static di sini.Dalam function Score buat variable String sebagai identifikasi wall mana yang telah tersenutuh bola; kiri atau kanan. Jika ternyata informasi yang diterima function score¬†ini adalah “RightWall”, maka 1 point untuk Player01, begitu juga sebaliknya.

Selanjutnya, siapa yang akan mengirimkan informasi “wall” ini ke GameManager (function score) ? Bila melihat skenarionya, kita bisa menggunakan objek Bola atau masing-masing wall (kiri dan kanan). Namun tutorial ini mengacu pada video brackeys, jadi kita akan menggunakan “LeftWall” dan “RightWall” sebagai pengirim pesan ke GameManager. Maka langkahnya sebagai berikut :

Seleksi kedua objek wall, kemudian tambahkan komponen script baru dengan nama PointScript atau apapun terserah Anda. Kemudian centang bagian ‘Is Trigger’ pada komponen Box Collider 2D (pada screenshoot belum di trigger). Buka script baru tersebut pada monodevelop, kemudian ubahlah menjadi seperti berikut :

OnTriggerEnter2D adalah sebuah fungsi dimana sebuah Collider dengan keadaan Trigger dimasuki atau bersentuhan (bukan Collision) dengan objek berkomponen Collider lainnya. Objek wall dengan keadaan Trigger nantinya akan di enter oleh objek Bola yang juga memiliki Collider, pada saat event tersebut, Do Something! Ya, kita akan mengirimkan informasi kepada GameManager bahwa bola telah menyentuh wall kiri atau kanan.

Perhatikan baris ‘GameManager.Score(wallName)’ : Baris ini adalah perintah untuk melakukan fungsi Score pada Script GameManager dengan arg berupa String yang berisi nama Objek dimana script ini diletakkan (transform.name). Sehingga proses penambahan score secara sederhana dapat di gambarkan seperti berikut :

Terakhir, kita akan menampilkan Score tersebut pada game. Pada script Game Manager tadi kita telah membuat variable untuk GUISkin. Sebelum membuat script untuk GUI nya, terlebih dahulu buat GUISkin pada folder asset, klik kanan seperti pada berikut :

Berinama sesuai keinginan Anda, kemudian drag-n-drop pada komponen GameManager seperti berikut :

Buka kembali script GameManager kemudian tambahkan fungsi baru berupa OnGUI berikut :

Pilih Save kemudian pilih GUISkin yang telah dibuat tadi. Pada tahap ini Anda bisa mengatur tampilan Score yang Anda inginkan seperti jenis font, style font, ukuran, warna dan lain-lain.

Hit Play! Jika langkahnya sudah benar, maka tampilannya akan seperti berikut :

Sistem Score berjalan dengan lancar, pada gambar diatas adalah ketika bola melewati Player02 kemudian menyentuh RightWall, maka +1 poin untuk Player01.

Berikut adalah Code lengkap script GameManager.js

PointScript.js

¬†What’s Next ?

Step selanjutnya adalah bagaimana Bola Respwan jika terjadi poin dan game terus berlanjut. Dibagian akhir kita akan mencoba porting game tersebut kedalam Platform Android.

Update!

Sepertinya untuk beberapa alasan seri ini tidak akan saya update lagi, selebihnya Anda bisa mengikuti lebih jauh tutorialnya lewat video di channel Youtubenya Brackeys. Selanjutnya saya akan sedikit banyak posting game-game clone atau seri tutorial-tutorial lainnya yang belum pernah (atas sepengetahuan saya) diposting atau dilakukan oleh orang lain. Bagi Anda yang ingin mendownload file project dari seri ini bisa Anda download filenya dibawah ini :


*Klik tombol salah satu atau beberapa tombol like / share untuk melihat link download. Bila menemukan link rusak harap kontak saya via twitter atau email. Terimakasih.

 

Related Posts:

5 thoughts on “Membuat Game 2D Sederhana dengan Unity (Part 5)

  1. […] buat function ‘ResizeGUI’ static. Why ? Silahkan baca post gue tentang hal tersebut di Sini. Pada ‘resizeRatio’ terdapat angka 1280 dan 800, itu adalah ukuran screen native yang […]

  2. Found your site on Facebook, great post. Will share again.

  3. kak, pas di ‘run/play’ setelah bola udah menyentuh diding salah satu, kenapa tidak mau looping atau play kembali?
    (setelah 1 – 0 bola ga muncul lg, player tetap bisa gerak.)

  4. skornya sudah 1 – 0 trus permainan berakhir???

Leave a Reply

Your email address will not be published. Required fields are marked *