Audio naUnity

Os componentes de Audio

        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

  1. Importe um .WAV ou .OGG para a pasta Assets/Audio.
  2. Selecione o áudio e configure:
    • Load Type: Decompress on Load (para sons curtos) ou Streaming (para música longa)
    • Compression Format: Vorbis (para compactar mantendo qualidade)
    • Quality: entre 0 e 1 (ex: 0.5 é qualidade média)

Projeto de Exemplo

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.

Interface gráfica do usuário

O conteúdo gerado por IA pode estar incorreto.

 

Abra a cena Menu e adicione os seguintes GameObjects:

  1. Botão direito na Hierarchy 🡪 UI 🡪 Canvas. Faça os seguintes ajustes no Objeto Canvas:
    1. Render mode : Screen Space – Camera
    2. Render Camera : Main Camera(Câmera principal do jogo)
    3. Marque a caixa: Vertex Color
  2. Adicione um Panel dentro do Objeto Canvas. Clique com o botão direito no objeto Canvas 🡪 UI 🡪 Panel.
    1. Renomeie o Panel para Opções.
  3. Adicione dois Sliders dentro do Panel. Clique com o Botão direito no Panel chamado Opções 🡪 UI 🡪 Slider.
    1. Renomeie os Sliders como : vMusica e vEfeitos.
    2. 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.
    3. No item Scale dos dois Slider, altera para : x= 4 e y=4
  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:

Interface gráfica do usuário, Aplicativo

O conteúdo gerado por IA pode estar incorreto.

 

Crie um Script chamado Opcaos.cs

Abra o Script.

Texto

O conteúdo gerado por IA pode estar incorreto.

 

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).

Texto

O conteúdo gerado por IA pode estar incorreto.

 

Adicione 7 variáveis:

Texto

O conteúdo gerado por IA pode estar incorreto.

 

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.

Tela de computador com texto preto sobre fundo branco

O conteúdo gerado por IA pode estar incorreto.

 

Crie uma função chamada, VolumeMusica()

Chamado quando o jogador move o slider da música.

Texto

O conteúdo gerado por IA pode estar incorreto.

 

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.

Tela de computador com texto preto sobre fundo branco

O conteúdo gerado por IA pode estar incorreto.

 

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.

Texto

O conteúdo gerado por IA pode estar incorreto.

 

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:

Texto

O conteúdo gerado por IA pode estar incorreto.

 

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).

Interface gráfica do usuário

O conteúdo gerado por IA pode estar incorreto.

 

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.

Interface gráfica do usuário, Site

O conteúdo gerado por IA pode estar incorreto.

 

Configurando os Slider e Button.

  • Selecione o gameObject vMusica.
  • No item: On Value Changed      Uma imagem contendo Interface gráfica do usuário

O conteúdo gerado por IA pode estar incorreto.   clique no ícone de +.
  • Arraste o Panel opções (onde está anexado nosso script Opcoes.cs) ate o item None(object).
    Interface gráfica do usuário, Texto, Aplicativo

O conteúdo gerado por IA pode estar incorreto.
    🡪Interface gráfica do usuário, Texto, Aplicativo

O conteúdo gerado por IA pode estar incorreto.
  • o item, No Function, selecione a opção, opcaoes 🡪 VolumeMusica().
    Interface gráfica do usuário, Aplicativo

O conteúdo gerado por IA pode estar incorreto.

Interface gráfica do usuário, Site

O conteúdo gerado por IA pode estar incorreto.

 

Repita o processo, mas para o Slider vEfeitos

Não esqueça Também de configurar o Botão.
Interface gráfica do usuário, Aplicativo

O conteúdo gerado por IA pode estar incorreto.

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:

Texto

O conteúdo gerado por IA pode estar incorreto.

 

Onde:

Texto

O conteúdo gerado por IA pode estar incorreto.

 

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”.

Adapte de acordo com suas Necessidades.