Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Mobile Development
Code

Membuat balon permainan balap dalam Unity menggunakan mikrofon

by
Difficulty:IntermediateLength:LongLanguages:

Indonesian (Bahasa Indonesia) translation by Yusuf Samin (you can also view the original English article)

Final product image
What You'll Be Creating

Pengenalan

Dalam tutorial ini, Anda akan belajar cara membuat permainan 2D yang menggunakan C# dan Unity. Kami akan mengambil keuntungan dari Unity 's mikrofon dukungan untuk meningkatkan gameplay permainan. Tujuan dari permainan ini sederhana, mencapai sisi lain tingkat dengan menghindari rintangan di sepanjang jalan. Pemain dapat memindahkan karakter utama dengan meniup mikrofon perangkat, bergerak ke atas.

Anda akan belajar berikut aspek pengembangan permainan Unity dalam tutorial ini:

  • menyiapkan sebuah proyek 2D dalam Unity
  • mengimpor sprite
  • kontrol mikrofon
  • bekerja dengan fisika tabrakan

1. Buat sebuah proyek Unity yang baru

Buka Unity dan pilih New Project baru dari menu File untuk membuka dialog proyek baru. Memberitahu Unity di mana Anda ingin menyimpan proyek dan Set up default for: menu untuk 2D.

2. membangun pengaturan

Pada langkah berikutnya, Anda disajikan dengan Unity 's user interface. Mengatur proyek untuk platform pilihan Anda dengan memilih Build Settings dari File menu dan memilih target platform.

3. Unity antarmuka pengguna

Sebelum kita mulai, pastikan tombol 2D di panel Scene disorot. Anda juga dapat memodifikasi resolusi saat ini dalam panel Game.

Anda juga harus melihat panel kerja Unity 's, yang akan kita gunakan dalam tutorial ini. Luangkan waktu untuk menjelajahi Unity 's antarmuka pengguna, seperti Scene, Game, Hierarchy, Project, Assets, dan Inspector. Kita akan menggunakan mereka banyak dalam tutorial ini.

4. game Interface

Antarmuka pengguna permainan kami akan menjadi mudah. Gambar berikutnya memberi Anda gambaran tentang asset yang akan kita gunakan dan bagaimana antarmuka pengguna akhir permainan akan berakhir. Anda dapat menemukan asset kita akan menggunakan di file sumber di GitHub.


5. Bahasa Pemrograman

Anda dapat menggunakan salah satu dari tiga bahasa pemrograman ketika menggunakan Unity, C#, UnityScript, variasi dari JavaScript, dan Boo. Setiap bahasa pemrograman ini memiliki pro dan kontra dan itu terserah Anda untuk memutuskan mana yang Anda inginkan. Preferensi pribadi saya pergi ke C# bahasa pemrograman dan bahasa aku akan menggunakan dalam tutorial ini.

Jika Anda memutuskan untuk menggunakan bahasa pemrograman lain, maka pastikan untuk Lihatlah Unity 's Script referensi untuk contoh.

6. Asset & efek suara

Sebelum kita mulai coding, kita perlu menambahkan asset untuk proyek Unity. Anda dapat melakukan salah satu dari beberapa cara:

  • pilih Import New Asset dari menu Assets
  • menambahkan item ke folder asset di proyek Anda
  • drag dan drop asset di jendela project

Setelah menyelesaikan langkah ini, Anda harus melihat asset di folder Assets proyek Anda di panel Project.

Kita akan menggunakan jumlah suara untuk menciptakan sebuah pengalaman audial. Efek suara yang digunakan dalam tutorial ini diperoleh dari freesound.org.

7. latar belakang

Mulai dengan menyeret dan menjatuhkan latar belakang ke panel Hierarchy. Ini secara otomatis akan muncul di panel Scene.


8. Ukuran kamera

Karena panel Scene diatur untuk menampilkan view 2D, Anda akan melihat bahwa memilih Main Camera dalam Hierarchy menunjukkan preview apa yang kamera akan menampilkan. Anda juga dapat melihat ini di Game view. Agar seluruh adegan terlihat, mengatur nilai Size Main Camera ke 4 di panel Inspector seperti ditunjukkan di bawah.

9. Sprite Sheet

Kita akan menggunakan sprite sheet untuk elemen antarmuka pengguna permainan kami. Unity memiliki editor sprite yang membuat menggunakan sprite menjadi mudah. artwork yang digunakan dalam tutorial ini diperoleh dari openclipart.org.

Mengimpor artwork, pilih dari panel Assets, dan mengubah pilihan Sprite Mode untuk Multiple di panel Inspector.

Klik tombol yang berlabel Sprite Editor dan set opsi Type untuk Automatic.

10. sapi Rigidbody 2D

Dengan sprite sheet diiris dan siap untuk digunakan, klik panah yang muncul ketika sprite sheet yang dipilih dan memilih sprite sapi, tokoh utama dari permainan kami. Seret ke Scene untuk menambahkannya.

Untuk mendeteksi tabrakan, setidaknya salah satu objek bertabrakan perlu Rigidbody komponen 2D melekat padanya. Untuk menambahkan satu untuk sapi, klik tombol Add Component di panel Inspector. Dari daftar komponen, pilih RigidBody 2D di bagian 2D Physics 2D.

Centang kotak Fixed Angle untuk mencegah sapi berputar jika terjadi tabrakan. Kami tidak akan menggunakan default physic gravitasi dalam permainan ini, sebaliknya kita akan mensimulasikan kita sendiri. Mengubah Gravity Scale dari 1 ke 0 untuk memastikan tingkat default tidak mempengaruhi objek.

11. menambahkan Colliders

Lantai digunakan untuk menjaga karakter utama kita jatuh setelah kami telah menambahkan physic permainan. Membuat objek permainan baru dengan memilih Buat kosong dari GameObject menu.

Untuk membuat lantai mendeteksi ketika karakter menyentuh itu, kita perlu untuk menambahkan komponen Box 2D Collider. Collider adalah bentuk physic yang mendefinisikan daerah yang memicu tabrakan.

Pilih objek permainan lantai dalam hirarki, Buka panel inspektur, dan klik menambahkan komponen. Dari daftar komponen, pilih Box Collider 2D di bagian Physics 2D

Mengubah properti Size X: 4.8 dan Y: 0,05 untuk menciptakan sebuah persegi panjang kecil yang mana sapi akan diposisikan. Akhirnya, tambahkan Box Collider 2D ke objek permainan sapi dengan mengulangi langkah-langkah berikut.

12. sapi sumber Audio

Komponen Audio Source digunakan untuk memutar klip audio ketika pemain mengumpulkan bintang. Komponen ini akan membaca klip audio terletak di pilihannya dan bermain ketika dipanggil dari script atau pada awal jika Play on Awake kotak centang dipilih.

Untuk memutar suara ketika pemain mengumpulkan bintang, pertama kita perlu melampirkan komponen Audio Source untuk itu. Pilih bintang dari tampilan Hierarchy atau Scene, klik tombol Add Component di panel Inspector, dan pilih Audio Source di bagian Audio.

Karena kami hanya ingin suara untuk bermain ketika pemain menyentuh bintang, kita perlu Hapus centang Play on Awake pilihan. Klik titik kecil di sebelah kanan, di bawah ikon roda gigi, untuk memilih suara kami ingin bermain.

13. menambahkan balon

Balon mewakili kehidupan atau kesehatan karakter utama kami. Ketika tangan bertabrakan dengan sapi, itu akan muncul salah satu balon untuk menunjukkan bahwa itu memukul dan jumlah kehidupan telah menurun.

Tarik sprite balon dari Assets ke panel Hierarchy dan kemudian kembali ke Assets Ini akan membuat prefab dari balon. Anda akan melihat teks menjadi biru menunjukkan sekarang menjadi prefab. Dengan menciptakan prefab, dapat kita reuse balon tanpa menggunakan sumber daya tambahan.

Pilih prefab dan tekan Command + D untuk menduplikasi itu. Gunakan tool Rotation untuk sedikit memutar balon seperti ditunjukkan pada gambar di atas.

Kami kelompok sapi dan balon membuat memindahkan mereka sedikit lebih mudah. Untuk melakukan ini, drag balon dari panel Hierarchy dan meletakkannya di atas objek permainan sapi di panel Hierarchy. Sapi permainan objek akan menyala untuk menandakan bahwa menjatuhkan balon ke atasnya akan menambahkannya sebagai child sapi objek permainan. Hasilnya adalah bahwa memindahkan objek permainan sapi juga bergerak posisi balon.

14. menambahkan hambatan

Tangan adalah musuh atau rintangan yang harus dihindari jika pemain ingin menyelesaikan tingkat dengan mengumpulkan bintang. Tangan bergerak dari sisi ke sisi, meninggalkan celah sempit di tengah untuk sapi untuk melewati.

Karena tangan adalah objek permainan yang kita akan menggunakan beberapa kali, kita terlebih dahulu mengubahnya ke prefab seperti yang kita lakukan dengan balon. Ikuti langkah-langkah di atas untuk membuat prefab dan menggunakan tool editor untuk posisi tangan seperti ditunjukkan pada gambar di atas.

Kita juga perlu menambahkan collider untuk masing-masing tangan untuk mendeteksi tabrakan. Untuk menambahkan yang collider, klik tombol Add Component di panel Inpsector dan pilih Box Collider 2D di bagian Physics 2D . Anda akan melihat bahwa kotak hijau muncul di sekitar tangan bila Anda memilih untuk menunjukkan tangan memiliki collider terikat padanya.

Kami juga memainkan suara ketika tangan bertabrakan dengan sapi tersebut muncul balon. Untuk mencapai hal ini, kita perlu menambahkan suara pertama. Pilih tangan dari tampilan Hierarchy atau Scene, klik Add Component di panel Inspector, dan pilih Audio Source dari bagian Audio.

Rincian komponen audio yang akan muncul di Panel Inspector. Klik titik tersebut di bawah ikon gigi untuk memilih suara yang benar.

15. menambahkan bintang

Tujuan dari permainan ini adalah untuk mengumpulkan bintang pada akhir setiap tingkat. Pemain dapat memindahkan sapi ke atas dengan meniup perangkat mikrofon.

Tarik bintang dari panel Assets dan menambahkannya ke Scene. Pada Inspector's Transform bagian, mengubah nilai seperti ditunjukkan pada gambar di bawah untuk posisi bintang.

Ini akan menempatkan bintang di bagian atas tingkat. Untuk mendeteksi ketika sapi mengumpulkan bintang, kita perlu menambahkan collider itu seperti kita telah melakukan beberapa kali sudah. Tambahkan Box Collider 2D dengan bintang.

16. menambahkan Alert

Alert juga objek permainan. Mereka adalah pesan yang memberitahu pemain ketika tingkat telah selesai atau dalam permainan.

Seret tanda dari panel Assets ke Hierarchy dan kemudian kembali ke panel Assets untuk mengkonversikannya ke prefab. Kemudian dalam tutorial ini, kita akan menambahkan script ke alert dan menunjukkan bagaimana mereka digunakan. Jangan lupa untuk menghapus mereka dari Scene setelah Anda mengubah mereka ke prefab.

17. menambahkan Script

Unity termasuk editor kode yang, versi Mono Develop. Sementara itu editor yang baik, Anda dapat menggunakan editor apa pun yang Anda suka. Visual Studio, misalnya, adalah pilihan yang populer jika Anda menggunakan Windows.

Anda dapat membuat file baru dengan meluncurkan kode editor, menyimpan file dalam folder Assets proyek Anda, dan kemudian menambahkannya ke GameObject, seperti yang Anda lakukan dengan komponen. Atau, Anda dapat membuat script baru di Inspector dengan memilih New Script dan kemudian mengklik dua kali untuk membukanya.

18. mendeteksi Input mikrofon

Untuk memindahkan karakter utama kita, kita akan membutuhkan akses ke perangkat mikrofon. Secara default, Unity menyediakan dukungan dasar untuk menangkap audio, tapi itu tidak termasuk sebuah properti atau metode untuk mendeteksi tingkat aktivitas mikrofon, yang adalah apa yang kita butuhkan untuk memindahkan sapi.

Untungnya, kita dapat menggunakan script pihak ketiga yang akan memberikan kami akses ke properti loudness. loudness properti akan memungkinkan kami, bersama dengan transform.position, untuk memindahkan sapi.

Membuat GameObject kosong dan nama MicrophoneInput. Gunakan tombol Add Component untuk melampirkan script tersebut dan komponen Audio Source ke objek permainan baru.

Dengan melakukan ini, kita mengaktifkan skrip dan aplikasi akan mulai menangkap input mikrofon. Dengan menyesuaikan sensitivitas membanggakan inspektur, kami mengontrol berapa banyak sapi digerakkan oleh input mikrofon. Semakin tinggi nilai, semakin cepat sapi akan bergerak. Saya telah menemukan bahwa 50 adalah nilai yang baik untuk memulai dengan.

19. pindahkan tangan

Script berikut mendefinisikan class Hand dan kontrol gerakan tangan. Tangan terus bergerak dari kiri ke kanan dan sebaliknya. Mari kita lihat bagaimana ini bekerja.

Langkah 1: properti

Properti pertama yang kita gunakan dalam script moveSpeed, float yang mendefinisikan jumlah unit tangan bergerak selama setiap frame. Ini menetapkan nilai x transform.position properti, menggerakkan tangan secara horizontal.

Properti kedua, currentPos, juga float dan menyimpan posisi saat ini dari tangan sebelum bergerak. Ini akan membantu kita menghitung jumlah unit tangan dapat bergerak.

Terakhir, properti left jenis boolean mendefinisikan jika tangan bergerak ke kiri. Ini membuatnya mudah untuk mengubah arah tangan dengan mengeset variabel left untuk true atau false.

Langkah 2: Start metode

Metode Start adalah metode yang didefinisikan di class MonoBehaviour yang dipanggil selama inisialisasi, sebelum metode lainnya dipanggil — kecuali Awake, yang kita tidak akan membahas dalam tutorial ini.

Dalam metode Start, kita dapat mengkonfigurasi objek sebelum kode lainnya dijalankan. Dalam kasus ini, kita mengatur properti currentPos untuk tangan posisi saat ini, sebelum itu dipindahkan.

Langkah 3: Mengubah posisi

Dalam metode Update, kami memeriksa apakah tangan kiri atau kanan, dan bergerak ke arah yang benar selama setiap frame. Untuk melakukan ini, kita menulis if pernyataan dalam metode Update dan menurunkan atau menaikkan posisi x menggunakan variabel moveSpeed untuk memodifikasi properti position.

Ketika tangan bergerak 0.7 unit, kita kalikan properti moveSpeed oleh -1 untuk membuat tangan bergerak dalam arah yang berlawanan. Hasilnya adalah bahwa tangan bergerak dari satu sisi ke sisi lain loop kontinu, sehingga sulit bagi sapi untuk melewati tangan dan mencapai bintang.

20. sapi Script

Membuat script baru dan melampirkan ke objek permainan sapi. Script ini akan menangani action pemain dan beberapa fungsi yang terkait dengan mekanika permainan, seperti menampilkan lansiran. Mari kita lihat pada properti yang digunakan dalam script ini.

  • gravity: digunakan untuk mensimulasikan gaya vertikal, menarik sapi ke bawah
  • micVolume: referensi ke objek permainan MicrophoneInput
  • moveSpeed: mendapat nilai loudness dari class MicrophoneInput
  • balloons: memegang nomor balon, nilai ini mewakili hidup pemain
  • alertWin: referensi ke objek permainan alertWin
  • alertLose: referensi ke objek permainan alertLose

Catatan bahwa variabel public perlu diatur dalam Unity 's editor. Mereka adalah semua referensi ke prefabs. Menetapkan nilai dari variabel dalam editor itu mudah. Simpan script dan memastikan bahwa ada tidak ada kesalahan. Kemudian beralih kembali ke Unity dan pilih objek permainan yang terpasang di script. Anda harus melihat variabel-variabel yang tercantum di bawah ini komponen script seperti ditunjukkan di bawah.

Drag dan drop asset yang diperlukan atau diinginkan ke variabel, atau klik titik kecil di bawah ikon gigi untuk memilihnya.

Pastikan bahwa aset dan variabel dari jenis yang sama atau Anda tidak akan dapat menjatuhkannya atau melihatnya ketika Anda klik pada ikon dot.

21. Menggerakan sapi

Langkah 1: Menggerakan

Untuk memindahkan sapi ke atas, kita akan menggunakan metode FixedUpdate. Mengapa tidak metode Update reguler? Metode ini adalah standar MonoBehaviour metode yang berjalan setiap tingkat bingkai tetap bukan setiap bingkai. Ini berarti bahwa itu akan menjadi halus bahkan jika saat ini frame rate sedikit rendah. Tambahkan blok kode berikut ke script:

Kita menghitung kecepatan dengan mendapatkan kenyaringan sekarang mikrofon. Loudness ini diperoleh dari class MicrophoneInput dan kemudian dikalikan dengan 0,01. Kita melakukan ini untuk mencegah sapi bergerak terlalu cepat.

Karakter sapi digerakkan oleh meningkatkan nilai y properti transform.position, menggunakan kecepatan yang kita simpan di moveSpeed.

Langkah 2: Simulasi gravitasi

Selain bergerak sapi, kami juga menerapkan gaya ke bawah itu, gravitasi. Kita mencapai ini dengan penurunan posisi sapi menggunakan vektor gravity yang kita buat sebelumnya. Melakukan hal ini akan terus-menerus mengurangi posisi y sapi tanpa membuatnya jatuh lebih cepat, yang terjadi jika kita menggunakan gravitasi perilaku default.

22.tabrakan tangan

Langkah 1: Mendeteksi tabrakan

Pada langkah berikutnya, kami mendeteksi jika salah satu tangan berbenturan dengan sapi. Metode OnTriggerEnter2D berjalan ketika dua objek bertabrakan tanpa interaksi fisik. Dalam kasus ini, kami memeriksa jika sapi bertabrakan dengan sebuah objek yang bernama "Hand", yang dapat menjadi salah satu tangan pada Scene, dan memutar audio yang melekat pada objek permainan sapi jika tabrakan terjadi. Anda akan melihat kami juga memeriksa properti alpha sapi. Mengapa kita melakukan ini dijelaskan di langkah berikutnya.

Langkah 2: Mencegah beberapa tabrakan

Tabrakan yang diuji beberapa kali setiap frame, berarti bahwa tiga tabrakan akan terjadi dalam waktu yang sangat singkat yang muncul semua balon. Karena kita tidak ingin hal ini terjadi, kita membutuhkan suatu cara untuk mencegah hal ini.

Cara yang berguna untuk melakukan ini adalah untuk mengubah alpha kena objek. Ini juga akan memberikan umpan balik visual pengguna menunjukkan bahwa itu telah ditabrak. Baris berikutnya akan mengurus itu.

Kami pertama kali membuat objek Color baru dan menetapkan warna objek permainan dan mengatur nilai alpha untuk 0.5 untuk membuatnya semi-transparan. Kita kemudian mengakses objek permainan SpriteRenderer, yang memungkinkan kita mengubah warnanya.

Baris terakhir di kode blok ini menunggu beberapa detik dan kemudiannya memanggil fungsi EnableCollision. Fungsi ini me-reset nilai-nilai warna sapi yang membuatnya dapat mendeteksi tabrakan lagi. Kami akan menerapkan fungsi ini kemudian dalam tutorial ini.

23. menghapus balon

Ketika sapi memukul dengan tangan, satu balon perlu dihapus. Kita memanggil metode Destroy pada objek permainan balon. Kami menggunakan fungsi Find, karena kita tidak memiliki referensi ke masing-masing balon.

Fungsi ini mencari permainan asset dan mengembalikan objek permainan yang kita cari, hal ini balon.

Tapi tunggu, tidak ada tiga balon dalam scene? Ini benar. Namun, fungsi Find mengembalikan pertama yang dapat ditemukan. Dengan kata lain, itu mengembalikan balon permainan obyek pertama yang ditemukan.

Kami juga mengurangi balloons counter untuk membantu kita mengetahui kapan sapi telah kehilangan semua kehidupan.

24. permainan berakhir

Permainan ini lebih ketika semua balon telah muncul. Untuk menguji ini, kami memeriksa jika balloons sama dengan 0 dan menampilkan peringatan jika true. Kami juga mengatur gravitasi y properti ke 0 dan menunda permainan dengan mengatur timeScale ke 0.

Properti timeScale mengontrol bagaimana waktu berlalu di lingkungan permainan. Dapat digunakan untuk membuat permainan lebih cepat atau lebih lambat didasarkan pada nilai. Waktu standar skala adalah 1.0, meningkatkan nilainya mempercepat frame rate yang terkait fungsi dan penurunan ini memperlambat mereka. Pengaturan untuk 0 jeda permainan, mencegah setiap tabrakan baru.

25. Level lengkap

Ketika pemain mendapat ke sisi lain dari level kita perlu menghapus bintang dan menampilkan peringatan menunjukkan bahwa level telah selesai.

if pernyataan memeriksa jika tabrakan bahkan dengan objek permainan bintang dan memainkan audio melekat sapi jika nama benar. Kami kemudian menghapus bintang dari scene sebelum membuat alert. Kami juga mengatur gravitasi y properti ke 0 seperti yang kita lakukan di langkah sebelumnya.


26. Mengaktifkan tabrakan

Metode EnableCollision me-reset nilai alpha objek permainan sapi setelah itu telah terpukul oleh tangan. Melakukan hal ini akan memungkinkan objek permainan sapi untuk mendeteksi hit lainnya. Perhatikan bahwa objek Color memiliki alpha 1.

27. restart permainan

Metode Reload menggunakan class Application untuk reload level saat ini. Membuat script baru bernama Restart, tambahkan blok kode berikut ke dalamnya, dan melampirkannya pada kedua prefabs alert yang kita buat sebelumnya.

Kami pertama menguji jika pengguna menyentuh pada layar menggunakan Input class dan memanggil metode Reload jika true. Implementasi metode Reload singkat dan sederhana. Semua yang kita lakukan adalah meload reseting level, saat ini setiap objek dan variabel ke keadaan awal.

28. pengujian

Saatnya untuk menguji permainan. Tekan Command-P untuk memainkan permainan dalam Unity. Jika semuanya bekerja seperti yang diharapkan, Anda siap untuk langkah terakhir.

29. Pengaturan Pemain

Bila Anda senang dengan permainan Anda, saatnya untuk memilih Build Settings dari File menu dan klik tombol Player Settings. Ini harus membawa Player Settings di panel Inspector yang mana Anda dapat mengatur parameter untuk aplikasi Anda.

Pengaturan ini aplikasi-spesifik dan termasuk creator atau perusahaan, aplikasi resolusi, menampilkan mode, dll. Pengaturan ini tergantung pada perangkat yang Anda targetkan serta toko atau Anda akan menerbitkan permainan Anda di pasar.

30. Build dan Mainkan

Setelah dikonfigurasi dengan benar proyek Anda, sekarang saatnya untuk ke Build Settings dan klik tombol Build. Itu adalah semua yang diperlukan untuk membangun permainan Anda untuk pengujian dan/atau distribusi.

Kesimpulan

Dalam tutorial ini, kita telah belajar bagaimana menerapkan kontrol mikrofon, fisik interaksi, sprite sheet, dan aspek-aspek lain dari permainan pengembangan menggunakan Unity. Saya mendorong Anda untuk bereksperimen dengan hasil dan menyesuaikan permainan untuk membuat Anda sendiri. Saya harap Anda menyukai tutorial ini dan menemukan ini berguna.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.