Több hang lejátszása egyszerre

Oldal frissítve :
Oldal létrehozásának dátuma :

Ellenőrzési környezet

Windows
  • Windows 11 esetén
Unity-szerkesztő
  • 2021.3.3f1
Bemeneti rendszercsomag
  • 1.3.0

A tipp előfeltételei

A következő beállításokat előre elvégeztük a tipp leírásának előfeltételeként.

A mintához mellékelt anyagról

A hanghatásokat a következő webhelyekről kölcsönzik.

Hangfájlokról

A következő hangfájlformátumok játszhatók le a Unity szabványos funkcióival: Kérjük, készítse elő előre, mert ezekben a tippekben fogják használni.

  • WAV (.wav)
  • OggVorbis negyed (.ogg)
  • MPEG 3. réteg (.mp3)

További információért tekintse meg a Unity hivatalos dokumentációját.

Több egyidejű hanglejátszás

Az előző tippekben az AudioSource segítségével játszottunk le egy hangfájlt, de amikor egyetlen hangot és több hangot próbáltunk kiadni, az előző hang eltűnt. Ha például két robbanás van egy játékban, természetellenes, hogy az első hangeffektus eltűnik, amikor a második robbanás hanghatást generál. Ez a szakasz azt ismerteti, hogyan játszhatja le ugyanazt a hangot többször egymás tetején.

A hang egyidejű lejátszásának lépései

Itt elmagyarázom azt a pontot, ahol új projektet hoztam létre, de ha bizonyos mértékig ismeri az Unity-t, akkor csak a releváns részeket vághatja ki és memorizálhatja őket.

Ezúttal a hanghatás minden alkalommal lejátszásra kerül, amikor rákattint a gombra. Hozza létre a felhasználói felületet az ábrán látható módon. A részletek megfelelőek és jók.

Hangfájl hozzáadásához dobja be a projektbe.

Adja hozzá a hangforrást a hierarchiához. Ebben az esetben nem állítja be a hangklipet közvetlenül az AudioSource eszközre.

Adjon hozzá egy szkriptet. ButtonEvent Hagyja meg a nevet .

A szkript így néz ki:

using UnityEngine;

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

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

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

AudioSource Gondoljon rá úgy, mint egy hangvezérlő osztályra, akárcsak az előző tippek.

AudioClip egy olyan osztály, amely hangadatokat tárol. Itt állíthatja be az audio fájlokat.

AudioSource.PlayOneShot Ha argumentumként adja át a metódusnak, lejátszhatja a AudioClip hangadatokat. Az ezzel a módszerrel lejátszott hangot függetlenül vezérlik. Ha újra felhívja ezt a módszert, akkor az új hangként lesz lejátszva az előzőtől elkülönítve. Ezért lehetőség van a hang újbóli lejátszására minden alkalommal, amikor ezt a módszert hívják.

Csatolja a szkriptet az EventSystemhez.

Az "Audio Source" (Hangforrás) beállításnál állítsa be a hierarchiához hozzáadott "Audio Source" (Hangforrás) értéket.

Az "Audio clip" esetében állítson be egy hangfájlt a projektből.

Végül állítsa be a metódust a gomb kattintási eseményére.

Futtassa a játékot, és kattintson a gombra. Azt hiszem, a hanghatások le fognak játszani. Továbbá, ha lejátszás közben ismét rákattint a gombra, az új hang lejátszásra kerül anélkül, hogy az előző hang eltűnne.

AudioClip Ily módon most már lehetőség van ugyanazon hang lejátszására egymáson, ha a hangot a . Ez lehetővé teszi a játék lejátszását anélkül, hogy az előző hang természetellenesen eltűnne.

Hátrányok az AudioClip használatakor

AudioClip Le tudtam játszani a hangot egymáson a használatával, de éppen ellenkezőleg, a következő hátrányok jelentkeznek.

A hang zajossá válik

Amint láthatja, ha folyamatosan rákattint a gombra, a hangok átfedik egymást, és a lejátszott harmonikus egyre hangosabb lesz. Például, ha hangeffektust szeretne játszani, amikor támadás éri a játékot, Ha egyszerre több találat történik anélkül, hogy bármilyen intézkedést tennének, akkor azokat rendellenes hangerőn lehet lejátszani.