Kelių garsų leidimas vienu metu

Puslapis atnaujintas :
Puslapio sukūrimo data :

Tikrinimo aplinka

Windows
  • Langai 11
"Unity" redaktorius
  • 2021.3.3F1
Įvesties sistemos paketas
  • 1.3.0

Būtinos šio patarimo sąlygos

Šie nustatymai buvo atlikti iš anksto kaip šio patarimo aprašymo prielaida.

Apie medžiagą, įtrauktą į pavyzdį

Garso efektai yra pasiskolinti iš šių svetainių.

Apie garso failus

Naudojant standartines "Unity" funkcijas galima leisti šiuos garso failų formatus: Paruoškite jį iš anksto, nes jis bus naudojamas šiuose patarimuose.

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

Daugiau informacijos rasite oficialioje "Unity" dokumentacijoje.

Apie kelių garso įrašų atkūrimą vienu metu

Ankstesniuose patarimuose garso failui leisti naudojome AudioSource, bet kai bandėme sukurti vieną garsą ir kelis garsus, ankstesnis garsas dingo. Pavyzdžiui, jei žaidime yra du sprogimai, nenatūralu, kad pirmasis garso efektas išnyksta, kai antrasis sprogimas sukuria garso efektą. Šiame skyriuje aprašoma, kaip leisti tą patį garsą kelis kartus vienas ant kito.

Garso atkūrimo vienu metu veiksmai

Čia paaiškinsiu nuo to momento, kai sukūriau naują projektą, bet jei tam tikru mastu žinote "Unity", galite iškirpti tik atitinkamas dalis ir jas įsiminti.

Šį kartą garso efektas bus paleistas kiekvieną kartą spustelėjus mygtuką. Sukurkite vartotojo sąsają, kaip parodyta. Detalės yra tinkamos ir geros.

Pridėkite garso failą numesdami jį į savo projektą.

Įtraukite garso šaltinį į hierarchiją. Tokiu atveju garso įrašo nenustatysite tiesiai į "AudioSource".

Pridėkite scenarijų. ButtonEvent Palikite pavadinimą kaip .

Scenarijus atrodo taip:

using UnityEngine;

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

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

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

AudioSource Pagalvokite apie tai kaip apie garso valdymo klasę, kaip ir apie ankstesnius patarimus.

AudioClip yra klasė, kurioje saugomi garso duomenys. Čia galite nustatyti garso failus.

AudioSource.PlayOneShot Jei perduosite jį kaip argumentą metodui, galėsite leisti AudioClip garso duomenis. Šiuo metodu leidžiamas garsas valdomas atskirai. Jei vėl paskambinsite šiuo metodu, jis bus grojamas kaip naujas balsas atskirai nuo ankstesnio. Todėl kiekvieną kartą, kai šis metodas vadinamas, galima vėl leisti garsą.

Pridėkite scenarijų prie "EventSystem".

"Garso šaltiniui" nustatykite "Garso šaltinį", pridėtą prie hierarchijos.

"Garso klipui" nustatykite garso failą iš projekto.

Galiausiai nustatykite metodą į mygtuko paspaudimo įvykį.

Paleiskite žaidimą ir spustelėkite mygtuką. Manau, kad garso efektai gros. Be to, jei atkūrimo metu dar kartą spustelėsite mygtuką, naujas garsas bus paleistas nedingus ankstesniam garsui.

AudioClip Tokiu būdu dabar galima leisti tą patį garsą vienas ant kito, leidžiant garsą per . Tai leidžia žaidimui žaisti be ankstesnio garso dingimo nenatūraliai.

Trūkumai žaidžiant su "AudioClip"

AudioClip Aš galėjau atkurti garsą vienas ant kito, grodamas jį naudodamas , bet, priešingai, atsiranda šie trūkumai.

Garsas tampa triukšmingas

Kaip matote, jei nuolat spustelėsite mygtuką, garsai persidengia, o grojama harmonika tampa vis garsesnė. Pavyzdžiui, jei norite paleisti garso efektą, kai žaidime įvyksta ataka, Jei vienu metu įvyksta keli paspaudimai nesiimant jokių priemonių, jie gali būti grojami neįprastu garsumu.