Hoje vamos aprender como criar o controle de volume no Unity!
Vamos lá!?
Controle de volume
Para criarmos o controle de volume, vamos precisar de um Slider , que representará o controle visualmente na tela, e também de um Audio Mixer, que vai gerenciar o áudio do jogo.
Depois disso, iremos criar um script que atualize o valor do volume no Audio Mixer toda vez que o Slider for alterado.
E fim!! Na teoria está tudo pronto! Vamos colocar a mão na massa então?!
Passo a Passo
Primeiro crie o seu projeto ou utilize um existente.
Adicione o Slider a cena e configure-o para que o valor máximo seja 0 e o mínimo -80. No meu caso tive que ajustar o posicionamento do slider no meu Canvas.
O próximo passo é criar um Audio Mixer. Para isso vá em Create -> Audio Mixer no painel Project.
Abra o objeto criado, clique em Master. No painel Inspector, clique com o botão direito em Volume e selecione a opção Expose ‘Volume (of Master)’ to script. Note também que os valores do volume vão de 0 a -80. Por esse motivo é que devemos utilizar especificamente estes valores no Slider.
Note que isso vai adicionar a propriedade do volume na lista de Exposed Parameters. Porém, irá adicioná-lo com um nome estranho. Precisamos renomeá-lo para “volume”.
Agora adicione um script no Canvas. Eu o chamei de SettingsCrtrl. É possivel usar esse script para gerenciar todas as configurações do jogo, bem como volume, resolução, etc.
No script, vamos adicionar uma referência para o AudioMixer e outra para o Slider.
No início do arquivo temos que adicionar estes dois usings:
using UnityEngine.Audio;
using UnityEngine.UI;
Depois, adicione estes dois objetos públicos para referenciar o Slider e o AudioMixer:
public AudioMixer mixer;
public Slider slider;
O próximo passo é ajustar o volume para o valor do Slider, quando o jogo iniciar. Dentro do método Start coloque:
mixer.SetFloat ("volume", slider.value);
Por fim, vamos criar uma função pública que será chamada toda vez que o valor do slider mudar. A função vai receber como parâmetro um float com o novo valor do slider. Adicione a função a seguir ao script:
public void AjustaVolume(float volume){
mixer.SetFloat ("volume", volume);
}
Nosso script está pronto. Você pode remover a função Update, já que não a usaremos. E agora, faltam apenas 2 passos para que tudo funcione!
Primeiro, adicione a referência do mixer e do slider no script.
Depois selecione o Slider e adicione um item no campo On Value Changed. Adicione o Canvas no valor objeto e no campo No Function selecione SettingsCtrl -> AjustaVolume .
É isso aí! Execute o jogo e veja que, quando você mexe no slider, o valor no audio mixer muda! Ainda, você pode adicionar uma música e ver o slider funcionando.
Abraços e até mais!
2 thoughts on “Tutorial: Criando o controle de volume no Unity”