Buscar

Como impedir a colisão entre dos GameObjects no Unity?

💡 7 Respostas

User badge image

Lukas Lgb

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).
0
Dislike0
User badge image

Andre Smaira

Simplesmente pegue o (s) objeto (s) que você deseja ignorar e dê a eles uma tag ou camada. Agora o método de exatamente "como" ignorá-los é diferente com base no que você está fazendo, mas tudo que você precisa fazer é dizer ao objeto que o script está anexado.


Outra solução seria usar a Matriz de Colisão de Camadas em Editar> Configurações do Projeto> Física para fazer isso sem script. Crie uma camada (por exemplo, Layer1) e desative a colisão Layer1 / Layer1.


Uma terceira solução seria usar o Physics.IgnoreCollision para fazer com que o colisor de mísseis ignore as colisões com a torre. Note que os coletores devem estar habilitados. Para ser ainda mais seguro, você poderia instanciar o míssil com um Rigidbody definido como IsKinematic = true, depois chamar a função Physics.IgnoreCollision e, em seguida, definir a RB dos mísseis como IsKinematic = false.

0
Dislike0
User badge image

Andre Smaira

Simplesmente pegue o (s) objeto (s) que você deseja ignorar e dê a eles uma tag ou camada. Agora o método de exatamente "como" ignorá-los é diferente com base no que você está fazendo, mas tudo que você precisa fazer é dizer ao objeto que o script está anexado.


Outra solução seria usar a Matriz de Colisão de Camadas em Editar> Configurações do Projeto> Física para fazer isso sem script. Crie uma camada (por exemplo, Layer1) e desative a colisão Layer1 / Layer1.


Uma terceira solução seria usar o Physics.IgnoreCollision para fazer com que o colisor de mísseis ignore as colisões com a torre. Note que os coletores devem estar habilitados. Para ser ainda mais seguro, você poderia instanciar o míssil com um Rigidbody definido como IsKinematic = true, depois chamar a função Physics.IgnoreCollision e, em seguida, definir a RB dos mísseis como IsKinematic = false.

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais