Unity - Trigger detectando os dois personagens - ERRO!
2 participantes
Página 1 de 1
Unity - Trigger detectando os dois personagens - ERRO!
Olá!
Já pesquisei e mt, mas não tive resultado pra isso que tá acontecendo. Seguinte,
Tenho 2 Personagens, ambos com o Capsule Collider pra o Personagem não cais por causa da gravidade do Rigidbody e com o Box Collider com o Trigger marcado. O que está acontecendo é que, quando o 1º Personagem entra no Trigger do 2º, ambos são detectados, em vez de um só! Segue implementação e resultado:
O Resultado é o nome do 1º e do 2º Personagens. O que pode corrigir esse erro?
Já fiz vários testes, um deles é tirar o Script de um dos Personagens, aí só um é reconhecido e impresso no Debug, mas se colocar o Script nos dois, ele detecta e imprime os dois. Até onde eu sei, essa implementação do Trigger acima deveria detectar só 1 Personagem, mas ele está retornando os 2.
Certo que eu quero o retorno dos 2 Personagens, mas separadamente e ele está retornando os 2 na mesma variável "other". Sem falar que eu preciso de que todos os 16 Personagens tenha o Script do Trigger neles. Me ajudem pfv..!
Grata!!!
Já pesquisei e mt, mas não tive resultado pra isso que tá acontecendo. Seguinte,
Tenho 2 Personagens, ambos com o Capsule Collider pra o Personagem não cais por causa da gravidade do Rigidbody e com o Box Collider com o Trigger marcado. O que está acontecendo é que, quando o 1º Personagem entra no Trigger do 2º, ambos são detectados, em vez de um só! Segue implementação e resultado:
- Código:
void OnTriggerEnter(Collider other) {
Debug.Log("other::: " + other.name);
}
O Resultado é o nome do 1º e do 2º Personagens. O que pode corrigir esse erro?
Já fiz vários testes, um deles é tirar o Script de um dos Personagens, aí só um é reconhecido e impresso no Debug, mas se colocar o Script nos dois, ele detecta e imprime os dois. Até onde eu sei, essa implementação do Trigger acima deveria detectar só 1 Personagem, mas ele está retornando os 2.
Certo que eu quero o retorno dos 2 Personagens, mas separadamente e ele está retornando os 2 na mesma variável "other". Sem falar que eu preciso de que todos os 16 Personagens tenha o Script do Trigger neles. Me ajudem pfv..!
Grata!!!
Última edição por WLCS22 em Dom Jun 06, 2021 7:23 pm, editado 2 vez(es)
WLCS22- MembroAvançado
- PONTOS : 1927
REPUTAÇÃO : 60
Respeito as regras :
Re: Unity - Trigger detectando os dois personagens - ERRO!
Pelo oque eu entendi sobre seu problema não é um "Erro" pois como os dois Trigger estão colidindo é natural que um detecte colisão com o outro.
uma forma de resolver isso é , usar Physics2D.IgnoreCollision(); nessa função você deve passar como parâmetro os coliders que ele deve ignorar.
Por exemplo se vc quer que seu personagem 2 ignore colisões com o personagem 1 vc de passar os coliders do personagem 1 para o Physics2D.IgnoreCollision() do personagem 2.
outro modo é usar um If no seu código:
uma forma de resolver isso é , usar Physics2D.IgnoreCollision(); nessa função você deve passar como parâmetro os coliders que ele deve ignorar.
Por exemplo se vc quer que seu personagem 2 ignore colisões com o personagem 1 vc de passar os coliders do personagem 1 para o Physics2D.IgnoreCollision() do personagem 2.
outro modo é usar um If no seu código:
- Código:
private void OnTriggerEnter(Collider other)
{
if(other.name!="personagem 2")
{
Debug.Log("other::" + other.name);
}
}
MatheusEleodoro- Membro
- PONTOS : 2461
REPUTAÇÃO : 7
Áreas de atuação : Cientista da Computação. Unity, C#,C,C++,
Java, Dev.Android
Respeito as regras :
Re: Unity - Trigger detectando os dois personagens - ERRO!
Matheus, obg pela resposta!
Olha, meu jogo é um Ludo. são 16 Personagens. Todos devem ter o Trigger. Então quando, por ex., for a vez do Amarelo e ele vai parar na casa que tá o azul, o Trigger detectando os dois no "other" complica, pois como eu vou saber qual estava parado e qual estava chegando na casa? Nem dá pra checar, pois não sei qual está chegando e qual está sofrendo a colisão, já que ambos está na mesma variável "other".
-------------------
RESOLVIDOOO!!!
- Criei um objeto vazio dentro do Personagem. [O Personagem é o pai, o objeto vazio é o filho]
- Tirei o Script do Pai e coloquei no filho.
Ele detectou só o que estava sofrendo a colisão! Justamente o que eu queria. Isso se deu pq o filho não reconhece o script do outro filho do outro personagem. Daí só um percebe a colisão! Foi Gustavo daki do Fórum que falou. Mt top!
Obg a todos!
Olha, meu jogo é um Ludo. são 16 Personagens. Todos devem ter o Trigger. Então quando, por ex., for a vez do Amarelo e ele vai parar na casa que tá o azul, o Trigger detectando os dois no "other" complica, pois como eu vou saber qual estava parado e qual estava chegando na casa? Nem dá pra checar, pois não sei qual está chegando e qual está sofrendo a colisão, já que ambos está na mesma variável "other".
-------------------
RESOLVIDOOO!!!
- Criei um objeto vazio dentro do Personagem. [O Personagem é o pai, o objeto vazio é o filho]
- Tirei o Script do Pai e coloquei no filho.
Ele detectou só o que estava sofrendo a colisão! Justamente o que eu queria. Isso se deu pq o filho não reconhece o script do outro filho do outro personagem. Daí só um percebe a colisão! Foi Gustavo daki do Fórum que falou. Mt top!
Obg a todos!
WLCS22- MembroAvançado
- PONTOS : 1927
REPUTAÇÃO : 60
Respeito as regras :
Tópicos semelhantes
» Trigger detectando apenas o character controller
» Fazer Personagens se verem como Trigger, sem perder collider com o cenario
» erro magia jogo dois 2d
» Erro no script de Trigger
» Como Usar a Mesma Animação Pra Personagens Diferentes na Unity ?
» Fazer Personagens se verem como Trigger, sem perder collider com o cenario
» erro magia jogo dois 2d
» Erro no script de Trigger
» Como Usar a Mesma Animação Pra Personagens Diferentes na Unity ?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos