Selasa, 29 Desember 2015
On 22.33 by Unknown No comments
Pada bagian 2, kita telah membuat kontrol pada objek utama berupa bergeser ke kiri dan kanan. Sesuai janji saya sebelumnya, kali ini kita akan membuat shoot system. Oke, langkah pertama, kita akan membuat objek pelurunya terlebih dahulu. Pada dasarnya peluru atau laser yang akan kita gunakan sebagai shooting system ini adalah berupa instantiate prefab, kemudian menentukan dammage dengan memanfaatkan OnCollisionEnter2D. Silahkan pilih objek laser pada folder sprite, kemudian drag kedalam scene
Selanjutnya buat C# script dengan nama ShootScript.cs .
Kita punya beberapa variable untuk setup behaviour lasernya. Dammage berfungsi sebagai satuan untuk mengurangi life point lawan, karena nantinya kita akan membuat beberapa tipe musuh dengan life point yang berbeda. Kemudian kita juga punya boolean dengan nama isEnemyshot dengan nilai default false, pada script ini berfungsi sebagai identifikasi apakah script ini di attach ke objek player atau enemy, supaya tidak terlalu banyak script. Variable lightDestroy sebagai efek ketika objek laser hancur atau mengenai / collision dengan objek yang dituju. Sedangkan laserTime kita gunakan untuk handle objek laser jika tidak collision dengan objek yang dituju, ketika laserTime = 0 maka objek laser ini destroy.
laserTime ini kita asumsikan sebagai satuan waktu, maka otomatis countdown dengan increament oleh Time.deltaTime. Dan untuk hal tersebut membutuhkan realtime, maka kita taruh fungsi tersebut didalam Update(). Seperti yang telah dibahas sebelumnya, kita mengingkan objek laser tersebut hancur jika laserTime = 0, maka kita hanya perlu menggunakan control if seperti pada script diatas.
Oke, selanjutnya adalah tindak lanjut dari boolean isEnemyShot, ini sebagai penentu direksi arah saja, jika !isEnemyShot berarti objek tersebut adalah player dan arah lasernya menuju sumbu Y positif, begitupun sebaliknya.
OnCollisionEnter2D adalah event yang terjadi ketika dua objek 2D atau lebih yang memiliki Collider2D saling bersentuhan atau bertabrakan. Ada 3 method event yang bisa digunakan, Enter, Stay, Exit. Dalam script ini kita menggunakan method enter dengan memanfaatkan tag dari objek. Untuk itu nantinya masing-masing objek harus diberi tag yang sesuai, jika player / hero beri tag player, jika enemy beri tag enemy. Dalam event tersebut kita memberi beberapa penugasan, seperti mengganti sprite renderer dengan objek light supaya emberikan efek cahaya ketika laser mengenai objek, merubah collider menjadi triger, dan beberapa penugasan lainnya. Selajutnya attach pada objek laser, kemudian wiring pada inspector sesuai kebutuhan. Buat folder baru pada asset dengan nama Prefab, drag objek laser yang berada pada scene tadi pada folder prefab tersebut, dan ya kita telah membuat laser untuk atau peluru untuk Player.
Script selanjutnya adalah Weapon script yang akan kita sematkan pada objek Player. Buat script baru dengan nama Weapon.cs kemudian tambahkan baris berikut :
Oke, kita punya beberapa variable, laserPrefab digunakan sebagai setup prefab laser yang telah kita buat tadi, isEnemyWeapon identifikasi apakah script ini di attach di player atau enemy, shootDelay untuk delay sepersekiandetik enemy laser diluncurkan, sedangkan waitToShoot sebenarnya digunakan untuk enemy attack, jarak waktu antara laser satu dengan yang lainnya.
Di function Update kita setup beberapa kebutuhan, diantaranya jika waitToshoot lebih dari 0 maka dec dengan delta time. Kemudian definisikan input untuk mengeluarkan laser / peluru dari objek Player dengan menggunakan tombol spasi pada keyboard. Pada statement if input tersebut tambahkan kondisi jika isEnemyWeapon = false, karena jika tidak ketika kita menekan tombol spasi baik dari player atau enemy akan sama-sama mengeluarkan laser. Jika kondisinya terpenuhi maka akan memanggil fungsi Fire(). Selanjutnya adalah kondisi jika script ini disematkan pada objek enemy, pada state tersebut kita definisikan beberapa action, seperti waitToShoot = shootdelay, instantiate prefab dan posisi saat pertama kali laser ditembakan.
Baris-baris terakhir ada fungsi fire, hampir sama seperti pada penjabaran sebelumnya pada state dimana objek = enemy. Alasan kenapa posisi y harus ditambah 0.5 karena jika kita biarakan default (0.0f), maka laser akan muncul dari posisi x=0 y=0 terhadap parent, supaya laser keluar muncul tepat didepan moncong objek, maka tambahkan nilai 0.5f. Terakhir kita mempunyai fungsi dengan ttipe data boolean, bool ini akan bernilai true jika waitToShoot lebih dari sama dengan 0. Cek pada kondisi isEnemyWeapon == true && EnemyAttack == true, maka laser akan ditembakan dari enemy looping terhadap shootDelay. Attach script ini pada objek Player, kemudian pada inspector masukan variable sesuai kebutuhan.
Jika sudah, hit play kemudian tekan tombol spasi dan lihat apakah semua fungsinya sudah berjalan dengan baik atau belum.
Kita telah membuat shooting system pada objek player, selanjutnya kita akan membuat objek enemy beserta dammage pada masing-masing objek.
Berikut linknya-->
Langganan:
Posting Komentar (Atom)
Search
Popular Posts
-
Pada kesempatan kali ini saya akan membahas mengenai konfigurasi proxy server di Ubuntu 12.04. Proxy server adalah sebuah komputer server ...
-
Assalamu'alaikum teman-teman semua.. Bagaimana kabar kalian semua? Semoga dalam keadaan sehat wal afiat yaa. Sudah lama saya tid...
-
Yuk.. Mengenal Keanekaragaman Budaya Indonesia Negara Kesatuan Republik Indonesia (NKRI) merupakan Negara kepulauan terbesar di dunia ...
-
World Wide Web (WWW) yang sering juga kita sebut dengan website, merupakan fasilitas di Internet yang paling banyak dipakai, hampir 80...
-
Kali ini saya akan mencoba membahas mengenai sistem konfigurasi home theater menurut para expert. Yang dimaksud di sini adalah cara ...
-
Game-game untuk Android saat ini bertebaran hingga sulit menghitung jumlahnya. Tidak hanya di Play Store, developer-developer Android b...
-
3D MAX A. Pengertian 3D Studio Max atau biasa dikenal dengan 3D Max adalah suatu software (perangkat lunak) untuk membuat ...
-
Sejak Unity 3D merilis versi 4.3, banyak sekali penambahan fitur pada rilisnya, salah satunya fitur 2D. Jika sebelumnya kebanyakan gam...
-
Pada kesempatan kali ini saya akan membuat tutorial mengenai web server local yang dapat terhubung ke jaringan Internet. Sebelum menuju k...
-
Review Game "SONIC GENERATIONS" Dari judulnya saja siapa yang tidak kenal dengan game ini. Sonic memang sudah menjadi game...
Recent Posts
Sample Text
Diberdayakan oleh Blogger.
0 komentar:
Posting Komentar