O áudio em Unity é uma das ferramentas mais importantes para imersão em jogos digitais. Ele transmite emoções, alerta o jogador sobre eventos e complementa ações visuais e mecânicas. O Unity oferece um sistema simples e robusto de manipulação de som através de componentes e scripts em C#.
Os dois principais componentes de áudio no Unity são:
🎙️Audio Listener: funciona como os “ouvidos” do jogo. Ele “ouve” os sons presentes na cena e é geralmente colocado na câmera principal.
🔊 Audio Source: funciona como uma “caixa de som” que emite um som. Pode ser colocado em qualquer GameObject, como um inimigo, uma moeda ou um botão.
Além desses, temos os clipes de áudio (AudioClip), que são os arquivos de som importados (como .mp3, .wav, .ogg).
Analogia com o Mundo Real
Imagine que você está em um parque.
Você (como jogador) é o Audio Listener: seus ouvidos estão escutando.
Um passarinho cantando numa árvore é uma Audio Source: ele emite som em um ponto específico do espaço.
A distância entre você e o pássaro influencia o volume que você escuta — o mesmo ocorre com sons 3D no Unity.
🎮 Analogia com Jogos Digitais
Num jogo como Super Mario, quando o personagem pula ou coleta uma moeda, um som é reproduzido.
A moeda contém um Audio Source com o som da coleta.
A câmera que segue o jogador contém o Audio Listener.
Quando Mario toca a moeda, o som da coleta é tocado por script.
🧩 Funções C# para Áudio em Unity 🎵
Na Unity, usamos o componente AudioSource junto com scripts em C# para controlar os sons. Abaixo, listamos as principais funções/métodos disponíveis e como usá-las.
🔊 Play()
▶️ Toca o som associado ao AudioSource uma vez.
📘 Exemplo: audioSource.Play();
🧠 Analogia real: apertar o botão “play” em um rádio.
🎮 Nos jogos: usada para sons rápidos, como pulo, moeda, ataque.
🔁 PlayOneShot(AudioClip clip)
▶️ Toca um som rapidamente sem interromper outro som que já está tocando.
📘 Exemplo: audioSource.PlayOneShot(somMoeda);
🧠 Analogia real: como tocar um “efeito sonoro” enquanto a música continua no fundo.
🎮 Nos jogos: ótimo para efeitos sonoros simultâneos (ex: pegar moeda sem parar a música).
🛑 Stop()
⏹️ Para imediatamente o som em execução.
📘 Exemplo: audioSource.Stop();
🧠 Analogia real: apertar “stop” no rádio.
🎮 Nos jogos: quando o jogador pausa o jogo ou sai da cena.
⏸️ Pause()
⏸️ Pausa a música sem reiniciar.
📘 Exemplo: audioSource.Pause();
🧠 Analogia real: pausa um vídeo no YouTube.
🎮 Nos jogos: ideal para pausar músicas quando o jogador abre um menu.
▶️ UnPause()
🔁 Continua o som pausado.
📘 Exemplo: audioSource.UnPause();
🧠 Analogia real: continuar de onde parou.
🎮 Nos jogos: retoma a música ao fechar o menu ou voltar ao jogo.
🎚️ volume
🎛️ Controla o volume do áudio (0.0 até 1.0).
📘 Exemplo: audioSource.volume = 0.5f;
🧠 Analogia real: girar o botão de volume.
🎮 Nos jogos: usar sliders de volume no menu de opções.
🔂 loop
🔄 Define se o som deve repetir automaticamente.
📘 Exemplo: audioSource.loop = true;
audioSource.Play();
🧠 Analogia real: modo “repetir” no celular.
🎮 Nos jogos: usar para músicas de fundo que tocam indefinidamente.
🎧 Tipos de Arquivos de Áudio Suportados na Unity
Formato
Suporte
Características principais
.WAV
✅ Total
Áudio sem compressão (alta qualidade). Ideal para efeitos curtos como passos, tiros etc.
.MP3
✅ Total
Formato comprimido com perdas. Ótimo para músicas de fundo e sons mais longos.
.OGG
✅ Total
Compactado sem pagar royalties. Boa qualidade com menor tamanho que .mp3.
.AIFF
✅ Total
Semelhante ao .WAV, muito usado em sistemas Apple.
.MOD
✅ Parcial
Formato de música de jogos antigos (tracker). Pouco usado hoje, mas ainda compatível.
.XM, .IT, .S3M
✅ Parcial
Outros formatos antigos de música com suporte básico em Unity.
🎯 Dica prática:
Use .WAV para sons curtos e precisos (efeitos, interações).
Use .OGG para músicas ou áudios longos (menu, fases).
Evite .MP3 se o jogo for para plataformas que exigem licenças específicas.
⚙️ Compressão e Configuração
No Unity, ao importar um áudio, você pode configurar:
Compressão (PCM, ADPCM, Vorbis)
Modo de carregamento (Decompress on Load, Compressed in Memory, Streaming)
Mono ou Stereo
Essas opções ajudam a otimizar o desempenho em diferentes plataformas (Android, WebGL, PC).
🔊 Exemplo de importação
Importe um .WAV ou .OGG para a pasta Assets/Audio.
Selecione o áudio e configure:
Load Type: Decompress on Load (para sons curtos) ou Streaming (para música longa)
Para exemplificar esse projeto criei uma cena com o nome de Menu e renomeie a SampleScene como game. Adicionei dois arquivos de áudio ao meu projeto, uma para musica e outro para efeitos.
Abra a cena Menu e adicione os seguintes GameObjects:
Botão direito na Hierarchy 🡪 UI 🡪 Canvas. Faça os seguintes ajustes no Objeto Canvas:
Render mode : Screen Space – Camera
Render Camera : Main Camera(Câmera principal do jogo)
Marque a caixa: Vertex Color
Adicione um Panel dentro do Objeto Canvas. Clique com o botão direito no objeto Canvas 🡪 UI 🡪 Panel.
Renomeie o Panel para Opções.
Adicione dois Sliders dentro do Panel. Clique com o Botão direito no Panel chamado Opções 🡪 UI 🡪 Slider.
Renomeie os Sliders como : vMusica e vEfeitos.
Altere as posições para que um fique paralelo ao outro. Exemplo: Modifique a posição Y do vMusica para 50 e do vEfeitos para -50.
No item Scale dos dois Slider, altera para : x= 4 e y=4
Adicione um Button. Clique com o botão direito no Panel chamado Opções 🡪UI🡪Button. Esse button terá apenas a função de salvar as opções e carregar a próxima cena, você pode adaptar para o seu projeto, como voltar para o menu principal etc.
A imagem abaixo ilustra como está a cena até o momento:
Crie um Script chamado Opcaos.cs
Abra o Script.
O script funcionará da seguinte forma:
Irá recuperar os valores dos sliders (value), e salvar em playerPrefs (se quiser saber mais link: ).
Os PlayerPrefs servirão para armazenar os valores de volume e quando iniciarmos nosso jogo, esses valores serão recuperados e atribuídos ao volume do jogo.
Nesse script irei “rodar” amostra de som, para que ao ajustar o slider, possamos ouvir o ajuste em tempo real.
Vamos lá ! ( o código completo no final).
Para esse script vamos utilizar 3 bibliotecas:
using UnityEngine; Importa a biblioteca principal da Unity para acessar funcionalidades como áudio, sliders e gameObjects.
using UnityEngine.UI; permite usar elementos da interface do usuário, como Slider.
using UnityEngine.SceneManagement; permite trocar de cenas no jogo (como ir do menu para o jogo principal).
Adicione 7 variáveis:
Onde os tipos são:
Slider: é o controle deslizante da interface (como o volume do celular).
AudioSource: é o “auto-falante” que toca o som no jogo.
AudioClip: é o próprio arquivo de som (como um .mp3 ou .wav).
float vMusica, vEfeitos; guardam os valores de volume da música e dos efeitos para facilitar o uso em todo o código.
No Unity: esses campos são visíveis no Inspector e você conecta os objetos da cena neles.
Vamos configurar a função start. A função Update pode ser apagada.
Crie uma função chamada, VolumeMusica()
Chamado quando o jogador move o slider da música.
Explicando:
Atualiza o valor interno.
Muda o volume da música.
Salva o novo volume com PlayerPrefs.
Crie uma função chamada, VolumeEfeitos()
Chamado quando o jogador move o slider dos efeitos.
Explicando:
Atualiza o volume dos efeitos.
Toca rapidamente um som de teste (PlayOneShot) sem cortar o som que estiver tocando.
Salva o novo volume.
Na prática: o jogador escuta um efeito quando ajusta o volume, para saber se ficou bom.
Crie uma função chamada, Botão()
Chamado ao clicar no botão de iniciar o jogo.
Troca para a cena do jogo e salva
LoadScene(“Game”): carrega a nova cena (precisa estar adicionada no Build Settings).
PlayerPrefs.Save(): garante que tudo que foi ajustado pelo jogador seja salvo no dispositivo.
Analogia com o Mundo Real
Slider → botão de volume do rádio ou celular.
AudioClip → música ou efeito de toque.
PlayerPrefs → caderno de anotações onde o jogo escreve e lê as preferências do jogador.
AudioSource → a caixa de som embutida em cada objeto do jogo.
Script Completo:
Resumo
Elemento do Script
Função
Slider
Controla o volume visivelmente na interface
AudioSource
Componente que reproduz o som (música ou efeito)
AudioClip
O próprio arquivo de som (como .wav ou .mp3)
PlayerPrefs.GetFloat
Lê um valor salvo (volume, neste caso)
PlayerPrefs.SetFloat
Salva o valor de volume definido pelo jogador
audioSource.volume
Define o volume do som (0 a 1)
audioSource.Play()
Inicia a reprodução do som contínuo
audioSource.PlayOneShot()
Toca um efeito sonoro rapidamente, sem parar os outros sons
SceneManager.LoadScene()
Muda de cena
Configurando os Objetos
No Unity, selecione o GameObject Canvas.
Adicione o Componente chamado Audio Source.
Arraste o arquivo que será sua música o item AudioClip, dentro do Audio Source.
Habilite os itens Play On Awake (para iniciar, quando o jogo começar) e Loop (irá repetir continuamente a música).
No Unity, selecione o GameObject Panel Opçoes, dentro do canvas.
Adicione o Componente chamado Audio Source.
habilite os itens Play On Awake (para iniciar, quando o jogo começar) e Loop (irá repetir continuamente a música).
Não esqueça de anexar o script Opcao.cs no gameObject Panel 🡪 Opções.
Configurando o Script:
Arraste os Sliders, vMusica e vEfeitos para os itens slider musica e slider efeitos no script.
No item áudio, arraste o Canvas (que tem um componente Audio Source) para o item Audio Musica.
No item Audio, arraste o Panel Opções para o item Audio Efeitos.
Em áudio Clip, arraste o arquivo de efeito sonoro.
Configurando os Slider e Button.
Selecione o gameObject vMusica.
No item: On Value Changed clique no ícone de +.
Arraste o Panel opções (onde está anexado nosso script Opcoes.cs) ate o item None(object). 🡪
o item, No Function, selecione a opção, opcaoes 🡪 VolumeMusica().
Repita o processo, mas para o Slider vEfeitos
Não esqueça Também de configurar o Botão.
Exemplo de como adicionar as opções salvas em seu jogo.
Nesse exemplo irei apenas explicar como adicionar a configuração do volume salvo, no jogo. Os scripts serão apenas ilustrativos, sem as funções do player ou gameManager.
Lembrando, para que exista som em seu jogo, é necessário adicionar o componente Audio Source em seus gameObejcts.
Vou “concentrar” os ajustes do volume no GameManager.
Veja como fica o script, apenas para configurar o som:
Onde:
Referência a duas fontes de áudio
somMusica: objeto que toca a música de fundo.
somEfeitos: objeto que toca os efeitos sonoros (como cliques, passos etc).
Esses AudioSource precisam ser arrastados para o script pelo Inspector no Unity.
Define o volume da música
Lê o valor salvo no PlayerPrefs com a chave “volMusica”. Se não houver nada salvo, usa o valor 0.5 (50%).
Define o volume dos efeitos sonoros
Mesma lógica do anterior, mas para os efeitos. Usa a chave “volEfeitos”.