Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos I / Aula

arrow_back Aula 04 - Detecção de colisão e o Motor de Física

Os Componentes do Motor de Física 2D

Trabalhando com Effectors 2D

Effectors são objetos físicos capazes de influenciar uma área com forças físicas provenientes de origens diversas, de acordo com cada tipo de atuador. É possível utilizar esses objetos para gerar zonas com empuxo para líquidos, simular efeitos de explosões ou simplesmente gerar uma área com atração/repulsão. Os efeitos são variados, mas todos são obtidos a partir desse componente!

Para adicionar um Effector a um GameObject qualquer, é necessário que o objeto possua um Collider 2D com a opção Used By Effector marcada. Feito isso, basta adicionar o Effector como um componente de física 2D normal. É importante também para alguns atuadores que o colisor ao qual ele está associado seja do tipo Trigger, para garantir que o efeito acontecerá se qualquer parte dos objetos estiver em contato. Caso o Collider não seja um Trigger, o Effector ainda irá funcionar, mas só atuará quando houver o contato do objeto com a borda do colisor, em vez de funcionar para qualquer local da área marcada pelo colisor.

O Unity disponibiliza cinco Effectors diferentes para o motor de física 2D. Vejamos a seguir, na Tabela 1, quais são esses Effectors e o que eles são responsáveis por fazer. Não entraremos em muitos detalhes desses componentes, mas apresentaremos cada um deles para que vocês saibam qual utilidade é mais adequada quando desejarem adicionar algum dos efeitos demonstrados em seus jogos. As configurações de propriedades desses Effectors podem ser encontradas também no manual do motor de física do Unity que, mais uma vez, referenciaremos na leitura complementar.

Effector     Utilização
Area Effector 2D     Exerce uma força em uma área à medida que os objetos entram em contato com ela. É possível configurar o ângulo em que a força será exercida, a magnitude da força e a sua variação, além do atrito que ela gerará com o objeto.
Buoyancy Effector 2D     O atuador de empuxo simula comportamentos simples de líquidos dentro do motor de física. É possível configurar a densidade do líquido, o atrito gerado, o fluxo e qual a localização da superfície para finalizar as forças.
Point Effector 2D     O atuador de pontos gera uma força de atração/repulsão ao redor de um ponto, de acordo com a magnitude configurada (positiva ou negativa). É possível escolher a maneira com que a força atuará, se constante, em escala linear ou quadrática. Também há uma distância máxima de atuação da força que é possível configurar. Funciona bem para explosões!
Platform Effector 2D     Como o nome indica, esse atuador simula diversos comportamentos de plataformas, como colisões de um lado só, remoção da fricção lateral, etc. Diferentemente do padrão, esse atuador precisa que o colisor ao qual está atrelado não seja do tipo Trigger, para que haja a colisão física necessária.
Surface Effector 2D     Esse atuador gera forças tangentes aos corpos que estão em cima de seus colisores para que estes adquiram alguma velocidade. Funciona como se fosse uma esteira, se movendo para carregar algo de um ponto a outro. Assim como no Platform Effector 2D, é necessário que o Collider ao qual este atuador está ligado não seja do tipo Trigger, para que haja a colisão física e, devido a isso, possa haver a aplicação da força.
Tabela 1 - Tipos de Effectors e seus funcionamentos.
Fonte: Elaborada pelo autor.

Também é importante notar que em todos os atuadores é possível definir qual é a fonte da força e qual é o alvo da força, se o Rigidbody 2D ou o Collider do objeto. Caso o alvo seja diretamente o Rigidbody 2D, este será simplesmente empurrado por aquela força na direção que ela indica. Já no caso do alvo ser o Collider, a força empurrará fisicamente o Collider, podendo gerar, por exemplo, rotações. É como se a primeira maneira representasse uma força como a gravidade e a segunda um empurrãozinho!

Versão 5.3 - Todos os Direitos reservados