Reproduzir, pausar ou parar um único efeito sonoro

Página atualizada :
Data de criação de página :

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

Os efeitos sonoros são emprestados dos seguintes sites.

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.

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

Para obter mais informações, consulte a documentação oficial do Unity.

Sobre a reprodução de efeitos sonoros

Existem várias maneiras de reproduzir efeitos sonoros, mas aqui queremos orientá-lo através de uma maneira simples de reproduzi-los enquanto usa 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 o efeito sonoro como mostrado na figura.

Adicione o arquivo de som 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 efeito sonoro que você definir vai jogar de repente. Isso ocorre porque a opção "Jogar no início do jogo" está marcada. É improvável que o efeito sonoro seja reproduzido de repente, então deixe essa verificação desmarcada.

Em seguida, crie um script. SoundPlayer Deixe o nome como .

O script tem a seguinte aparência:

using UnityEngine;

public class SoundPlayer : 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 efeito de som definido anteriormente.

AudioSource, e métodos, para que você possa reproduzir, pausar e PlayPauseStop 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.

Quando terminar, execute o jogo e veja se os efeitos sonoros são reproduzidos.

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, o efeito sonoro é reproduzido apenas uma vez e reproduzido 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.

Desvantagens de usar o AudioSource sozinho

Há uma solução alternativa, mas esta Dicas tem as seguintes desvantagens. Abordaremos essas soluções em outra dica.

Não é possível reproduzir dois ou mais do mesmo som ao mesmo tempo

Você pode verificar isso pressionando o botão de reprodução várias vezes, mas o som anterior desaparece quando você reproduz um novo som. Falando em desvantagens, é uma desvantagem, mas pelo contrário, se você tocar o mesmo som um em cima do outro, o volume será muito alto, então é uma vantagem no sentido de que o impede. No entanto, o som anterior ainda desaparecerá, portanto, dependendo do tipo de som, será antinatural.

Você deve ter tantos AudioSources quantos tipos de sons para reproduzir

Como apenas um clipe de áudio pode ser definido em uma AudioSource, você precisa fornecer uma AudioSource, pois você tem quantos sons quiser. Você também pode preparar apenas uma fonte de áudio e alterar o clipe de áudio ao reproduzir um som diferente. Não é natural porque o som anterior desaparece devido ao problema de que dois ou mais do mesmo som escrito antes não podem ser tocados ao mesmo tempo.