Predvajanje več zvokov hkrati

Stran posodobljena :
Datum ustvarjanja strani :

Okolje za preverjanje

Windows
  • Windows 11
Urejevalnik Unity
  • 2021.3.3F1
Paket vhodnega sistema
  • 1.3.0

Predpogoji za ta nasvet

Naslednje nastavitve so bile vnaprej narejene kot premisa za opis tega nasveta.

O materialu, vključenem v vzorec

Zvočni učinki so izposojeni na naslednjih spletnih mestih.

O zvočnih datotekah

S standardnimi funkcijami Unity lahko predvajate naslednje oblike zapisa zvočnih datotek: Prosimo, pripravite ga vnaprej, ker bo uporabljen v teh nasvetih.

  • WAV (.wav)
  • OggVorbis (.ogg)
  • MPEG plast 3 (.mp3)

Za več informacij glejte uradno dokumentacijo Unity.

O večkratnem sočasnem predvajanju zvoka

V prejšnjih nasvetih smo uporabili AudioSource za predvajanje zvočne datoteke, toda ko smo poskušali narediti en zvok in več zvokov, je prejšnji zvok izginil. Na primer, če imate v igri dve eksploziji, je nenaravno, da prvi zvočni učinek izgine, ko druga eksplozija ustvari zvočni učinek. V tem razdelku je opisano, kako večkrat predvajate isti zvok.

Koraki za sočasno predvajanje zvoka

Tukaj bom razložil od točke, ko sem ustvaril nov projekt, če pa do neke mere poznate enotnost, lahko izrežete samo ustrezne dele in si jih zapomnite.

Tokrat se bo zvočni učinek predvajal vsakič, ko kliknete gumb. Ustvarite uporabniški vmesnik, kot je prikazano. Podrobnosti so primerne in dobre.

Dodajte zvočno datoteko tako, da jo spustite v projekt.

Dodajte vir zvoka v hierarhijo. V tem primeru zvočnega posnetka ne boste nastavili neposredno na vir zvoka.

Dodajte skript. ButtonEvent Pustite ime kot .

Scenarij izgleda takole:

using UnityEngine;

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

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

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

AudioSource Pomislite na to kot na razred za nadzor zvoka, tako kot prejšnji nasveti.

AudioClip je razred, ki shranjuje zvočne podatke. Zvočne datoteke lahko nastavite tukaj.

AudioSource.PlayOneShot Če ga posredujete kot argument metodi, lahko predvajate AudioClip zvočne podatke. Zvok, ki se predvaja s to metodo, se nadzoruje neodvisno. Če ponovno pokličete to metodo, se bo predvajala kot nov glas ločeno od prejšnjega. Zato je mogoče zvok ponovno predvajati vsakič, ko se imenuje ta metoda.

Priložite skript EventSystem.

Za »Vir zvoka« nastavite »Vir zvoka«, dodan v hierarhijo.

Za »Zvočni posnetek« nastavite zvočno datoteko iz projekta.

Na koncu nastavite metodo na dogodek klika gumba.

Zaženite igro in kliknite gumb. Mislim, da bodo zvočni učinki igrali. Če med predvajanjem znova kliknete gumb, se bo novi zvok predvajal, ne da bi prejšnji zvok izginil.

AudioClip Na ta način je zdaj mogoče predvajati isti zvok drug na drugega s predvajanjem zvoka prek . To omogoča, da igra brez nenaravnega izginotja prejšnjega zvoka.

Slabosti pri igranju z AudioClip

AudioClip Zvok sem lahko predvajal drug na drugega, tako da sem ga predvajal z uporabo , nasprotno pa se pojavijo naslednje slabosti.

Zvok postane hrupen

Kot lahko vidite, če neprekinjeno kliknete gumb, se zvoki prekrivajo in harmonik, ki se predvaja, postane glasnejši in glasnejši. Če želite na primer predvajati zvočni učinek, ko napad zadene igro, Če se hkrati pojavi več zadetkov brez kakršnih koli ukrepov, se lahko predvajajo pri nenormalni glasnosti.