Přehrávejte více zvuků současně

Stránky aktualizovány :
Datum vytvoření stránky :

Ověřovací prostředí

Windows
  • Systém Windows 11
Editor jednoty
  • 2021.3.3f1
Vstupní systémový balíček
  • 1.3.0

Předpoklady pro tento tip

Následující nastavení byla provedena předem jako předpoklad pro popis tohoto tipu.

O materiálu obsaženém ve vzorku

Zvukové efekty jsou vypůjčeny z následujících stránek.

O zvukových souborech

Pomocí standardních funkcí Unity lze přehrávat následující formáty zvukových souborů: Připravte si ji předem, protože bude použita v těchto tipech.

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

Další informace najdete v oficiální dokumentaci k jednotě.

O vícenásobném současném přehrávání zvuku

V předchozích tipech jsme použili AudioSource k přehrání zvukového souboru, ale když jsme se pokusili vytvořit jeden zvuk a více zvuků, předchozí zvuk zmizel. Pokud máte například ve hře dva výbuchy, je nepřirozené, aby první zvukový efekt zmizel, když druhý výbuch vygeneruje zvukový efekt. Tato část popisuje, jak přehrát stejný zvuk vícekrát nad sebou.

Kroky pro současné přehrávání zvuku

Zde vysvětlím od okamžiku, kdy jsem vytvořil nový projekt, ale pokud znáte Unity do určité míry, můžete vystřihnout pouze relevantní části a zapamatovat si je.

Tentokrát se zvukový efekt přehraje pokaždé, když kliknete na tlačítko. Vytvořte uživatelské rozhraní, jak je znázorněno na obrázku. Detaily jsou vhodné a dobré.

Přidejte zvukový soubor tak, že ho přetáhnete do projektu.

Přidejte Zdroj zvuku do hierarchie. V takovém případě nenastavíte zvukový klip přímo na Zdroj zvuku.

Přidejte skript. ButtonEvent Název ponechte jako .

Skript vypadá takto:

using UnityEngine;

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

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

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

AudioSource Přemýšlejte o tom jako o třídě pro ovládání zvuku, stejně jako předchozí tipy.

AudioClip je třída, která ukládá zvuková data. Zde můžete nastavit zvukové soubory.

AudioSource.PlayOneShot Pokud jej předáte jako argument metodě, můžete přehrávat zvuková AudioClip data. Zvuk přehrávaný touto metodou je řízen nezávisle. Pokud tuto metodu zavoláte znovu, bude přehrána jako nový hlas odděleně od předchozího. Proto je možné zvuk přehrávat znovu při každém volání této metody.

Připojte skript k EventSystem.

Pro "Zdroj zvuku" nastavte "Zdroj zvuku" přidaný do hierarchie.

Pro "Zvukový klip" nastavte zvukový soubor z projektu.

Nakonec nastavte metodu na událost kliknutí tlačítka.

Spusťte hru a klikněte na tlačítko. Myslím, že zvukové efekty budou hrát. Pokud na tlačítko znovu klepnete během přehrávání, přehraje se nový zvuk, aniž by předchozí zvuk zmizel.

AudioClip Tímto způsobem je nyní možné přehrávat stejný zvuk nad sebou přehráváním zvuku přes . To umožňuje hru hrát, aniž by předchozí zvuk nepřirozeně zmizel.

Nevýhody při přehrávání pomocí AudioClipu

AudioClip Byl jsem schopen přehrávat zvuk na sobě tím, že jsem ho přehrával pomocí , ale naopak dochází k následujícím nevýhodám.

Zvuk se stává hlučným

Jak můžete vidět, pokud kliknete na tlačítko nepřetržitě, zvuky se překrývají a harmonie, která se hraje, se stává hlasitější a hlasitější. Chcete-li například přehrát zvukový efekt, když ve hře dojde k útoku, Pokud dojde k více zásahům současně bez přijetí jakýchkoli opatření, mohou být přehrávány při abnormální hlasitosti.