Riprodurre, mettere in pausa, interrompere e riprodurre in loop la musica di sottofondo

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

BGM è preso in prestito dal seguente sito.

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.

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

Per ulteriori informazioni, consulta la documentazione ufficiale di Unity.

Informazioni sulla riproduzione BGM

Esistono diversi modi per riprodurre musica di sottofondo, ma qui vogliamo spiegare come riprodurla in modo semplice durante l'utilizzo delle funzionalità standard.

Il contenuto è quello di disporre un pulsante e riprodurre, mettere in pausa e interrompere facendo clic sul pulsante. In un gioco reale, puoi implementare lo stesso processo diverso dai pulsanti.

Innanzitutto, posizionate un pulsante per riprodurre BGM come mostrato nella figura.

Aggiungi il file audio preparato rilasciandolo nel tuo progetto.

Quindi, aggiungi "Sorgente audio" alla gerarchia.

Quando si seleziona la sorgente audio creata, il componente Sorgente audio dispone di una clip audio, in cui è possibile rilasciare un file audio dal progetto per configurarlo.

A proposito, se inizi il gioco così com'è, il BGM che hai impostato verrà improvvisamente riprodotto. Questo perché "Gioca all'inizio del gioco" è selezionato. Se vuoi riprodurlo immediatamente all'inizio della scena, non c'è alcun problema così com'è, ma questa volta non verrà riprodotto immediatamente, quindi lascia questo controllo deselezionato.

Quindi, creare uno script. MusicPlayer Lasciare il nome come .

Lo script è simile al seguente:

using UnityEngine;

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

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

  public void OnClickPause()
  {
    // オーディオを一時停止します
    AudioSource.Pause();
  }

  public void OnClickStop()
  {
    // オーディオを停止します
    AudioSource.Stop();
  }
}

AudioSource verrà impostato in seguito dall'editor. Questo AudioSource è quello con il file audio appena inserito.

AudioSource, e metodi, in modo da poter riprodurre, mettere in pausa e PlayPauseStop interrompere rispettivamente.

È possibile collegare lo script all'origine audio, ma in questo caso lo si collegherà all'EventSystem. Assicurati che lo script sia popolato con l'origine audio creata in precedenza.

Ora assegna ciascun metodo all'evento click dei tre pulsanti.

Dopo la configurazione, esegui il gioco e verifica se viene riprodotta la musica di sottofondo.

Play, pausa e stop sono termini comunemente usati, quindi non è necessario scriverli in dettaglio, ma penso che funzionino come segue.

  • Quando si fa clic sul pulsante di riproduzione, la musica di sottofondo viene riprodotta una sola volta e riprodotta fino alla fine.
  • Durante la riproduzione, fai clic sul pulsante di pausa per interrompere la riproduzione del suono
  • Quando si fa clic sul pulsante di riproduzione mentre si è in pausa, il suono viene riprodotto dalla posizione di arresto.
  • Fare clic sul pulsante di arresto durante la riproduzione per interrompere la riproduzione del suono
  • Fai clic sul pulsante di riproduzione mentre sei fermato per giocare dall'inizio
  • Facendo clic sul pulsante di arresto durante la pausa verrà rilasciata la posizione in pausa e la prossima volta che si gioca, sarà dall'inizio.
  • Se si fa clic sul pulsante di riproduzione durante la riproduzione, il suono attualmente in riproduzione viene interrotto e riprodotto dall'inizio.

Riproduzione in loop

Riproduce musica di sottofondo per impostazione predefinita e si interrompe automaticamente quando viene riprodotta fino alla fine. Se si desidera riprodurre in loop la musica di sottofondo e continuare la riproduzione, selezionare "Loop" nel componente Sorgente audio e continuerà a suonare ripetutamente fino a quando non si preme il pulsante di arresto.

Il contenuto della riproduzione dell'effetto sonoro è lo stesso

Se hai già visto i suggerimenti sul lato degli effetti sonori, potresti aver notato che l'effetto sonoro e la musica di sottofondo possono essere riprodotti con le stesse impostazioni. A seconda della struttura di gioco, l'elaborazione degli effetti sonori e della musica di sottofondo può essere separata, ma Unity consente di giocare entrambi con la stessa elaborazione.

Informazioni sul fenomeno che la musica di sottofondo si interrompe quando la finestra è disattivata

Per impostazione predefinita, quando altre finestre sono attive e la schermata di gioco è disattivata, il gioco stesso viene messo in pausa. Insieme a questo, anche la riproduzione della musica di sottofondo è sospesa.

Per evitare ciò, è possibile impostarlo per l'esecuzione in background nelle impostazioni del progetto in modo che la musica di sottofondo non venga interrotta.