Toista useita ääniä samanaikaisesti

Sivu päivitetty :
Sivun luontipäivämäärä :

Varmennusympäristö

Windows
  • Windows 11
Unity-editori
  • 2021.3.3F1
Syöttöjärjestelmän paketti
  • 1.3.0

Tämän vinkin edellytykset

Seuraavat asetukset on tehty etukäteen tämän vinkin kuvauksen lähtökohtana.

Tietoja näytteeseen sisältyvästä materiaalista

Äänitehosteet on lainattu seuraavilta sivustoilta.

Tietoja äänitiedostoista

Seuraavia äänitiedostomuotoja voidaan toistaa Unityn vakio-ominaisuuksilla: Valmistele se etukäteen, koska sitä käytetään näissä vinkeissä.

  • WAV (.wav)
  • OggVorbis (.ogg)
  • MPEG-kerros 3 (.mp3)

Lisätietoja on virallisissa Unity-dokumentaatiossa.

Tietoja useista samanaikaisista äänentoistoista

Edellisissä vinkeissä käytimme AudioSourcea äänitiedoston toistamiseen, mutta kun yritimme tehdä yhden äänen ja useita ääniä, edellinen ääni katosi. Jos pelissä on esimerkiksi kaksi räjähdystä, on luonnotonta, että ensimmäinen äänitehoste katoaa, kun toinen räjähdys tuottaa äänitehosteen. Tässä osassa kuvataan, miten sama ääni toistetaan useita kertoja päällekkäin.

Vaiheet äänen toistamiseen samanaikaisesti

Tässä selitän siitä kohdasta, jossa loin uuden projektin, mutta jos tunnet Unityä jossain määrin, voit leikata vain asiaankuuluvat osat ja muistaa ne.

Tällä kertaa äänitehoste toistetaan aina, kun napsautat painiketta. Luo käyttöliittymä kuvan osoittamalla tavalla. Yksityiskohdat ovat asianmukaisia ja hyviä.

Lisää äänitiedosto pudottamalla se projektiisi.

Lisää äänilähde hierarkiaan. Tässä tapauksessa et aseta äänileikettä suoraan AudioSourceen.

Lisää komentosarja. ButtonEvent Jätä nimeksi .

Skripti näyttää tältä:

using UnityEngine;

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

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

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

AudioSource Ajattele sitä äänenhallinnan luokkana, aivan kuten edelliset vinkit.

AudioClip on luokka, joka tallentaa äänidataa. Voit asettaa äänitiedostoja täällä.

AudioSource.PlayOneShot Jos välität sen argumenttina menetelmälle, voit toistaa äänidataa AudioClip . Tällä menetelmällä toistettua ääntä ohjataan itsenäisesti. Jos kutsut tätä menetelmää uudelleen, se toistetaan uutena äänenä erillään edellisestä. Siksi on mahdollista toistaa ääni uudelleen joka kerta, kun tätä menetelmää kutsutaan.

Liitä komentosarja EventSystemiin.

Aseta "Audio Source" -kohdassa hierarkiaan lisätty "Audio Source".

Aseta "Äänileike" -kohtaan äänitiedosto projektista.

Aseta lopuksi menetelmäksi painikkeen napsautustapahtuma.

Suorita peli ja napsauta painiketta. Uskon, että äänitehosteet toistuvat. Jos napsautat painiketta uudelleen toiston aikana, uusi ääni toistetaan ilman, että edellinen ääni katoaa.

AudioClip Tällä tavalla on nyt mahdollista toistaa sama ääni päällekkäin toistamalla ääni kautta . Näin peli voi pelata ilman, että edellinen ääni katoaa luonnottomasti.

Haitat toistettaessa AudioClipillä

AudioClip Pystyin toistamaan ääntä päällekkäin toistamalla sitä käyttämällä , mutta päinvastoin, seuraavat haitat ilmenevät.

Ääni muuttuu meluisaksi

Kuten näet, jos napsautat painiketta jatkuvasti, äänet menevät päällekkäin ja toistettu harmonia muuttuu kovemmaksi ja kovemmaksi. Jos esimerkiksi haluat toistaa äänitehosteen, kun hyökkäys osuu peliin, Jos useita osumia esiintyy samanaikaisesti ilman toimenpiteitä, ne voidaan toistaa epänormaalilla äänenvoimakkuudella.