Aynı anda birden fazla ses çalın
Doğrulama ortamı
- Windows
-
- Pencereler 11
- Birlik Editörü
-
- 2021.3.3f1
- Giriş Sistemi Paketi
-
- 1.3.0
Bu ipucu için önkoşullar
Aşağıdaki ayarlar, bu ipucunun açıklaması için bir öncül olarak önceden yapılmıştır.
Numuneye dahil edilen malzeme hakkında
Ses efektleri aşağıdaki sitelerden ödünç alınmıştır.
Ses dosyaları hakkında
Aşağıdaki ses dosyası formatları Unity'nin standart özellikleriyle çalınabilir: Lütfen önceden hazırlayın çünkü bu ipuçlarında kullanılacaktır.
- WAV (.wav)
- OggVorbis (.ogg)
- MPEG katman 3 (.mp3)
Daha fazla bilgi için resmi Unity belgelerine bakın.
Aynı anda birden fazla ses çalma hakkında
Önceki ipuçlarında, bir ses dosyasını çalmak için AudioSource'u kullandık, ancak tek bir ses ve birden fazla ses çıkarmaya çalıştığımızda, önceki ses kayboldu. Örneğin, bir oyunda iki patlama varsa, ikinci patlama bir ses efekti oluşturduğunda ilk ses efektinin kaybolması doğal değildir. Bu bölümde, aynı sesin üst üste birden çok kez nasıl çalınacağı açıklanmaktadır.
Aynı anda ses çalma adımları
Burada yeni bir proje oluşturduğum noktadan açıklayacağım ama Unity'yi bir nebze de olsa biliyorsanız sadece ilgili kısımları kesip ezberleyebilirsiniz.
Bu kez, düğmeye her tıkladığınızda ses efekti çalacaktır. Kullanıcı arabiriminizi gösterildiği gibi oluşturun. Detaylar uygun ve iyi.
Projenize bırakarak bir ses dosyası ekleyin.
Ses Kaynağı'nı hiyerarşiye ekleyin. Bu durumda, ses klibini doğrudan AudioSource'a ayarlamazsınız.
Bir komut dosyası ekleyin. ButtonEvent
Adı olarak bırakın.
Komut dosyası şöyle görünür:
using UnityEngine;
public class ButtonEvent : MonoBehaviour
{
[SerializeField] private AudioSource AudioSource;
<summary>音声データ。</summary>
[SerializeField] private AudioClip AudioClip;
public void OnClickPlay()
{
// オーディオを再生します
AudioSource.PlayOneShot(AudioClip);
}
}
AudioSource
Bunu, önceki ipuçlarında olduğu gibi, sesi kontrol etmek için bir sınıf olarak düşünün.
AudioClip
ses verilerini depolayan bir sınıftır. Ses dosyalarını buradan ayarlayabilirsiniz.
AudioSource.PlayOneShot
Bunu yönteme bağımsız değişken olarak geçirirseniz, ses verilerini çalabilirsiniz AudioClip
.
Bu yöntemle çalınan ses bağımsız olarak kontrol edilir.
Bu yöntemi tekrar çağırırsanız, öncekinden ayrı olarak yeni bir ses olarak çalınacaktır.
Bu nedenle, bu yöntem her çağrıldığında sesi tekrar çalmak mümkündür.
Komut dosyasını EventSystem'e ekleyin.
"Ses Kaynağı" için, hiyerarşiye eklenen "Ses Kaynağı" nı ayarlayın.
"Ses klibi" için projeden bir ses dosyası ayarlayın.
Son olarak, yöntemi düğmenin tıklama olayına ayarlayın.
Oyunu çalıştırın ve düğmeye tıklayın. Ses efektlerinin çalacağını düşünüyorum. Ayrıca, çalma sırasında düğmeye tekrar tıklarsanız, önceki ses kaybolmadan yeni ses çalınır.
AudioClip
Bu sayede artık sesi üzerinden çalarak aynı sesi üst üste çalmak mümkün.
Bu, oyunun önceki ses doğal olmayan bir şekilde kaybolmadan oynanmasını sağlar.
AudioClip ile oynarken dezavantajları
AudioClip
Kullanarak çalarak sesi üst üste çalabildim, ancak aksine, aşağıdaki dezavantajlar ortaya çıkıyor.
Ses gürültülü hale geliyor
Düğmeye sürekli tıklarsanız görebileceğiniz gibi, sesler üst üste biner ve çalınan armonik daha yüksek ve daha yüksek hale gelir. Örneğin, bir oyunda bir saldırı isabet ettiğinde ses efekti çalmak istiyorsanız, Herhangi bir önlem alınmadan aynı anda birden fazla isabet meydana gelirse, bunlar anormal bir ses seviyesinde çalınabilir.