Unity - Sese Giriş

Oyunların sese vurgu yapmasının bir nedeni vardır; oyuna estetik değer katmak oldukça önemli. En başındanPong, küreklere dönüşümlü olarak vuran topun bip sesleri ve zıplamaları duyulabilir. O zamanlar gerçekten basit bir kısa kare dalga örneğiydi, ancak tüm video oyunlarının büyükbabasından daha ne isteyebilirsiniz?

Gerçek hayatta pek çok şey sesi algılama şeklinizi etkiler; nesnenin hızı, ne tür bir senaryoda olduğu ve hangi yönden geldiği.

Motorumuzda gereksiz yük oluşturabilecek bir dizi faktör vardır. Bunun yerine, sesimizin oyunumuzda nasıl çalışacağına dair bir fikir oluşturmaya ve bunun etrafında inşa etmeye çalışıyoruz. Bu, özellikle ilgilenilmesi gereken 3 eksenin olduğu 3B oyunlarda öne çıkıyor.

Unity'de, ses algılama ve oynatma için özel bileşenlerimiz var. Bu bileşenler, oyuna doğal gelen inandırıcı bir ses sistemi oluşturmak için birlikte çalışır.

Unity bize yankı, Doppler efekti, gerçek zamanlı karıştırma ve efektler gibi bir dizi yararlı araç ve efekt sağlar. Bunları sonraki bölümlerimizde öğreneceğiz.

Ses Bileşenleri

Bu bölümde, Unity'de sesle ilgili 3 temel bileşen hakkında bilgi edineceğiz.

Ses kaynağı

AudioSource bileşeni, ses çalmasını sağlamak için bir GameObject'e ekleyeceğiniz birincil bileşendir. Bir oynayacakAudioClip karıştırıcı aracılığıyla, kod aracılığıyla veya varsayılan olarak, uyandığında tetiklendiğinde.

Bir AudioClip, bir AudioSource'a yüklenen bir ses dosyasıdır. .Mp3, .wav ve benzeri herhangi bir standart ses dosyası olabilir. AudioClip, kendi içinde de bir bileşendir.

AudioListener

AudioListener, listenssahnede çalan tüm seslere aktarır ve bilgisayarın hoparlörlerine aktarır. Gibi davranırearsoyunun. Duyduğunuz tüm ses, bu AudioListener'ın konumlandırmasının perspektifindedir. Düzgün çalışması için sahnede yalnızca bir AudioListener olmalıdır. Varsayılan olarak, ana kamera kendisine bağlı bir Dinleyiciye sahiptir. Dinleyici, tasarımcının ilgilenmek isteyeceği herhangi bir açık özelliğe sahip değildir.

Ses Filtreleri

Bir AudioSource'un çıkışı veya bir AudioListener'ın alımı, Audio Filters yardımıyla değiştirilebilir. Bunlar, yankı, koro, filtreleme ve benzerlerini değiştirebilen belirli bileşenlerdir. Her özel filtre, nasıl ses çıkardığını ayarlamak için maruz kalan değerlere sahip kendi bileşeni olarak gelir.

Bir Ses Çalma

Tıklandığında ses çalan bir düğme yapmayı deneyelim. Başlamak için yapacağızCreate bir Circle sprite ve onu kırmızı yapın.

Şimdi, bir ekleyelim Audio Source bu sprite için.

Nesnenin bir ses çalması için ona bir ses vermeliyiz. Bu ses efektini amacımız için kullanalım.

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

Ses efektini indirin ve Varlıklar'a sürükleyin.

Unity bu varlığı bir ses dosyası olarak içe aktardığında, otomatik olarak bir AudioClip. Bu nedenle, bu ses klibini Varlıklardan doğrudan hareketli grafiğimizin Ses Kaynağındaki Ses Klibi yuvasına sürükleyebilirsiniz.

Ses klibini Varlıklardan doğrudan hareketli grafiğimizin Ses Kaynağındaki Ses Klibi yuvasına sürükledikten sonra, Ses Kaynağı özelliklerinde "Uyanıkken Çal" seçimini kaldırmayı unutmayın; bunu yapmamak, sesin oyun başladığı anda çalmasını sağlayacaktır.

Şimdi, kodumuza geçelim. "BellSound" adında yeni bir komut dosyası oluşturun ve açın.

Ses Kaynağımız kodla kontrol edildiğinden, önce ona bir referans almak istiyoruz. GetComponent yöntemini eskisi gibi kullanacağız.

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

Şimdi, tıklanan nesneyi algılama yöntemini ayarlayalım. MonoBehaviour bize tam da ihtiyacımız olan, OnMouseDown adlı yöntemi verir. Yöntem, fare bir aralıkta tıkladığında çağrılır.collider o gameObject.

Düğmemize henüz bir çarpıştırıcı eklemediğimiz için, şimdi yapalım.

Bunun için bir Rijit cisme ihtiyacımız olmayacak; bu çarpıştırıcıya kodla erişmemize de gerek yok. Yöntemin işe yaraması için orada olması gerekiyor.

Yöntemi test edelim ve çalışıp çalışmadığını görelim. Aşağıdaki kodu komut dosyanıza yazın ve düğmeye ekleyin.

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

Komut dosyasını kaydettikten ve ekledikten sonra oyunu oynayın. Düğmeye tıklamak Konsolda bir mesaj oluşturmalıdır.

Artık sesi çalmaktan bir adım uzaktasınız. Şimdi tek yapman gereken çağrıPlay Ses Kaynağı örneğinde yöntem.

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

Komut dosyanızı kaydedin ve oyunda çalıştırın. Düğmeye tıklayın ve sesin çaldığını duymalısınız!

Note- Her tıkladığınızda perdede yükselen bir düğme yapmayı düşünün. KullanımmySource.pitch ve bir sayaç ve çözüp çözemeyeceğinizi görün.)