Membuat Game Android Dengan Unity : Space Sonic (Part 4)

ss1

Oke, sebelumnya maaf banget jika seri tutorial ini lama banget updatenya dikarenakan beberapa waktu lalu ketika saya sedang backup beberapa data project ini tidak terbackup dan asusmsi saya file-filenya tidak bisa saya temukan lagi. Namun kemarin ternyata project tersebut sempat saya backup di cloud dan ketika dibuka kembali sudah bisa dijalankan. So, here we go.

Sesuai janji saya, tutorial kali ini kita akan membahas pembuatan enemy system, setelah di part sebelumnya : Membuat Game Android Dengan Unity : Space Sonic (Part 3) kita telah membuat shooting system untuk player. Buka kembali project yang sudah kita buat. Buat game object kosong dengan nama “Enemies” yang nantinya dalam objek ini akan kita simpan objek-objek musuhnya.

Pada windows ‘Project’ pilih sprites enemy, kemudian drag pada objek Enemies yang sudah kita buat tadi. Untuk objek enemy baru tersebut beri nama ‘Enemy_1’. Kemudian didalam ‘Enemy_1’ tersebut buat kembali sebuah game objek kosong dengan nama ‘Enemy_1_Weapon_1’ untuk menyimpan script shooting pada objek musuh. Pada objek musuh kita menyimpan shooting system nya didalam objek lain yang parent dengan objek ‘Enemy_1’ karena nantinya masing-masing enemy ada yang mempunyai satu atau dua weapon tergantung levelnya. Sehingga hierarchinya seperti berikut :

Selanjutnya, pilih objek ‘Enemy_1’ kemudian tambahkan dua objek standar physics yaitu ‘Polygon Collider’ dan Rigidbody. Set parameternya pada inspector sehingga menjadi seperti berikut :

Kemudian set ordering layer nya menjadi ‘Enemy’. Atau jika Anda belum membuat sorting layernya, pada komponen ‘Sprite Renderer’ pilih Sorting Layer kemudian pilih ‘Add Sorting Layer’.

Buat sorting layer baru dengan nama ‘Enemy’ dan pastikan order nya sesuai dengan sorting layer yang lain. Di tutorial sebelumnya saya sudah bahas kegunaan sorting layer ini, silahkan di cek jika Anda belum mengetahui fungsinya.

Oke, selanjutnya kita membutuhkan Health system untuk masing-masing objek Enemy dan Player supaya nanti bisa terlihat state dimana keduanya destroy ketika masing-masing laser mengurangi HP lawan. Namun itu akan saya bahas menjadi satu part di part selanjutnya saja. Selanjutnya pada part 1 : Membuat Game Android Dengan Unity : Space Sonic (Part 1) kita telah membuat beberapa border pembatas supaya player tidak keluar dari Main Camera, pada objek enemy ini kita juga akan memanfaatkan border tersebut. Singkatnya kita akan membuat enemy movement yang sederhana. Jadi tiap objek enemy nantinya hanya akan bolak balik ke kenan dan kekiri sampai akhirnya nanti melewati Looper kemudian destroy. Hal yang harus dilakukan terlebih dahulu adalah membuat tag untuk masing-masing border kanan dan kiri :

Pilih objek ‘obs_left” yang sudah kita buat di part 1, kemudian lihat inspector pada bagian Tag ganti tagnya menjadi ‘BorderLeft’. Jika belum ada, buat terlebih dahulu Tagnya. Lakukan hal yang sama untuk objek ‘obs_right’. Selanjutnya buat script baru dengan nama ‘EnemyScript.cs’ menggunakan C#, kemudian attach pada objek enemy. Double klik pada script tersebut sehingga monodevelopnya terbuka lalu tambahkan beberapa script berikut :

Pertama kita buat beberapa variabel yang dibutuhkan objek enemy. Kita punya boolean dengan nama ‘enemySpawn’ yang nantinya boolean ini akan mengecek kondisi apakah enemy sudah boleh spawn / berfungsi atau belum. Jika Anda mengikuti tutorialnya dari part pertama, Anda akan tahu bahwa sebenarnya yang bergerak adalah main camera kearah vertical. Sedangkan objek enemy ini berada diluar objek main camera, sehingga pada dasarnya objek enemy tidak bergerak secara vertical. Posisi y enemy kita tentukan sendiri pada scene, sedangkan untuk posisi x nya kita buat random dengan memberi nilai minimal dan maksimal yang kita atur dalam variable ‘posMin’ dan ‘posMax’. Kemudian kita tahu di batas masing-masing camera diberi border sebagai pembatas dan looper. Nah, fungsi spawn disini adalah menentukan kondisi kapan Enemy ini bisa movement dan menembakan laser. Nantinya kita akan set enemy diperbolehkan spawn ketika telah collision dengan border top. Terakhir kita punya boolean juga dengan nama ‘moveRight’, ini hanya inisialisasi saja ketika pertama kali scene dijalankan, masing-masing enemy bergerak kearah kanan atau kearah kiri terlebih dahulu.

Lanjut ke fungsi Start(). Pada start ini pertama kita referens terlebih dahulu berapa weapon yang dimiliki oleh enemy, kemudian disabled pada saat pertama kali scene dijalankan.

Selanjutnya definisikan juga ketentuan speed pada fungsi start. Beri juga nilai random pada speed. Value speed sendiri bisa kita set di inspector sehingga Anda bisa sesuaikan speed nya sesuai kebutuhan. Seperti yang saya bilang tadi, pertama kali enemy akan bergerak kearah kanan atau kiri terlebih dahulu, untuk menentukannya kita juga bisa memanfaatkan fungsi random.

Masih pada Start, buat kondisi enemySpawn menjadi false kemudian set posisi x dari masing-masing enemy menggunakan random range dengan nilai minimal dan maksimal yang sudah kita set tadi. Terakhir buat collider masing-masing enemy menjadi triger supaya bisa melewati border top.

Pada FixedUpdate(), fungsi akan menjalankan method Spawn() jika enemySpawn dalam keadaan true. Sekali lagi, enemySpawn akan true hanya bila telah trigger dengan border top.

pada Spawn() ini hanya berisi movement dari enemy, bagaimana jika ia kekanan dan kekiri. Untuk mengaktifkan laser atau weaponnya kita lakukan pada ontrigger dengan border top, karena jika di set di spawn maka akan dipanggil berkali-kali dan itu bukan good practice.

ObColiisionEnter2D ini berfungsi jika enemy collision dengan objek lain. Jika dengan objek dengan tag BorderLeft, maka ia akan bergerak ke kanan dan begitu juga denga BorderRight. Namun jika collision dengan Player Laser maka healthnya berkurang yang akan kita bahas di part selanjutnya.

Teakhir kita punya fungsi ontriggerenter. Fungsi ini akan kita buat untuk enable spwan seperti mengaktifkan weapon, set trigger false dan set kondisi enemySpawn menjadi true. Klik save kemudian lihat inspector dan assign nilai speed sesuai kebutuhan.

Step selanjutnya tambahkan Weapon Script kedalam objek ‘Enemy_Weapon_1’, jangan lupa centang boolean ‘Is Enemy Weapon’ kemudian Laser prefab nya diisi dengan prefab laser yang baru khusus untuk Enemy. Untuk proses pembuatan lasernya lihat kembali turorialnya di part 3 : Membuat Game Android Dengan Unity : Space Sonic (Part 3).

Hit Play, jika berhasil maka enemy akan bolak-balik kiri kanan sambil menembakan laser.

Jika sudah, buat prefab untuk enemy supaya memudahkan kita jika akan membuat banyak enemy.

Terakhir, perhatikan penempatan posisi Enemy terhadap camera, sebisa mungkin buatlah variasi sesuai kebutuhan Anda, semakin jauh rentang antar enemy dan semakin banyak juga jumlah enemy nya, maka semakin lama juga player menyelesaikan stagenya.

Full Script

EnemyScript.cs

 Assets :

Download Asset :


*Klik salahsatu atau beberapa button like / share untuk melihat link download.

Share :

[social_share style=”circle” align=”horizontal” heading_align=”inline” facebook=”1″ twitter=”1″ google_plus=”1″ linkedin=”1″ pinterest=”1″ /]

Related Posts:

39 thoughts on “Membuat Game Android Dengan Unity : Space Sonic (Part 4)

  1. Gan kasih tutorial tuk buat game orang berjalan
    ada tugas lagi bingung.
    materi gini gan
    buat object orang berjalan otomatis dari kanan ke kiri
    setelah sampai kiri berhenti , lalu di tekan layar proses di ulang kembali
    orang gerak dari kanan kekiri lagi
    tolong ya gan

    makasih.

  2. Mana assets nya ? Saya udh like di fb sama google ko gaa keluar ya mas ?

  3. gan maf itu yang di dwonload file gambar aja ya…

    klw minta file keseluruhan bleh gak gan

  4. Mas saya baru bnget blajar unity…. Klw blh mnta file jadi nya mas … Biar saya enak blajar nya… Klw blh kirim k imel saya mas

    Rudi.rs75@gmail.com

    Terima kasih

  5. gan mau tanya ini buat andro? kok touch button gamenya ga ada yaa
    makasih

  6. Gan Untuk Ukuran layar supaya bisa auto resize sesuai ukuran layar android bagaimana ya?

  7. Gan mw tanya nie, gmn ya scriptnya untuk perintah menarik pesawat musuh yg tampak dgn skill tertentu pda game ini dan jika terkena skill itu akan mnjdi pesawat pelindung di samping kiri kanan pesawat kita, yg artinya ikut nembak secara otomaris ke arah musuh dan juga memiiki jumlah health tertentu…

  8. Mana gan Link Download assets udah like, share, G+ tetap enggak bisa gan,

  9. selamat malam mas, saya boleh minta tutorial keseluruhannya, soalnya buat referensi TA sama buat latihan bikin game. kalau boleh minta tutorial yang lain buat belajar.

    email : rezadjokosantoso@gmail.com

  10. Gan ane udah like and share boleh minta asetnya ?
    kiseryota0712@gmail.com

  11. gan.. ada project full / project jadi nya?? kl ada tolong kirim ke email sy ya mas ke irsano.maldini86@gmail.com … Buat referensi TA saya mas.. Trims.. 🙂

  12. gan boleh minta assetnya gak??
    untuk referensi tugas besar mata kuliah RPL saya
    kalo boleh kirim sini taufikgalon@gmail.com,, makasih gan

  13. Link nya mana gan? ane udah share di twitter ko engga muncul” juga sih..

  14. ilham octony kurniawan

    mas maaf saya kan baru belajar unity3D.. kalo boleh saya minta file keseluruhannya mas buat referensi tugas saya.. mohon share ilmunya mas makasih

  15. gan bolehminta fullproject nya? buat bahan ngajar di kelas,
    email saya baniqinthara@yahoo.com

  16. gan ada tutor lengkapnya gk buat refrensi TA , tolong please

  17. Gan ane udh like di fb n google,boleh mnta project n tutorial lengkapnya gak? 😀
    Email ane : dnoer71@gmail.com
    Ntar ane share di fb jga deh 😀

  18. mas saya udah download project nya dari github, terus saya cob run di unity editor 5.2 tapi kok unity editor ny jadi stop working ya mas?

Leave a Reply

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