Riproduci più suoni contemporaneamente

Pagina aggiornata :
Data di creazione della pagina :

Ambiente di verifica

Finestre
  • Windows 11
Unity Editor
  • 2021.3.3f1
Pacchetto del sistema di input
  • 1.3.0

Prerequisiti per questo suggerimento

Le seguenti impostazioni sono state effettuate in anticipo come premessa per la descrizione di questo suggerimento.

Informazioni sul materiale incluso nell'esempio

Gli effetti sonori sono presi in prestito dai seguenti siti.

Informazioni sui file audio

I seguenti formati di file audio possono essere riprodotti con le funzionalità standard di Unity: Si prega di prepararlo in anticipo perché verrà utilizzato in questi suggerimenti.

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

Per ulteriori informazioni, consulta la documentazione ufficiale di Unity.

Informazioni sulla riproduzione audio simultanea multipla

Nei suggerimenti precedenti, abbiamo usato AudioSource per riprodurre un file audio, ma quando abbiamo provato a creare un singolo suono e più suoni, il suono precedente è scomparso. Ad esempio, se ci sono due esplosioni in un gioco, è innaturale che il primo effetto sonoro scompaia quando la seconda esplosione genera un effetto sonoro. Questa sezione descrive come riprodurre lo stesso suono più volte uno sopra l'altro.

Passaggi per riprodurre audio contemporaneamente

Qui, spiegherò dal punto in cui ho creato un nuovo progetto, ma se conosci Unity in una certa misura, puoi ritagliare solo le parti rilevanti e memorizzarle.

Questa volta, l'effetto sonoro verrà riprodotto ogni volta che fai clic sul pulsante. Creare l'interfaccia utente come illustrato. I dettagli sono appropriati e buoni.

Aggiungi un file audio rilasciandolo nel progetto.

Aggiungere sorgente audio alla gerarchia. In questo caso, non imposterai la clip audio direttamente su AudioSource.

Aggiungere uno script. ButtonEvent Lasciare il nome come .

Lo script è simile al seguente:

using UnityEngine;

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

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

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

AudioSource Pensalo come una classe per controllare l'audio, proprio come i suggerimenti precedenti.

AudioClip è una classe che archivia i dati audio. Puoi impostare i file audio qui.

AudioSource.PlayOneShot Se lo si passa come argomento al metodo, è possibile riprodurre i AudioClip dati audio. L'audio riprodotto con questo metodo è controllato in modo indipendente. Se si richiama nuovamente questo metodo, verrà riprodotto come una nuova voce separatamente dalla precedente. Pertanto, è possibile riprodurre nuovamente il suono ogni volta che viene chiamato questo metodo.

Allegare lo script a EventSystem.

Per "Sorgente audio", imposta la "Sorgente audio" aggiunta alla gerarchia.

Per "Clip audio", imposta un file audio dal progetto.

Infine, impostare il metodo sull'evento click del pulsante.

Esegui il gioco e fai clic sul pulsante. Penso che gli effetti sonori suoneranno. Inoltre, se si fa nuovamente clic sul pulsante durante la riproduzione, il nuovo suono verrà riprodotto senza che il suono precedente scompaia.

AudioClip In questo modo, è ora possibile riprodurre lo stesso suono uno sopra l'altro riproducendo l'audio tramite . Ciò consente al gioco di giocare senza che il suono precedente scompaia in modo innaturale.

Svantaggi durante la riproduzione con AudioClip

AudioClip Sono stato in grado di riprodurre l'audio uno sopra l'altro riproducendolo usando , ma al contrario, si verificano i seguenti svantaggi.

Il suono diventa rumoroso

Come puoi vedere se fai clic continuamente sul pulsante, i suoni si sovrappongono e l'armonica che viene suonata diventa sempre più forte. Ad esempio, se si desidera riprodurre un effetto sonoro quando un attacco colpisce in un gioco, Se si verificano più colpi contemporaneamente senza prendere alcuna misura, possono essere riprodotti a un volume anormale.