Unity - Pengantar Audio

Ada alasan mengapa game menekankan pada audio; sangat penting untuk menambahkan nilai estetika ke dalam game. Dari awalPong, Seseorang dapat mendengar bunyi bip dan boops dari bola yang memukul dayung secara bergantian. Itu adalah sampel gelombang persegi pendek yang sangat sederhana pada saat itu, tetapi apa lagi yang Anda inginkan dari kakek semua video game?

Dalam kehidupan nyata, banyak hal memengaruhi cara Anda merasakan suara; kecepatan benda, jenis skenarionya, dan arah asalnya.

Ada sejumlah faktor yang dapat menyebabkan beban yang tidak perlu pada mesin kita. Sebagai gantinya, kami mencoba membuat ide tentang bagaimana suara kami akan bekerja dalam game kami, dan mengembangkannya. Ini menjadi sangat menonjol dalam game 3D, di mana ada 3 sumbu yang harus ditangani.

Di Unity, kami memiliki komponen khusus untuk persepsi dan pemutaran audio. Komponen-komponen ini bekerja sama untuk menciptakan sistem suara tepercaya yang terasa alami untuk game.

Unity memberi kita serangkaian alat dan efek yang berguna seperti reverb, efek Doppler, mixing dan efek real-time, dll. Kita akan mempelajarinya di bab-bab selanjutnya.

Komponen Audio

Di bagian ini, kita akan mempelajari tentang 3 komponen utama yang terkait dengan audio di Unity.

Sumber suara

Komponen AudioSource adalah komponen utama yang akan Anda lampirkan ke GameObject untuk membuatnya memutar suara. Ini akan memutar fileAudioClip saat dipicu melalui mixer, melalui kode atau secara default, saat aktif.

AudioClip hanyalah file suara yang dimuat ke AudioSource. Ini bisa berupa file audio standar apa saja, seperti .mp3, .wav, dan sebagainya. AudioClip juga merupakan komponen dalam dirinya sendiri.

AudioListener

AudioListener adalah komponen itu listenske semua audio yang diputar di layar, dan mentransfernya ke speaker komputer. Kerjanya sepertiearsdari permainan. Semua audio yang Anda dengar dalam perspektif pemosisian AudioListener ini. Hanya satu AudioListener yang harus ada dalam satu adegan agar berfungsi dengan benar. Secara default, kamera utama memiliki Pendengar yang terpasang padanya. Pendengar tidak memiliki properti terbuka yang ingin diperhatikan oleh desainer.

Filter Audio

Output dari Sumber Audio atau asupan AudioListener dapat dimodifikasi dengan bantuan Filter Audio. Ini adalah komponen khusus yang dapat mengubah reverb, chorus, filtering, dan sebagainya. Setiap filter tertentu hadir sebagai komponennya sendiri dengan nilai yang diekspos untuk menyesuaikan bunyinya.

Memutar Suara

Mari kita coba membuat tombol yang mengeluarkan suara saat diklik. Untuk memulai, kami akan melakukannyaCreate lingkaran sprite, dan membuatnya menjadi merah.

Sekarang, mari kita lampirkan Audio Source ke sprite ini.

Agar objek dapat mengeluarkan suara, kita harus memberikannya satu. Mari kita gunakan efek suara ini untuk tujuan kita.

http://www.orangefreesounds.com/ding-sfx/

Unduh efek suara, dan seret ke Aset.

Saat Unity mengimpor aset ini sebagai file suara, secara otomatis diubah menjadi file AudioClip. Oleh karena itu, Anda dapat menarik klip suara ini dari Assets langsung ke slot Audio Clip di Sumber Audio sprite kami.

Setelah Anda menyeret klip suara dari Aset langsung ke slot Klip Audio di Sumber Audio sprite kami, ingatlah untuk membatalkan pilihan "Putar Saat Sadar" di properti Sumber Audio; tidak melakukannya akan membuat suara diputar saat permainan dimulai.

Sekarang, mari kita beralih ke kode kita. Buat skrip baru bernama "BellSound" dan buka.

Karena Sumber Audio kami dikontrol melalui kode, kami ingin mendapatkan referensi terlebih dahulu. Kami akan menggunakan metode GetComponent seperti sebelumnya.

public class BellSound : MonoBehaviour {
   AudioSource mySource;
   // Use this for initialization
   void Start () {
      mySource = GetComponent<AudioSource>();
}

Sekarang, mari kita siapkan metode untuk mendeteksi objek yang diklik. MonoBehaviour memberi kita metode yang kita butuhkan untuk itu, bernama OnMouseDown. Metode ini dipanggil setiap kali mouse mengklik dalam rentang acollider dari gameObject itu.

Karena kita belum memasang collider ke tombol kita, mari kita lakukan sekarang.

Kami tidak membutuhkan Rigidbody untuk yang ini; kita juga tidak perlu mengakses collider ini dengan kode. Itu hanya harus ada di sana agar metode bekerja.

Mari kita uji metode tersebut dan lihat apakah itu berhasil. Tulis kode berikut di skrip Anda, dan lampirkan ke tombol.

void OnMouseDown() {
   Debug.Log(“Clicked!”);
}

Setelah Anda menyimpan skrip dan melampirkannya, mainkan gamenya. Mengklik tombol tersebut akan memunculkan pesan di Konsol.

Anda sekarang selangkah lagi untuk memainkan suaranya. Yang harus Anda lakukan sekarang adalah memanggilPlay metode dalam contoh Sumber Audio.

void OnMouseDown() {
   mySource.Play();
}

Simpan skrip Anda, dan jalankan di dalam game. Klik tombolnya, dan Anda akan mendengar suaranya diputar!

Note- Pertimbangkan untuk membuat tombol yang naik di nada setiap kali Anda mengkliknya. MenggunakanmySource.pitch dan penghitung dan lihat apakah Anda bisa mengetahuinya.)