Kelių garsų leidimas vienu metu
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.