5
respostas

[Projeto] É possível mudar a música no meio do Jogo?

Tem uma maneira de mudar a música para situações mais específicas? Por exemplo tocar uma música diferente quando você está sozinho, quando tem zumbis te atacando ou até quando você enfrenta um boss Eu não sei se isso já está no curso mas gostaria de utilizar no meu projeto.

5 respostas

Olá, João! Entendo que você quer tornar seu jogo mais dinâmico com diferentes músicas para situações específicas. Sim, é possível fazer isso!

A melhor maneira de fazer isso é através de condicionais no seu script de controle de áudio. Você pode criar diferentes variáveis para cada música que você quer tocar e então, baseado no estado do jogo, você pode escolher qual música tocar.

Por exemplo, você pode ter as seguintes variáveis no seu script de controle de áudio:

public AudioClip musicaNormal;
public AudioClip musicaZumbis;
public AudioClip musicaBoss;

Você pode então atribuir diferentes músicas para cada uma dessas variáveis no editor da Unity.

Depois, você pode criar uma função para trocar a música baseado no estado do jogo. Algo como:

public void TrocarMusica(string estado)
{
    if (estado == "Normal")
    {
        ControlaAudio.instancia.clip = musicaNormal;
    }
    else if (estado == "Zumbis")
    {
        ControlaAudio.instancia.clip = musicaZumbis;
    }
    else if (estado == "Boss")
    {
        ControlaAudio.instancia.clip = musicaBoss;
    }
    
    ControlaAudio.instancia.Play();
}

Agora, você só precisa chamar essa função quando o estado do jogo mudar. Por exemplo, quando um boss aparecer, você pode chamar ControlaAudio.instancia.TrocarMusica("Boss");.

Lembre-se que essa é apenas uma sugestão e pode ser que você precise ajustar o código para se adequar ao seu projeto. Espero ter ajudado e bons estudos!

obrigado pela ajuda mas como eu conseguiria trocar a música quando zumbis aparecem? Eu teria que chamar o código controla inimigo? E como o código pode saber a música passiva é só eu colocar a instancia = normal? Eu já consegui inserir a música nas variáveis e agradeço a ajuda até agora

Isso! Você chama ControlaAudio.instancia.TrocarMusica("Zumbis"); por exemplo faria a troca de música e quando quiser voltar ControlaAudio.instancia.TrocarMusica("Normal");

Isso é uma boa intro mas se quiser fazer algo mais complexo tipo mesclar as duas músicas pra não trocar tão abrupto teria que fazer mais código, mas espero que esse inicio já ajude nos estudos.

Bons estudos!

Então eu teria que programar uma certa distância em que o zumbi avista o jogador por exemplo: private bool avistar; avistar = false if (distancia < 250) { avistar = true

Vector3 direcao = Jogador.transform.position - transform.position;

Quaternion novaRotacao = Quaternion.LookRotation(direcao); GetComponent().MoveRotation(novaRotacao); aí pegar o componente controla inimigo no controla áudio e dizer: if (avistar = true){ ControlaAudio.instancia.TrocarMusica("Zumbis"); } else if (avistar = false){ ControlaAudio.instancia.TrocarMusica("Normal"); } E colocar ControlaAudio.instancia.TrocarMusica("Normal") no awake seria esse o código?

Examente!