Memutar beberapa suara secara bersamaan

Halaman Diperbarui :
Tanggal pembuatan halaman :

Lingkungan verifikasi

Windows
  • jendela 11
Editor Kesatuan
  • 2021.3.3f1
Paket Sistem Input
  • 1.3.0

Prasyarat untuk tip ini

Pengaturan berikut telah dibuat sebelumnya sebagai premis untuk deskripsi tip ini.

Tentang materi yang disertakan dengan sampel

Efek suara dipinjam dari situs-situs berikut.

Tentang file audio

Format file audio berikut dapat diputar dengan fitur standar Unity: Harap persiapkan terlebih dahulu karena akan digunakan dalam tips ini.

  • WAV (.wav)
  • OggVorbis (.ogg)
  • MPEG lapisan 3 (.mp3)

Untuk informasi selengkapnya, lihat dokumentasi resmi Unity.

Tentang beberapa pemutaran audio simultan

Dalam tips sebelumnya, kami menggunakan AudioSource untuk memutar file audio, tetapi ketika kami mencoba membuat satu suara dan beberapa suara, suara sebelumnya menghilang. Misalnya, jika Anda memiliki dua ledakan dalam permainan, tidak wajar jika efek suara pertama menghilang ketika ledakan kedua menghasilkan efek suara. Bagian ini menjelaskan cara memainkan suara yang sama beberapa kali di atas satu sama lain.

Langkah-langkah untuk memutar audio secara bersamaan

Di sini, saya akan menjelaskan dari titik di mana saya membuat proyek baru, tetapi jika Anda tahu Unity sampai batas tertentu, Anda hanya dapat memotong bagian yang relevan dan menghafalnya.

Kali ini, efek suara akan diputar setiap kali Anda mengklik tombol. Buat UI Anda seperti yang ditunjukkan. Detailnya sesuai dan bagus.

Tambahkan file suara dengan menjatuhkannya ke proyek Anda.

Tambahkan Sumber Audio ke hierarki. Dalam hal ini, Anda tidak akan mengatur klip audio langsung ke Sumber Audio.

Tambahkan skrip. ButtonEvent Biarkan nama sebagai .

Skripnya terlihat seperti ini:

using UnityEngine;

public class ButtonEvent : MonoBehaviour
{
  [SerializeField] private AudioSource AudioSource;

  /// <summary>音声データ。</summary>
  [SerializeField] private AudioClip AudioClip;

  public void OnClickPlay()
  {
    // オーディオを再生します
    AudioSource.PlayOneShot(AudioClip);
  }
}

AudioSource Anggap saja sebagai kelas untuk mengontrol audio, seperti tips sebelumnya.

AudioClip adalah kelas yang menyimpan data audio. Anda dapat mengatur file audio di sini.

AudioSource.PlayOneShot Jika Anda meneruskannya sebagai argumen ke metode, Anda dapat memutar AudioClip data audio. Audio yang diputar dengan metode ini dikontrol secara independen. Jika Anda memanggil metode ini lagi, itu akan diputar sebagai suara baru secara terpisah dari yang sebelumnya. Oleh karena itu, dimungkinkan untuk memutar suara lagi setiap kali metode ini dipanggil.

Lampirkan skrip ke EventSystem.

Untuk "Sumber Audio", atur "Sumber Audio" yang ditambahkan ke hierarki.

Untuk "Klip audio", atur file audio dari proyek.

Terakhir, atur metode ke acara klik tombol.

Jalankan game dan klik tombol. Saya pikir efek suara akan diputar. Selain itu, jika Anda mengklik tombol lagi selama pemutaran, suara baru akan diputar tanpa suara sebelumnya menghilang.

AudioClip Dengan cara ini, sekarang dimungkinkan untuk memutar suara yang sama di atas satu sama lain dengan memutar audio melalui . Ini memungkinkan game untuk bermain tanpa suara sebelumnya menghilang secara tidak wajar.

Kekurangan saat bermain dengan AudioClip

AudioClip Saya dapat memutar audio di atas satu sama lain dengan memutarnya menggunakan , tetapi sebaliknya, kerugian berikut terjadi.

Suara menjadi berisik

Seperti yang Anda lihat jika Anda mengklik tombol terus menerus, suara tumpang tindih dan harmonik yang dimainkan menjadi semakin keras. Misalnya, jika Anda ingin memainkan efek suara saat serangan terjadi dalam game, Jika beberapa hit terjadi pada saat yang sama tanpa mengambil tindakan apapun, mereka dapat dimainkan pada volume yang tidak normal.