Centro RPG Maker

Centro de Outras Engines => Suporte para Outras Engines => Tópico iniciado por: Aurora online 04/11/2018 às 17:18

Título: Desativar colisão de inimigos com inimigos
Enviado por: Aurora online 04/11/2018 às 17:18
Olá pessoal, gostaria de saber como faço para inimigos não se colidirem.

A movimentação padrão do inimigo é assim:
(https://i.postimg.cc/9MzSbZ0T/1.gif)

Ele se movimenta de um lado pro outro e quando detecta que não tem chão ele volta.

Porém quando adiciono mais de um inimigo e eles se colidem, acabam ficando parados:
(https://i.postimg.cc/HnX6v2gJ/2.gif)

Se alguém tiver uma ideia de como eu posso desativar a colisão temporariamente somente com inimigos eu agradeço. ;o;

Esses são os componentes que ele usa:
(https://i.gyazo.com/86699cc441a49f80ae4ef0c1e7f25706.png)
Título: Re:Desativar colisão de inimigos com inimigos
Enviado por: Sotelie online 04/11/2018 às 18:27
A matrix de colisão indica quais Layers interagem com o quê:
(https://unity3d.com/sites/default/files/styles/original/public/learn/physicsbestpractices01.png?itok=zxT6ZzhI)

Você pode acessar ele através do Physics Manager (https://docs.unity3d.com/Manual/class-PhysicsManager.html).
Nesse caso, você pode fazer com que a Layer "Enemy" não interaja com a layer "Enemy". Desta forma inimigos nessa Layer não irão interagir uns com os outros.
Se você fizer isso e quiser que dois inimigos em específico se interajam, você pode utilizar Raycasts.
Título: Re:Desativar colisão de inimigos com inimigos
Enviado por: Aurora online 04/11/2018 às 18:41
Eu acabei conseguindo corrigir com:
Physics2D.IgnoreCollision(this.gameObject.GetComponent<BoxCollider2D>(), GameObject.FindGameObjectWithTag("Enemy").GetComponent<BoxCollider2D>());

Mas acredito que seu metodo para um jogo de celular seja melhor.

Valeu. o/
Título: Re:Desativar colisão de inimigos com inimigos
Enviado por: Sotelie online 04/11/2018 às 20:48
Fazer via código tem sempre suas vantagens haha' Fico feliz que tenha conseguido resolver, qualquer coisa tamo aí o/