Aynı anda birden fazla ses çalın

Sayfa güncel :
Sayfa oluşturma tarihi :

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.