Vairāku skaņu vienlaicīga atskaņošana

Lapa atjaunota :
Lapas izveides datums :

Verifikācijas vide

Windows
  • Operētājsistēmā Windows 11
Vienotības redaktors
  • 2021.3.3f1
Ievades sistēmas pakete
  • 1.3.0

Priekšnoteikumi šim padomam

Tālāk norādītie iestatījumi ir veikti iepriekš kā priekšnoteikums šī padoma aprakstam.

Par paraugā iekļauto materiālu

Skaņas efekti tiek aizņemti no šādām vietnēm.

Par audio failiem

Ar Unity standarta funkcijām var atskaņot šādus audio failu formātus: Lūdzu, sagatavojiet to iepriekš, jo tas tiks izmantots šajos padomos.

  • WAV (.wav)
  • OggVorbis (.ogg)
  • MPEG 3. slānis (.mp3)

Lai iegūtu papildinformāciju, skatiet oficiālo Unity dokumentāciju.

Par vairāku vienlaicīgu audio atskaņošanu

Iepriekšējos padomos mēs izmantojām AudioSource, lai atskaņotu audio failu, bet, mēģinot izveidot vienu skaņu un vairākas skaņas, iepriekšējā skaņa pazuda. Piemēram, ja spēlē ir divi sprādzieni, ir nedabiski, ka pirmais skaņas efekts pazūd, kad otrais sprādziens rada skaņas efektu. Šajā sadaļā aprakstīts, kā atskaņot vienu un to pašu skaņu vairākas reizes vienu virs otras.

Darbības, kas jāveic, lai vienlaikus atskaņotu audio

Šeit es paskaidrošu no punkta, kur es izveidoju jaunu projektu, bet, ja jūs zināmā mērā zināt Vienotību, jūs varat izgriezt tikai attiecīgās daļas un iegaumēt tās.

Šoreiz skaņas efekts tiks atskaņots katru reizi, kad noklikšķināsit uz pogas. Izveidojiet savu lietotāja interfeisu, kā parādīts attēlā. Detaļas ir atbilstošas un labas.

Pievienojiet skaņas failu, nometot to savā projektā.

Pievienojiet hierarhijai audio avotu. Šādā gadījumā audioklips netiks iestatīts tieši uz AudioSource.

Pievienojiet skriptu. ButtonEvent Atstājiet vārdu kā .

Skripts izskatās šādi:

using UnityEngine;

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

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

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

AudioSource Padomājiet par to kā par klasi audio kontrolei, tāpat kā iepriekšējie padomi.

AudioClip ir klase, kurā tiek glabāti audio dati. Šeit varat iestatīt audio failus.

AudioSource.PlayOneShot Ja nododat to kā argumentu metodei, varat atskaņot AudioClip audio datus. Ar šo metodi atskaņotais audio tiek kontrolēts neatkarīgi. Ja jūs vēlreiz izsaucat šo metodi, tā tiks atskaņota kā jauna balss atsevišķi no iepriekšējās. Tāpēc ir iespējams atskaņot skaņu vēlreiz katru reizi, kad tiek izsaukta šī metode.

Pievienojiet skriptu EventSystem.

Sadaļā "Audio avots" iestatiet hierarhijai pievienoto "Audio avotu".

Sadaļā "Audio klips" iestatiet audio failu no projekta.

Visbeidzot, iestatiet metodi uz pogas klikšķa notikumu.

Palaidiet spēli un noklikšķiniet uz pogas. Es domāju, ka skaņas efekti tiks atskaņoti. Turklāt, ja atskaņošanas laikā vēlreiz noklikšķināsit uz pogas, jaunā skaņa tiks atskaņota, nepazūdot iepriekšējai skaņai.

AudioClip Tādā veidā tagad ir iespējams atskaņot to pašu skaņu viens otram virsū, atskaņojot audio, izmantojot . Tas ļauj spēlei spēlēt bez iepriekšējās skaņas, kas nedabiski pazūd.

Trūkumi, spēlējot ar AudioClip

AudioClip Es varēju atskaņot audio viens otram virsū, atskaņojot to, izmantojot , bet gluži pretēji, rodas šādi trūkumi.

Skaņa kļūst trokšņaina

Kā redzat, nepārtraukti noklikšķinot uz pogas, skaņas pārklājas un atskaņotās harmonikas kļūst skaļākas un skaļākas. Piemēram, ja vēlaties atskaņot skaņas efektu, kad uzbrukumā trāpa spēlē, Ja vienlaikus notiek vairāki trāpījumi, neveicot nekādus pasākumus, tos var atskaņot neparastā skaļumā.