Tutorial: Criando o controle de volume no Unity

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!

Filipe Leal

Bacharel em Ciência da Computação pela UDESC e certificado como Microsoft Specialist. Atualmente trabalha como programador na Basecorp Learning Systems. Reside em Edmonton - Canadá. Faixa preta com 1o. grau em Pa-kua, tem preferência por jogos de Ação/Aventura, RPG, Luta e Party Games. Seu jogo favorito é The Legend of Zelda - Ocarina of Time.

2 thoughts on “Tutorial: Criando o controle de volume no Unity

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *