Unity: ignorando colisões entre determinados objetos - Unity3D - Artigos - Articles - Fórum

Jump to content

Bem vindo à Unidev
Registre para ter acesso a todos os recursos do site. Uma vez registrado e logado, você poderá criar tópicos, postar em tópicos já existentes, gerenciar seu perfil e muito mais. Se você já tem uma conta, faça login aqui - ou então crie aqui uma conta agora mesmo!
* * * * -
Photo

Unity: ignorando colisões entre determinados objetos


Em um determinado passo de meu projeto, precisei configurar as colisões com uma determinada particularidade. Eu precisava que um determinado objeto não gerasse colisão com outro (em uma situação bem peculiar).

Bom, para fazer isso na Unity você precisa a partir de um dos dois objetos relacionados, configurar via código a Physics para ignorar o outro collider.

Uma boa dica, quando tiver que fazer isso faça a partir do objeto que menos sofre colisões (por exemplo não faça a partir do player, faça a partir dos "sub" objetos para poupar código e performance).

Posted Image

Neste exemplo, meu player (Bruxinha) não deveria colidir com Area, para isso em Area (que já tem um script próprio) eu inseri o código:
    void Start()
    {
	    Physics.IgnoreCollision(this.collider, GameObject.FindGameObjectWithTag("Bruxinha").GetComponent<Bruxinha>().rigidbody.collider);
    }
Como o código foi no evento Start, fica muit mais leve e repare que já busco diretamente o RigidBody do "player" que fica totalmente livre desta colisão.
  • Zaraki likes this



0 Comments