Monday, August 19, 2019

Cara Membuat Deteksi Tanah & Melompat Multi Jumpper 2 Sampai 3 Kali Diudara Pada Aplikasi Unity 3D

Deteksi Tanah Multi Jumper

Jokam-Informatika.com Hai sobat, masih semangat untuk membuat aplikasi game sendiri bukan ? Apabila sobat kemarin mempelajari tutorial dari saya dalam hal membuat Jumpper dan juga gerak karakter di dalam game, maka pada kesempatan ini saya akan membagikan sesuatu yang kurang dari tutorial tersebut yakni Deteksi Tanah & Multi Jumpper. Karena mengingat tutorial yang kompleks dan panjang maka lebih baiknya saya pisah menjadi part artikel agar mudah dimengerti bagian per bagian.

Selanjutnya, apabila kita perhatikan pada hasil dari tutorial yang kemarin berjudulkan : Cara Menggerakan Karakter Dan Animasi Object Player Dengan Script C# Pada Aplikasi Unity 3D yang memiliki kekurangan yaitu ketika karakter melakukan loncatan maka yang terjadi karakter tidak dapat kembali lagi ke tanah alias terus melompat ke atas tanpa henti. Oleh karena itu saya ingin melanjutkan dan juga memberikan tutorial yang mendukung hal tersebut agar tidak menjadi celah gerak karakter atau istilah umumnya bug(kekurangan game).

Tak hanya itu, saya juga memasukkan fungsi untuk memberikan efek lompatan maksimal dua sampai tiga kali di udara pada karakter seperti halnya game hero, ketika karakter sudah melompat setidaknya tiga kali di atas tanah maka karakter tidak diperbolehkan melompat kembali hingga karakter tersebut dapat menyentuh tanah kembali agar dapat melompat seperti yang sudah dilakukan sebelumnya.

Untuk menerapkan hal ini maka dibutuhkan objek komponen dan juga script C# untuk menangani logika yang diinginkan oleh kita.

Bagaimanakah cara membuat Deteksi Tanah dan Melompat sebanyak 3x di udara ?

Simak ulasan di bawah ini untuk mengetahui kode dan juga tutorialnya,

 

Deteksi – Deteksi Tanah – Adalah sebuah metode deteksi yang dapat anda gunakan player dalam hal mengenali lingkungannya, selain itu Multi Jumpper juga dapat berperan dalam hal memberikan efek super hero didalam sebuah tokok karakter. Dengan menggunakan metode ini maka, karakter yang akan berjalan pada game dapat melakukan sesuatu yang kita inginkan terutama untuk pijakan kaki pada tanah. Didalam game, biasanya pemain hanya diizinkan melompat sebanyak 1 hingga 5 kali sesuai dengan keinginan pembuatnya. Karena, apabila melebihi dari jumlah tersebut akan mengurangi realitas dari game itu sendiri. Apabila dikaitkan dengan kegiatan dunia nyata akan sangat tidak cocok.

Maka dari itu, lompatan ideal adalah 1 hingga 3 ataupun 5 kali saja, selain jumlah lompatan pendeteksian tanah dirasa sangat penting. Hal ini juga ditujukan supaya karakter bisa mengetahui apa saja yang di dekatnya termasuk pijakan kaki kepada tanah sesuai dengan logika dunia nyata.

 

Oke, langsung saja kita menuju ke dalam pembahasan untuk membuat kedua fungsi dalam artikel ini :

  • Pertama, sebelumnya sobat harus membuat komponen pendeteksi tanah pada karakter didalam Aplikasi Unity 3D dengan cara “CTRL + SHIFT + N” (1). Kemudian beri nama sesuai keinginan sobat contohnya “Detection“. (2). Tempatkan Detection komponen kedalam player seperti gambar berikut ini pada nomor 2. (3). Kemudian sesuaikan detection komponen agar berada di bawah atau di antara kaki karakter.

Deteksi Project

  • Kedua, kemudian lanjutkan dengan membuka skrip yang pada sesi artikel sebelumnya sudah kita buat dengan cara (1). Klik kanan pada scrip lalu, (2). Klik “Open” maka akan terbuka secara otomatis aplikasi “Mono Develop” untuk membuka script ini.

Reopen Project

  • Ketiga, saat skrip sudah dibuka maka berikan beberapa tutorial dibawah ini ke dalam script,

 

1. Memberikan Deklarasi Deteksi Tanah

Pada deklarasi deteksi kita akan memakai jenis 3 data yakni Boolean, Float dan Selection Drag. Edit pada bagian  public class Player_Controller : MonoBehaviour { DISINI }  dan tambahkan kode berikut ini :

 // Deklarasi untuk Detection Tanah dan Objek yang diizinkan untuk dilompati public bool Floor; public Transform Detection; public LayerMask Layer_Sellection; public float Radius;

 

2. Memberikan Deklarasi Multi Jumpper

Pada deklarasi ini kita kita membutuhkan komponen angka dalam hal waktu dan jumlah lompatan, maka pasang script berikut ini pada  public class Player_Controller : MonoBehaviour { DISINI }  dengan script berikut ini :

 // Deklarasi untuk TimeCounter dan Durasi yang diizinkan private float jumpTimeCounter; public float jumpTime; private bool isJumping;

 

3. Memberikan Fungsi Deteksi Tanah

Untuk menerapkan fungsi deteksi tanah maka diperlukan sebuah fungsi seperti berikut ini pada  void Update () { DISINI }  dengan skrip berikut :
 Floor = Physics2D.OverlapCircle (Detection.position, Radius, Layer_Sellection);

 

4. Penerapan Fungsi Deteksi Tanah & Multi Jumpper

Ketika melompat yang sebelumnya terus melompat maka edit pada bagian yang sama pada kode lompat di  void Update () { DISINI }  dengan kode baru berikut ini :

if (Floor == true) { Animation.SetBool ("Jump Pocong", false); if (Input.GetKey (KeyCode.Space)) {  isJumping = true;  Animation.SetBool ("Jump Pocong", true);  jumpTimeCounter = jumpTime;  Jump.velocity = Vector2.up * Jump_High; }}if (Input.GetKey (KeyCode.Space)) { if (jumpTimeCounter > 0) {  Animation.SetBool ("Jump Pocong", true);  Jump.velocity = Vector2.up * Jump_High;  jumpTimeCounter -= Time.deltaTime; } else {  isJumping = false; }} else { Animation.SetBool ("Jump Pocong", false);}if (Input.GetKey (KeyCode.Space)) { Animation.SetBool ("Jump Pocong", true); isJumping = false;}

 

  • Keempat, saat semua skrip sudah di edit atau sobat masukan maka jangan lupa save script dengan cara “CTRL + S” kemudian cek pada aplikasi Unity 3D.
  • Kelima, (1). Seleksi pada bagian object karakter. (2). Sroll kebawah pada bagian tab kanan editor atau “Inspector”. (3). Pada skrip yang sebelumnya sudah kita masukkan ke dalam karakter maka akan terlihat perubahan pada script yang sudah kita edit sebelumnya yaitu “Jump Time” isi dengan sesuai keinginan sobat. Jika sobat menginginkan lompatan 2 kali maka 0.2, jika 3 kali maka 0.3 dan seterusnya.

Jumper Time

  • Keenam, masih terus scroll dibawahnya kita akan menjumpai fungsi deteksi tanah, maka masukan detection yang ada dalam karakter yang sudah kita buat sebelumnya pada langkah ke Pertama tersebut kedalam fungsi “Detection“. Gunanya adalah nanti detection akan difungsikan dengan benar oleh skrip.

Inspektor Player

  • Ketujuh, kemudian klik tanah yang ada disekitar karakter atau tepat di bawah karakter. Disini kita akan memasukkan fungsi untuk mendeteksian dan perbedaan komponen tanah dengan komponen yang lain. (1). Klik pada bagian “Layer“. (2). Klik “Add Layer…” jika tanah kalian belum memiliki tag layer, namun jika sudah memiliki tag layer seperti saya yakni “Grounded” maka kita tinggal melanjutkan saja. (3). Pilih atau centang layer yang kita buat atau inginkan.

Inspektor Tiles

  • Kedelapan, kembali dengan cara menyeleksi komponen player, dan scroll kebawah seperti langkah “Kelima” maka kita akan menemukan fungsi “Layer_Sellection“, kemudian pilih layer yang dibuat pada langkah “Keenam” sebelum ini yakni Grounded.

Sesi Layer Ground

Note :

Untuk Inspector Floor adalah Boolean sehingga tidak perlu diisi, sedangkan untuk Inspector Radius biarkan saja 0, karena jika lebih besar nilai tersebut maka detection akan semakin besar jangkauan lingkarannya. Jika jangkauan deteksi semakin besar maka peluang terus melompat akan tetap terjadi sehingga biarkan saja “0“. Agar melompat hanya dapat terjadi jika kaki pemain menyentuh tanah maupun grounded saja.

 

Artikel terkait :

 

 

Mungkin itu yang dapat saya sampaikan didalam artikel saya yang berjudulkan Cara Membuat Deteksi Tanah & Melompat Multi Jumpper 2 Sampai 3 Kali Diudara Pada Aplikasi Unity 3D.
Semoga dapat bermanfaat bagi anda dan orang lain tentang Deteksi Tanah Dan Multi Jumpper Pada Aplikasi Unity 3D.
Sekian dan terimakasih.

Load Disqus Comments Hide Disqus Comments