Memainkan berbilang bunyi pada masa yang sama
Persekitaran pengesahan
- Windows
-
- Windows 11
- Penyunting Perpaduan
-
- 2021.3.3F1
- Pakej Sistem Input
-
- 1.3.0
Prasyarat untuk petua ini
Tetapan berikut telah dibuat terlebih dahulu sebagai premis untuk penerangan petua ini.
Mengenai bahan yang disertakan dengan sampel
Kesan bunyi dipinjam dari laman web berikut.
Perihal fail audio
Format fail audio berikut boleh dimainkan dengan ciri standard Unity: Sila sediakannya terlebih dahulu kerana ia akan digunakan dalam petua ini.
- WAV (.wav)
- OggVorbis (.ogg)
- MPEG lapisan 3 (.mp3)
Untuk maklumat lanjut, lihat dokumentasi Unity rasmi.
Perihal berbilang main balik audio serentak
Dalam petua sebelumnya, kami menggunakan AudioSource untuk memainkan fail audio, tetapi apabila kami cuba membuat satu bunyi dan berbilang bunyi, bunyi sebelumnya hilang. Sebagai contoh, jika anda mempunyai dua letupan dalam permainan, adalah tidak wajar untuk kesan bunyi pertama hilang apabila letupan kedua menghasilkan kesan bunyi. Bahagian ini menerangkan cara memainkan bunyi yang sama beberapa kali di atas satu sama lain.
Langkah untuk memainkan audio pada masa yang sama
Di sini, saya akan menerangkan dari sudut di mana saya membuat projek baru, tetapi jika anda tahu Perpaduan pada tahap tertentu, anda boleh memotong hanya bahagian yang berkaitan dan menghafalnya.
Kali ini, kesan bunyi akan dimainkan setiap kali anda mengklik butang. Buat UI anda seperti yang ditunjukkan. Butirannya sesuai dan baik.
Tambah fail bunyi dengan menjatuhkannya ke dalam projek anda.
Tambah Sumber Audio pada hierarki. Dalam kes ini, anda tidak akan mengesetkan klip audio terus kepada AudioSource.
Tambah skrip. ButtonEvent
Tinggalkan nama sebagai .
Skrip kelihatan 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
Anggaplah ia sebagai kelas untuk mengawal audio, sama seperti petua sebelumnya.
AudioClip
ialah kelas yang menyimpan data audio. Anda boleh mengesetkan fail audio di sini.
AudioSource.PlayOneShot
Jika anda menyampaikannya sebagai argumen kepada kaedah, anda boleh memainkan AudioClip
data audio.
Audio yang dimainkan oleh kaedah ini dikawal secara bebas.
Jika anda memanggil kaedah ini sekali lagi, ia akan dimainkan sebagai suara baru secara berasingan daripada yang sebelumnya.
Oleh itu, adalah mungkin untuk memainkan bunyi sekali lagi setiap kali kaedah ini dipanggil.
Lampirkan skrip ke EventSystem.
Untuk "Sumber Audio", setkan "Sumber Audio" yang ditambahkan pada hierarki.
Untuk "Klip audio", tetapkan fail audio daripada projek.
Akhirnya, tetapkan kaedah ke acara klik butang.
Jalankan permainan dan klik butang. Saya fikir kesan bunyi akan bermain. Selain itu, jika anda mengklik butang sekali lagi semasa main balik, bunyi baru akan dimainkan tanpa bunyi sebelumnya hilang.
AudioClip
Dengan cara ini, kini mungkin untuk memainkan bunyi yang sama di atas satu sama lain dengan memainkan audio melalui .
Ini membolehkan permainan bermain tanpa bunyi sebelumnya hilang secara tidak wajar.
Kelemahan semasa bermain dengan AudioClip
AudioClip
Saya dapat memainkan audio di atas satu sama lain dengan memainkannya menggunakan , tetapi sebaliknya, kelemahan berikut berlaku.
Bunyi menjadi bising
Seperti yang anda lihat jika anda mengklik butang secara berterusan, bunyi bertindih dan harmonik yang dimainkan menjadi lebih kuat dan lebih kuat. Sebagai contoh, jika anda ingin memainkan kesan bunyi apabila serangan melanda dalam permainan, Jika berbilang hits berlaku pada masa yang sama tanpa mengambil sebarang langkah, ia boleh dimainkan pada jumlah yang tidak normal.