Como faço um som parar de tocar?
3 participantes
Página 1 de 1
Como faço um som parar de tocar?
Estou fazendo uns códigos para o meu personagem 2D emitir sons de passos diferentes de acordo com o tipo de terreno(ex:grama,concreto...)Ai para emitir o som de acordo com cada terreno,coloquei este código:
Se eu apertar e segurar o D,o som de andar em grama se a tag for grama ira emitir,mesma coisa com a de terra,mas quando o meu personagem 2D anda em um terreno de grama e passa para o terreno de terra imediatamente,continua tocando o son de andar na grama,ele so para se eu soltar o D e apertar novamente...Como faço para quando apertar o D,se for tag grama,ira sair som de andar em grama e os outros sons irao ser parados,entende?tipo,quero saber o ao contrario de:
- Código:
//
if (Physics.Raycast(transform.position, -Vector3.up, out PontoColisao, RaioDeColisão))
{
if (PontoColisao.transform.gameObject.CompareTag("TerrenoDeGrama"))
{
tags = "grama";
}
if (PontoColisao.transform.gameObject.CompareTag("TerrenoDeTerra"))
{
tags = "terra";
}
}
//Andando
Movement();
if (Input.GetKey(KeyCode.D))
{
Tocador.enabled = true;
Direção = "Direita";
GetComponent<Animator>().SetBool("AndandoDireita", true);
if(tags == "grama")
{
Tocador.clip = AndandoEmGrama;
if (!Tocador.isPlaying)
{
Tocador.PlayOneShot(Tocador.clip);
}
}
if (tags == "terra")
{
tags = "terra";
Tocador.clip = AndandoEmTerra;
if (!Tocador.isPlaying)
{
Tocador.PlayOneShot(Tocador.clip);
}
}
}
if (Input.GetKeyUp(KeyCode.D))
{
Direção = "Direita";
GetComponent<Animator>().SetBool("AndandoDireita", false);
Tocador.enabled = false;
}
Se eu apertar e segurar o D,o som de andar em grama se a tag for grama ira emitir,mesma coisa com a de terra,mas quando o meu personagem 2D anda em um terreno de grama e passa para o terreno de terra imediatamente,continua tocando o son de andar na grama,ele so para se eu soltar o D e apertar novamente...Como faço para quando apertar o D,se for tag grama,ira sair som de andar em grama e os outros sons irao ser parados,entende?tipo,quero saber o ao contrario de:
- Código:
Tocador.clip = AndandoEmTerra;
if (!Tocador.isPlaying)
{
Tocador.PlayOneShot(Tocador.clip);
}
Re: Como faço um som parar de tocar?
Basicamente vc precisa de ver se o som atual é diferente do terreno.
- Código:
if(tags == "grama")
{
if (!Tocador.isPlaying || Tocador.clip != AndandoEmGrama)
{
Tocador.clip = AndandoEmGrama;
Tocador.PlayOneShot(Tocador.clip);
}
}
else if (tags == "terra" || Tocador.clip != AndandoEmTerra)
{
tags = "terra";
Tocador.clip = AndandoEmTerra;
if (!Tocador.isPlaying)
{
Tocador.PlayOneShot(Tocador.clip);
}
}
mafipt- MembroAvançado
- PONTOS : 3580
REPUTAÇÃO : 54
Idade : 24
Áreas de atuação : C#, Java, PHP, JS, MySql, Multiplayer, Unity.
Respeito as regras :
Re: Como faço um som parar de tocar?
Deu certo,mas,os áudios ficam tocando um em cima do outro,tipo ando em terra,e depois vou para a grama e ai o de grama toca,mas o terra continua tocando em cima e depois de uns 2 segundos para e só fica o de grama....Sera que o meu audio de andar é muito grande?
Re: Como faço um som parar de tocar?
O tocador é o que? AudioSource?
Coloca Tocador.Stop(); antes do PlayOneShot
Coloca Tocador.Stop(); antes do PlayOneShot
mafipt- MembroAvançado
- PONTOS : 3580
REPUTAÇÃO : 54
Idade : 24
Áreas de atuação : C#, Java, PHP, JS, MySql, Multiplayer, Unity.
Respeito as regras :
Re: Como faço um som parar de tocar?
tipo assim?
- Código:
if (tags == "grama")
{
if (!Tocador.isPlaying || Tocador.clip != AndandoEmGrama)
{
Tocador.clip = AndandoEmGrama;
Tocador.PlayOneShot(Tocador.clip);
}
}
else if (tags == "terra" || Tocador.clip != AndandoEmTerra)
{
tags = "terra";
Tocador.clip = AndandoEmTerra;
if (!Tocador.isPlaying)
{
Tocador.Stop();
Tocador.PlayOneShot(Tocador.clip);
}
}
Re: Como faço um som parar de tocar?
Seria mais assim
- Código:
if (tags == "grama")
{
if (!Tocador.isPlaying || Tocador.clip != AndandoEmGrama)
{
Tocador.Stop();
Tocador.clip = AndandoEmGrama;
Tocador.Play();
}
}
else if (tags == "terra")
{
if (!Tocador.isPlaying || Tocador.clip != AndandoEmTerra)
{
Tocador.Stop();
Tocador.clip = AndandoEmTerra;
Tocador.Play();
}
}
mafipt- MembroAvançado
- PONTOS : 3580
REPUTAÇÃO : 54
Idade : 24
Áreas de atuação : C#, Java, PHP, JS, MySql, Multiplayer, Unity.
Respeito as regras :
Re: Como faço um som parar de tocar?
Nossa cara,vlw,deu certo aqui,certinho!!!
então se eu quiser colocar mais tipos de áudios de andar,como de andar em concreto,asfalto,agua,areia...etc...de varios
é so fazer assim,dar control c control v no que tem no else if e mudar os nomes?:
então se eu quiser colocar mais tipos de áudios de andar,como de andar em concreto,asfalto,agua,areia...etc...de varios
é so fazer assim,dar control c control v no que tem no else if e mudar os nomes?:
- Código:
if (tags == "grama")
{
if (!Tocador.isPlaying || Tocador.clip != AndandoEmGrama)
{
Tocador.Stop();
Tocador.clip = AndandoEmGrama;
Tocador.Play();
}
}
else if (tags == "terra")
{
if (!Tocador.isPlaying || Tocador.clip != AndandoEmTerra)
{
Tocador.Stop();
Tocador.clip = AndandoEmTerra;
Tocador.Play();
}
}
else if (tags == "concreto")
{
if (!Tocador.isPlaying || Tocador.clip != AndandoEmConcreto)
{
Tocador.Stop();
Tocador.clip = AndandoEmConcreto;
Tocador.Play();
}
}
Re: Como faço um som parar de tocar?
É isso aí
mafipt- MembroAvançado
- PONTOS : 3580
REPUTAÇÃO : 54
Idade : 24
Áreas de atuação : C#, Java, PHP, JS, MySql, Multiplayer, Unity.
Respeito as regras :
Re: Como faço um som parar de tocar?
To com uma nova duvida parecida,eu terminei de fazer todos os audios dele andando em cada terreno e funcionou certinho!Agora to tentando fazer ele emitir audios de andando AGACHADO em cada terreno,primeiro estou fazendo na grama,usei os mesmo codigos que vc mostrou,mas n ta dando certo.Eu coloquei "gramalenta" para audio de andar agachado em grama:
essa tag gramalenta e mostrada quando apertar o control e estiver em grama,ai ele mostra gramalenta!tipo,se ta parado em grama,tag igual a grama,se abaixar,tag igual a gramalenta..
ai quando andasse,era para emitir o audio de andar agachado que e bem diferente do andando normal...n ta dando certo,ele emiti o som de andar normal!
- Código:
else if (tags == "gramalenta")
{
if (!Tocador.isPlaying || Tocador.clip != AndandoAgachadoEmGrama)
{
Tocador.Stop();
Tocador.clip = AndandoAgachadoEmGrama;
Tocador.Play();
}
}
essa tag gramalenta e mostrada quando apertar o control e estiver em grama,ai ele mostra gramalenta!tipo,se ta parado em grama,tag igual a grama,se abaixar,tag igual a gramalenta..
ai quando andasse,era para emitir o audio de andar agachado que e bem diferente do andando normal...n ta dando certo,ele emiti o som de andar normal!
Tópicos semelhantes
» Como faço para PARAR um Animator?
» [RESOLVIDO] Como eu faço para tocar um sonzinho (Son)
» Fazer um audio não parar de tocar mesmo quando muda de cena
» como parar o tempo
» Como parar o som ao se mover?
» [RESOLVIDO] Como eu faço para tocar um sonzinho (Son)
» Fazer um audio não parar de tocar mesmo quando muda de cena
» como parar o tempo
» Como parar o som ao se mover?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos