Rabu, 25 September 2013

Gambar button play


Setiap aplikasi hampir selali membutuhkan button, hingga seakan hampir tidak ada aplikasi yang tidak memiliki button, kecuali aplikasi yang berbasis command line. Begitu juga dengan game, rasanya keberadaan button menjadi kebutuhan vital dari hampir seluruh game. Pada console-console tertentu button sudah di handle dan terintegrasi dengan joystick pada masing-masing console. Namun bagaimana dengan perangkat mobile yang berbasis touch screen? Ya.. Kita tahu bahwa perangkat ini hampir tidak memiliki button secara fisik, sehingga kita perlu membuat button virtual sendiri yang dapat mendeteksi input berupa sentuhan jari user.

Pada artikel kali ini saya akan bagi-bagi asset Unity berupa button touch screen yang saya buat beberapa hari yang lalu untuk keperluan project yang sedang saya kerjakan. Button ini dapat digunakan pada Unity Free dan berjalan pada perangkat touch screen seperti android, iphone, dsb. Asset button ini juga sudah mensuport multi touch atau sentuhan lebih dari satu jari user, sehingga cocok digunakan pada game-game yang membutuhkan gerak cepat dan multi touch. Button ini berbasis GUITexture sehingga lebih mudah dalam pengaturannya jika dibandingkan dengan gui.Button. Asset button ini dapat di download disini.

Berikut adalah tutorial singkat bagaimana menggunakan asset ini, untuk tutorial selengkapnya sudah saya sertakan dalam paket asset. Berikut adalah step by step cara penggunaan button :

Untuk membuat button lakukan drag & drop prefab Touch Screen Button ke dalam scene. 
 
Drag and drop prefab Touch Screen Button

Dan hasilnya adalah seperti pada gambar di bawah :

Tampilan default  Button
 
Kemudian lakukan pengaturan letak button. Pengaturan button sama dengan pengaturan GUITexture pada umumnya. Baca : Dokumentasi Unity GUITexture

Pengaturan letak button seperti pengaturan GUITexture biasa

Lakukan juga pengaturan texture. Berikan texture default button dan texture ketika button disentuh

Drag & drop texture button

 
Lakukan scripting. Untuk mendapatkan status button suatu kelas harus mengimplementasikan interface IButtonListener
Contoh :
publicclassMainMenu: MonoBehaviour, IButtonListener{
  //some code here
}

Lakukan inisialisasi button dan lakukan register listener melalui method RegisterListener dengan parameter IbuttonListener yang merupakan interface untuk mendengarkan button.

Contoh :
privateButtonbuttonPlay
voidStart () {
  buttonPlay = this.transform.FindChild("Button Play").GetComponent<Button>();
  buttonPlay.RegisterListener(this);
}

Status button akan dikirimkan pada method OnButtonStateChangeyang merupakan method implementasi dari interface IButtonListener. Method ini memiliki dua parameter, changedButton adalah button yang mengalami perubahan fase, buttonPhaseId adalah fase yang terjadi pada button

Contoh :

publicvoidOnButtonStateChange(ButtonchangedButton, intbuttonPhaseId) {
 if(changedButton == buttonPlay) {
    if(buttonPhaseId == Button.PhaseId.ButtonTouchBegan) {
   //do something here
   }elseif(buttonPhaseId == Button.PhaseId.ButtonTouchEnded) {
   //do something here
   }
  }
}

Keterangan PhaseId :
ButtonTouchBegan
Sentuhan ke button dimulai, hanya terjadi 1x dalam 1 sentuhan yaitu pada awal sentuhan

ButtonTouchEnded
Sentuhan ke button diakhiri, hanya terjadi 1x dalam 1 sentuhan yaitu pada akhir sentuhan

ButtonTouchCanceled
Sentuhan ke button dibatalkan, terjadi ketika jari bergeser keluar area button

ButtonTouchStationary
Terjadi ketika sentuhan ditahan, terjadi berulangkali dalam 1 fase sentuhan tergantung lama sentuhan dan update rate

ButtonTouchMoved
Terjadi ketika sentuhan ditahan dan jari bergeser di area button, terjadi berulangkali dalam 1 fase sentuhan tergantung lama sentuhan dan update rate

Button touch screen ini saya bagikan secara gratis tanpa pungutan royalti sedikitpun dan dapat Sobat gunakan untuk mengembangkan project berbayar sekalipun. Namun meskipun gratis tetap patuhi rule yang saya berikan ya, diantaranya untuk tidak menghapus credit author, dan dilarang keras untuk menjual kembali asset yang saya bagikan secara gratis ini.


Mungkin sekian dulu apa yang saya sampaikan, kurang lebihnya saya mohon maaf. Terima kasih sudah mampir dan jangan lupa di follow ya blog ini di twitter @duniadigit. Ok.. cukup sekian, tetap semangat, dan terus berkarya ^^



EmoticonEmoticon