Problema em dedectar a TAG
Página 1 de 1
Problema em dedectar a TAG
O meu boneco aqui faz um som de andar diferente em cada terreno que ele vai,em gramado,terra,concreto,agua e madeira.O erro que acontece é,quando eu aperto D,meu boneco anda para direita e se estiver no gramado,faz som de andar em grama e no exato momento que vai para um terreno de terra,o som de gramado continua e so muda para o de terra,quando paro o boneco e aperto D novamente.Cada tipo de terreno tem uma TAG do seu tipo,exemplo:Terreno de agua tem TAG: Agua e pura ai vai.Eu fiz o sistema dele assim:
Esse é do D,o A,S e W são iguais.
Eu faço meu boneco andar com isso aqui:
Meu jogo é assim:
O chão é o terrain,mas eu coloco cubos no terreno para o boneco fazer o som,tipo,o boneco ta em uma parte do terrain que tem textura de grama,nessa textura de grama,tem um cubo verde com mesh renderer desativado com a TAG gramado,quando o boneco andar nisso sai o som de gramado e tals...
Esse é do D,o A,S e W são iguais.
- Código:
if (Input.GetKeyDown (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 1);
direcao = ("Direita");
if (Physics.Raycast (transform.position, -Vector3.up, out PontoColisao, RaioDeColisão)) {
Debug.DrawLine (transform.position, PontoColisao.point);
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Play ();
PisandoEm = "Gramado";
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Play ();
PisandoEm = "Terra";
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Play ();
PisandoEm = "Madeira";
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
PisandoEm = "Agua";
AndandoAgua.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Concreto") {
PisandoEm = "Concreto";
AndandoConcreto.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Untagged") {
PisandoEm = "Nada";
AndandoAgua.Stop ();
AndandoMadeira.Stop ();
AndandoTerra.Stop ();
AndandoGrama.Stop ();
}
}
}
if (Input.GetKeyUp (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
AndandoTerra.Stop ();
AndandoGrama.Stop ();
AndandoAgua.Stop ();
AndandoMadeira.Stop ();
AndandoConcreto.Stop ();
}
Eu faço meu boneco andar com isso aqui:
- Código:
public void Movement () {
float x = Input.GetAxis("Horizontal");
float y = Input.GetAxis("Vertical"); Vector3 move = new Vector3 (x * Velocidade, Fisica.velocity.y, y*Velocidade);
Fisica.velocity = move;
}
Meu jogo é assim:
O chão é o terrain,mas eu coloco cubos no terreno para o boneco fazer o som,tipo,o boneco ta em uma parte do terrain que tem textura de grama,nessa textura de grama,tem um cubo verde com mesh renderer desativado com a TAG gramado,quando o boneco andar nisso sai o som de gramado e tals...
Re: Problema em dedectar a TAG
Agora eu deixei assim:
Mas não sai mais som quando aperto o D,e quando aperto outra tecla e faço esse negoso de ir de um tipo de terreno para o outro e fazer sons diferentes funciona
- Código:
if (Physics.Raycast (transform.position, -Vector3.up, out PontoColisao, RaioDeColisão)) {
Debug.DrawLine (transform.position, PontoColisao.point);
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoGrama.Stop ();
}
}
if (Input.GetKey (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 1);
direcao = ("Direita");
if (Physics.Raycast (transform.position, -Vector3.up, out PontoColisao, RaioDeColisão)) {
Debug.DrawLine (transform.position, PontoColisao.point);
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Play ();
PisandoEm = "Gramado";
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Play ();
PisandoEm = "Terra";
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Play ();
PisandoEm = "Madeira";
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
PisandoEm = "Agua";
AndandoAgua.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Concreto") {
PisandoEm = "Concreto";
AndandoConcreto.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Untagged") {
PisandoEm = "Nada";
AndandoAgua.Stop ();
AndandoMadeira.Stop ();
AndandoTerra.Stop ();
AndandoGrama.Stop ();
}
}
}
if (Input.GetKeyUp (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
AndandoTerra.Stop ();
AndandoGrama.Stop ();
AndandoAgua.Stop ();
AndandoMadeira.Stop ();
AndandoConcreto.Stop ();
}
Mas não sai mais som quando aperto o D,e quando aperto outra tecla e faço esse negoso de ir de um tipo de terreno para o outro e fazer sons diferentes funciona
Re: Problema em dedectar a TAG
Eu mudei dinovo:
Agora ta quase dando certo,quando ele anda na grama,sai som de grama normal e quando muda rapidamente para um terreno diferente,o som somente para e nao sai mais nada,so sai som quando paro no terreno e ando.
- Código:
if (Physics.Raycast (transform.position, -Vector3.up, out PontoColisao, RaioDeColisão)) {
Debug.DrawLine (transform.position, PontoColisao.point);
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoTerra.Stop ();
AndandoAgua.Stop ();
AndandoMadeira.Stop ();
AndandoConcreto.Stop ();
PisandoEm = "Gramado";
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoGrama.Stop ();
AndandoAgua.Stop ();
AndandoMadeira.Stop ();
AndandoConcreto.Stop ();
PisandoEm = "Terra";
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoTerra.Stop ();
AndandoGrama.Stop ();
AndandoAgua.Stop ();
AndandoConcreto.Stop ();
PisandoEm = "Madeira";
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoTerra.Stop ();
AndandoGrama.Stop ();
AndandoMadeira.Stop ();
AndandoConcreto.Stop ();
PisandoEm = "Agua";
}
if (PontoColisao.transform.gameObject.tag == "Concreto") {
AndandoTerra.Stop ();
AndandoGrama.Stop ();
AndandoAgua.Stop ();
AndandoMadeira.Stop ();
PisandoEm = "Concreto";
}
}
if (Input.GetKeyDown (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 1);
direcao = ("Direita");
if (PisandoEm == "Gramado"){
AndandoGrama.Play ();
}
if (PisandoEm == "Terra") {
AndandoTerra.Play ();
}
if (PisandoEm == "Madeira") {
AndandoMadeira.Play ();
}
if (PisandoEm == "Agua") {
AndandoAgua.Play ();
}
if (PisandoEm == "Concreto") {
AndandoConcreto.Play ();
}
}
if (Input.GetKeyUp (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
AndandoTerra.Stop ();
AndandoGrama.Stop ();
AndandoAgua.Stop ();
AndandoMadeira.Stop ();
AndandoConcreto.Stop ();
}
Agora ta quase dando certo,quando ele anda na grama,sai som de grama normal e quando muda rapidamente para um terreno diferente,o som somente para e nao sai mais nada,so sai som quando paro no terreno e ando.
Tópicos semelhantes
» Problema de Colisão com IA's
» Problema com NullReferenceException
» Problema com AI
» Problema com o ThirdPersonController
» Problema com script
» Problema com NullReferenceException
» Problema com AI
» Problema com o ThirdPersonController
» Problema com script
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos