Problema com TAGS
2 participantes
Página 1 de 1
Problema com TAGS
No meu jogo tem varios tipos de terreno,vo dar de exemplo 2: Gramado e asfalto,gramado tem tag gramado e asfalto tem tag asfalto,quando o personagem anda no gramado,reproduz o som de andar na grama,porque dedecta que a tag é grama,mas quando imediatamente toca no asfalto o som de grama continua,e so reproduz o do asfalto,quando paro de andar e depois começo a andar dinovo,ai toca o do asfalto e quando imediatamente toca o gramado,o som de asfalto continua e so para quando paro o personagem e ai ando e começa o de grama
Re: Problema com TAGS
Eu fiz uma variavel string escrito Pisando Em,para saber aonde o personagem ta pisando....ai fui fazer o teste e percebi que quando o personagem esta em grama,o pisando em,fica gramado,e quando imediatamente vai para o asfalto continua em gramado,so vai para asfalto,quando paro e ando
Re: Problema com TAGS
DUT escreveu:Eu fiz uma variavel string escrito Pisando Em,para saber aonde o personagem ta pisando....ai fui fazer o teste e percebi que quando o personagem esta em grama,o pisando em,fica gramado,e quando imediatamente vai para o asfalto continua em gramado,so vai para asfalto,quando paro e ando
Seria bom postar o script aqui, deve ser algum erro nele, o que você está fazendo para detectar que ele está na grama ou no asfalto? trigger?
Re: Problema com TAGS
Olhe,um exemplo com letra D:
if (Input.GetKey (KeyCode.D)) {
transform.Translate (Velocidade * Time.deltaTime, 0.0f, 0.0f);
ControlAgachar.SetInteger ("Condição", 1);
direcao = ("Direita");
if (Input.GetKeyDown (KeyCode.D)) { //SOM
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") {
AndandoAgua.Play ();
}
}
}
}
if (Input.GetKeyUp (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
}
if (Input.GetKey (KeyCode.D)) {
transform.Translate (Velocidade * Time.deltaTime, 0.0f, 0.0f);
ControlAgachar.SetInteger ("Condição", 1);
direcao = ("Direita");
if (Input.GetKeyDown (KeyCode.D)) { //SOM
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") {
AndandoAgua.Play ();
}
}
}
}
if (Input.GetKeyUp (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
}
Re: Problema com TAGS
Desculpe,vou colocar em script:
- Código:
if (Input.GetKey (KeyCode.D)) {
transform.Translate (Velocidade * Time.deltaTime, 0.0f, 0.0f);
ControlAgachar.SetInteger ("Condição", 1);
direcao = ("Direita");
if (Input.GetKeyDown (KeyCode.D)) { //SOM
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") {
AndandoAgua.Play ();
}
}
}
}
if (Input.GetKeyUp (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
}
Re: Problema com TAGS
DUT escreveu:É uma variavel:
- Código:
private RaycastHit PontoColisao;
É percebi agora, desculpa kkkk O que acho que pode ser, é bem simples, você está parando somente quando o Inpunt é true, tenta colocar isso fora do "Input.GetKeyUp (KeyCode.D)":
- Código:
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
Re: Problema com TAGS
Tipo assim?
- Código:
if (Input.GetKeyUp (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
}
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
Re: Problema com TAGS
Isso, pode até retirar de dentro do Input, já está verificando a cada frame do lado de fora dele.DUT escreveu:Tipo assim?
- Código:
if (Input.GetKeyUp (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
}
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
Re: Problema com TAGS
tipo isso?
- Código:
if (Input.GetKeyUp (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
}
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
Re: Problema com TAGS
isso.DUT escreveu:tipo isso?
- Código:
if (Input.GetKeyUp (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
}
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
Re: Problema com TAGS
DUT escreveu:Eu fiz isso,e o som não sai mas
Tente isso:
[list=linenums]
[*]if (Input.GetKeyUp (KeyCode.D)) {
[*]ControlAgachar.SetInteger ("Condição", 2);
[*]direcao = ("Direita");
[*]}
[*]if (!PontoColisao.transform.gameObject.tag == "Gramado") {
[*]AndandoGrama.Stop ();
[*]}
[*]if (!PontoColisao.transform.gameObject.tag == "Terra") {
[*]AndandoTerra.Stop ();
[*]}
[*]if (!PontoColisao.transform.gameObject.tag == "Madeira") {
[*]AndandoMadeira.Stop ();
[*]}
[*]if (!PontoColisao.transform.gameObject.tag == "Agua") {
[*]AndandoAgua.Stop ();
[*]}
[/list]
Re: Problema com TAGS
da erro:
Assets/Scripts/Playercontroler.cs(103,: error CS0023: The `!' operator cannot be applied to operand of type `string'
escrevi assim:
Assets/Scripts/Playercontroler.cs(103,: error CS0023: The `!' operator cannot be applied to operand of type `string'
escrevi assim:
- Código:
if (Input.GetKeyUp (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
if (!PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
}
if (!PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
if (!PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
if (!PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
}
Re: Problema com TAGS
Ou assim:
Tudo fora da condição do Input.
Tudo fora da condição do Input.
- Código:
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Play ();
PisandoEm = "Gramado";
}else{
AndandoGrama.Stop()
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Play ();
PisandoEm = "Terra";
}else{
AndandoTerra.Stop()
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Play ();
PisandoEm = "Madeira";
}else{
AndandoMadeira.Stop()
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Play ();
}else{
AndandoAgua.Stop()
}
Re: Problema com TAGS
DUT escreveu:da erro:
Assets/Scripts/Playercontroler.cs(103,: error CS0023: The `!' operator cannot be applied to operand of type `string'
escrevi assim:
- Código:
if (Input.GetKeyUp (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
if (!PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
}
if (!PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
if (!PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
if (!PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
}
erro meu, é assim:
- Código:
!(PontoColisao.transform.gameObject.tag == "Gramado")
E não chame dentro da condição do input, se você chamar ai só irá acontecer quando o input for true.
Re: Problema com TAGS
Não quer ir:
agora esta em vermelho
Acho que fiz errado
agora esta em vermelho
- Código:
if (Input.GetKey (KeyCode.D)) {
transform.Translate (Velocidade * Time.deltaTime, 0.0f, 0.0f);
ControlAgachar.SetInteger ("Condição", 1);
direcao = ("Direita");
if (Input.GetKeyDown (KeyCode.D)) { //SOM
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";
}else{
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Play ();
PisandoEm = "Terra";
}else{
AndandoTerra.Stop();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Play ();
PisandoEm = "Madeira";
}else{
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Play ();
}else{
AndandoAgua.Stop ();
}
}
}
}
if (Input.GetKeyUp (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
}
!(PontoColisao.transform.gameObject.tag == "Gramado"){
AndandoGrama.Stop ();
}
!(PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
!(PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
!(PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
Acho que fiz errado
Re: Problema com TAGS
DUT escreveu:Não quer ir:
agora esta em vermelho
- Código:
if (Input.GetKey (KeyCode.D)) {
transform.Translate (Velocidade * Time.deltaTime, 0.0f, 0.0f);
ControlAgachar.SetInteger ("Condição", 1);
direcao = ("Direita");
if (Input.GetKeyDown (KeyCode.D)) { //SOM
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";
}else{
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Play ();
PisandoEm = "Terra";
}else{
AndandoTerra.Stop();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Play ();
PisandoEm = "Madeira";
}else{
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Play ();
}else{
AndandoAgua.Stop ();
}
}
}
}
if (Input.GetKeyUp (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
}
!(PontoColisao.transform.gameObject.tag == "Gramado"){
AndandoGrama.Stop ();
}
!(PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
!(PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
!(PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
Acho que fiz errado
Fez. Assim:
- Código:
//Colocar esta bool fora do update
bool agachar;
if (Input.GetKey (KeyCode.D) && agachar == false) {
transform.Translate (Velocidade * Time.deltaTime, 0.0f, 0.0f);
ControlAgachar.SetInteger ("Condição", 1);
direcao = ("Direita");
agachar = ! agachar;
}else if(Input.GetKeyUp (KeyCode.D) && agachar == true) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
agachar = ! agachar;
}
if (Physics.Raycast (transform.position, -Vector3.up, out PontoColisao, RaioDeColisão)) {
Debug.DrawLine (transform.position, PontoColisao.point);
//SOM
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Play ();
PisandoEm = "Gramado";
}else{
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Play ();
PisandoEm = "Terra";
}else{
AndandoTerra.Stop();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Play ();
PisandoEm = "Madeira";
}else{
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Play ();
PisandoEm = "Agua";
}else{
AndandoAgua.Stop ();
}
}
Re: Problema com TAGS
DUT escreveu:Agora bugo a movimentação,travo,nao anda mais pra direita kkkkkkkkkkkkk
- Código:
if (Input.GetKey (KeyCode.D) && agachar == false) {
transform.Translate (Velocidade * Time.deltaTime, 0.0f, 0.0f);
ControlAgachar.SetInteger ("Condição", 1);
direcao = ("Direita");
agachar = ! agachar;
}else if(Input.GetKeyUp (KeyCode.D) && agachar == true) {
transform.Translate (Velocidade * Time.deltaTime, 0.0f, 0.0f); //Acrescente isso que creio resolver o andar
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
agachar = ! agachar;
}
ou para organizar melhor:
- Código:
if (Input.GetKey (KeyCode.D)) {
transform.Translate (Velocidade * Time.deltaTime, 0.0f, 0.0f);
direcao = ("Direita");
agachar = ! agachar;
}
if(agachar){
ControlAgachar.SetInteger ("Condição", 1);
}else{
ControlAgachar.SetInteger ("Condição", 2);
}
Re: Problema com TAGS
DUT escreveu:nao sai som tb
Aqui:
- Código:
if (Input.GetKey (KeyCode.D)) {
transform.Translate (Velocidade * Time.deltaTime, 0.0f, 0.0f);
direcao = ("Direita");
if (Physics.Raycast (transform.position, -Vector3.up, out PontoColisao, RaioDeColisão)) {
Debug.DrawLine (transform.position, PontoColisao.point);
//SOM
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Play ();
PisandoEm = "Gramado";
}else{
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Play ();
PisandoEm = "Terra";
}else{
AndandoTerra.Stop();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Play ();
PisandoEm = "Madeira";
}else{
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Play ();
PisandoEm = "Agua";
}else{
AndandoAgua.Stop ();
}
}
}else{
//Para desativar sons quando não estiver andando
AndandoGrama.Stop ();
AndandoTerra.Stop();
AndandoMadeira.Stop ();
AndandoAgua.Stop ();
}
//Pressionou D uma vez condição = 1, Pressionou D de novo condição = 2
if (Input.GetKeyDown (KeyCode.D)) {
agachar = ! agachar;
if(agachar){
ControlAgachar.SetInteger ("Condição", 1);
}else{
ControlAgachar.SetInteger ("Condição", 2);
}
}
Re: Problema com TAGS
o que é este agachar?olha,quando o aperto D,o personagem anda e faz a animação de andar = condição 1,e se soltar fica na animação de parado para direita = condição 2
Re: Problema com TAGS
DUT escreveu:o que é este agachar?olha,quando o aperto D,o personagem anda e faz a animação de andar = condição 1,e se soltar fica na animação de parado para direita = condição 2
Eu que te pergunto kkkkk você que colocou esse nome, achei que a condicao em 2 era para ele agachar, então se animação é de andar e parar, faça assim:
- Código:
if (Input.GetKey (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 1);
}else if(Input.GetKeyUp (KeyCode.D)){
ControlAgachar.SetInteger ("Condição", 2);
}
Re: Problema com TAGS
Eu fiz isso:
- Código:
if (Input.GetKey (KeyCode.D)) {
transform.Translate (Velocidade * Time.deltaTime, 0.0f, 0.0f);
ControlAgachar.SetInteger ("Condição", 1);
direcao = ("Direita");
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoGrama.Stop ();
}
}
if (Input.GetKeyDown (KeyCode.D)) { //SOM
if (Physics.Raycast (transform.position, -Vector3.up, out PontoColisao, 1)) {
Debug.DrawLine (transform.position, PontoColisao.point);
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Play ();
AndandoTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Play ();
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Play ();
}
}
}
if (Input.GetKeyUp (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
AndandoTerra.Stop ();
AndandoGrama.Stop ();
AndandoAgua.Stop ();
AndandoMadeira.Stop ();
}
Tópicos semelhantes
» tem como um objeto ter 2 tags?
» Criação de tags para objetos
» Script para informar tags não utilizadas
» Problema com AI
» FindWithTag não funcionando mesmo com tags corretas
» Criação de tags para objetos
» Script para informar tags não utilizadas
» Problema com AI
» FindWithTag não funcionando mesmo com tags corretas
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos