Reproduzir, pausar, parar e repetir música de fundo
Ambiente de verificação
- Windows
-
- Janelas 11
- Unity Editor
-
- 2021.3.3f1
- Pacote do sistema de entrada
-
- 1.3.0
Pré-requisitos para esta dica
As configurações a seguir foram feitas com antecedência como premissa para a descrição desta dica.
Sobre o material incluído na amostra
BGM é emprestado do seguinte site.
Sobre arquivos de áudio
Os seguintes formatos de arquivo de áudio podem ser reproduzidos com os recursos padrão do Unity: Por favor, prepare-o com antecedência, pois ele será usado nessas dicas.
- OggVorbis (.ogg)
- MPEG camada 3 (.mp3)
Para obter mais informações, consulte a documentação oficial do Unity.
Sobre a reprodução de BGM
Existem várias maneiras de reproduzir música de fundo, mas aqui queremos explicar como reproduzi-la de forma simples ao usar os recursos padrão.
O conteúdo é organizar um botão e reproduzir, pausar e parar clicando no botão. Em um jogo real, você pode implementar o mesmo processo além dos botões.
Primeiro, coloque um botão para reproduzir BGM como mostrado na figura.
Adicione o arquivo de áudio preparado soltando-o em seu projeto.
Em seguida, adicione "Fonte de áudio" à hierarquia.
Quando você seleciona a fonte de áudio que você criou, o componente Fonte de áudio tem um clipe de áudio, no qual você solta um arquivo de áudio do seu projeto para configurá-lo.
By the way, se você começar o jogo como ele é, o BGM que você definir vai jogar de repente. Isso ocorre porque a opção "Jogar no início do jogo" está marcada. Se você quiser jogá-lo imediatamente no início da cena, não há problema como está, mas desta vez ele não será reproduzido imediatamente, então deixe esta verificação desmarcada.
Em seguida, crie um script. MusicPlayer
Deixe o nome como .
O script tem a seguinte aparência:
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
será definido posteriormente pelo editor. Este AudioSource é aquele com o arquivo de áudio que você acabou de inserir.
AudioSource
, e métodos, para que você possa reproduzir, pausar e Play
Pause
Stop
parar, respectivamente.
Você pode anexar o script à fonte de áudio, mas, nesse caso, você o anexará ao EventSystem. Verifique se o script está preenchido com a fonte de áudio criada anteriormente.
Agora atribua cada método ao evento click dos três botões.
Após a configuração, execute o jogo e veja se a música de fundo é reproduzida.
Reproduzir, pausar e parar são termos comumente usados, então você não precisa escrevê-los em detalhes, mas acho que eles funcionam da seguinte maneira.
- Quando você clica no botão play, a música de fundo é reproduzida apenas uma vez e tocada até o final.
- Durante a reprodução, clique no botão de pausa para interromper a reprodução do som
- Quando você clica no botão de reprodução enquanto pausado, o som é reproduzido a partir da posição parada.
- Clique no botão parar durante a reprodução para interromper a reprodução do som
- Clique no botão de reprodução enquanto estiver parado para jogar desde o início
- Clicar no botão parar durante a pausa liberará a posição pausada e na próxima vez que você jogar, será desde o início.
- Se você clicar no botão de reprodução durante a reprodução, o som em reprodução no momento será interrompido e reproduzido desde o início.
Reprodução de loop
Ele reproduz música de fundo por padrão e pára automaticamente quando é reproduzido até o final. Se você quiser fazer um loop da música de fundo e continuar reproduzindo, marque "Loop" no componente Fonte de áudio e ele continuará a ser reproduzido repetidamente até que você pressione o botão de parada.
O conteúdo da reprodução do efeito sonoro é o mesmo
Se você já viu as dicas sobre o lado do efeito sonoro, deve ter notado que o efeito sonoro e a música de fundo podem ser reproduzidos com as mesmas configurações. Dependendo da estrutura do jogo, o processamento de efeitos sonoros e música de fundo pode ser separado, mas Unity permite que você jogue ambos com o mesmo processamento.
Sobre o fenômeno de que a música de fundo pausa quando a janela é desativada
Por padrão, quando outras janelas estão ativas e a tela do jogo é desativada, o jogo em si é pausado. Junto com isso, a reprodução da música de fundo também está suspensa.
Para evitar isso, você pode configurá-lo para ser executado em segundo plano nas configurações do projeto para que a música de fundo não seja interrompida.