Simple Touch Input pada Unity 3D

345

Jadi pagi hari tadi sebelum berangkat matrikulasi saya mendapatkan pesan dari teman facebook yang isinya kurang lebih menanyakan bagaimana touch input pada untity untuk platform Android :

Untuk dokumentasi, maka alangkah baiknya saya coba jabarkan sedikit tentang penggunaan touch input pada unity untuk platform mobile dengan tutorial, barangkali ada teman-teman lain yang sedang kebetulan mencari referensi yang sama. Oke langsung saja kita buat scene atau project baru, pada tutorial ini saya menggunakan workspace 2D dengan sebuah sprite sederhana.

Ini tidak menjadi patokan, silahkan tambahkan objek sesuai kebutuhan Anda, yang penting nanti kita mempunyai objek yang bisa digerakan. Selanjutnya, silahkan Anda tambahkan dua buah file grafis yang akan digunakan sebagai indicator control. Perlu diingat file yang digunakan harus mandiri, artinya bukan berupa kumpulan sprite namun berupa single image (.png). Karena nanti kita akan menggerakan objek kekiri dan kekanan, pastikan image yang dipakai memiliki shape yang sesuai.

Buat sebuah game objek kosong dengan nama ‘ControlTouch’, kemudian pada game objek tersebut silahkan tambahkan 2 buah game objek baru ‘GUITexture’ berinama masing-masing game objek baru tersebut dengan nama ‘Left’ dan ‘Right’, pada komponen ‘GUITexture’ bagian texture load image sesuai kebutuhan. Atur posisi texture tadi, pada workspace switch tampilan menjadi Game untuk melihat texture (karena dalam mode Scene tidak akan terlihat). Perlu diingat, karena nantinya target build adalah untuk device Android yang mempunyai banyak resolusi, maka kita juga memerlukan besar texture touch input yang responsive. To do this, pada kompne ‘GUITexture’ kita hanya mengatur transform saja untuk skala, rotate, dan position. Jangan merubah value Pixel Inset, biarkan saja nilainya 0, sehingga nantinya texture akan fixed mengikuti resolusi layar.

Selanjutnya kita akan langsung menuju script C#, buat script baru dengan nama TouchControl.cs

Sederhana bukan ? Yang kita manfaatkan adalah method hitTest pada GUITexture ketika TouchPhase = began (disentuh) ataupun Touchphase = stationary (hold). Jika kita hanya menginginkan salah satunya saja (ketika ditahan atau disentuh), maka pada statement if ‘t.phase’ dimana t adalah Input.GetTouch (inisialisasi touch) diisi satu kondisi saja. Pada method hitTest require 2 argumen yaitu posisi t (input.GetTouch) dan kamera dimana GUITexture itu dirender. Anda juga bisa menambahkan penugasan atau perintah lain pada event TouchPhase = ended, artinya ketika touch pase selesai. Mirip MouseUp atau KeyUp pada control keyboard dan mouse. Karena kita tidak akan memberikan event apa-apa setelah event touch selesai, maka pada bagian tersebut dibiarkan kosong saja. Save script, kemudian lihat pada Inspector :

Kita mempunyai 4 variable public, yaitu Move Left dan Move Right berupa GUI Texture, Player berupa Objek player yan telah kita tambahkan pada awal tadi, dan variable Move Speed berupa float sebagai kecepatan perpindahan objek player. Silahkan wiring sesuai dengan requirementnya. Jika telah selesai, silahkan test pada device Android Anda, maka seharusnya objek bisa bergerak kekanan dan kekiri ketika kita menyentuh salah satu GUITexture.

 

Related Posts:

14 thoughts on “Simple Touch Input pada Unity 3D

  1. Mantap gan, terimakasih atas ilmunya… kapan lagi nih tutorial Part 3 nya… karena gak sabar lagi liat tembakannya.

  2. […] 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. Oiya, untuk penjelasan kenapa harus di FixedUpdate bisa dilihat penjabaran saya pada tutorial Simple Touch Input pada Unity 3D. […]

  3. mas tolong penjelasannya scriptnya dong,….supaya saya tidak hanya copas aja 🙂 thank u

    • maksutnya penjelasan script per barisnya mas,…biar ngerti bngt

    • Coba cari dimanual, terus rubah2 aja variablenya. Dikit2 pasti faham kok

      • maksih mas 🙂 ,….. mau request dong mas,…. kalo gerakin object horizontal aja tanpa tombol touchscreen kayak diatas,….tapi pakek swipe layar smartphone nya mas….ditunggu tutorialnya mas,….kalo bisa ada videonya hehehehehe

  4. gan coba buat tutorial buat kaya character selection gitu dong gan

  5. keren mas 🙂

  6. terimakasih gan.
    maaf gan pas ane coba g jalan. ane g ngerti mksud kata2 nya. ane bener2 newbie banget.. , bisa di bantu g gan… hehe…

  7. Gan minta File Asset spritenya

  8. permisi bang..itu kan buat tombol arah kanan sama kiri doang ya..kalau buat tombol FPS semua arah di android gmn bang? seperti game Slenderina The Cellar gitu UI tombol nya.makasih

Leave a Reply

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