Reproduzir, pausar ou parar um único efeito sonoro
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 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.
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.