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

A propriedade Collision Detection indica a maneira como o Unity deve checar colisões. Não entraremos em muitos detalhes nessas opções, mas saiba que elas afetam dois pontos. A detecção de colisão contínua pode evitar problemas de um objeto atravessar o outro por tê-lo "pulado", mas tem um custo bem mais caro que a detecção de colisão discreta. Para entender melhor a diferença, imagine uma bala de rifle sendo atirada contra uma janela fina de vidro. Pode ser que, devido a velocidade da bala, num instante T0 ela esteja antes da janela, e no instante T1 depois desta, sem nunca ter estado em cima/no meio dela. Nesse caso, a colisão não seria detectada de maneira discreta.

A propriedade Sleeping Mode define o modo como o objeto fica enquanto não está sofrendo nenhuma força, para economizar um pouco de processamento. Com o modo Start Awake, ele começa checando se há algo por perto e somente depois dorme, economizando recursos. No modo Start Asleep, ele começa sem checar nada e fica aguardando alguém interagir com ele, para voltar a consumir recursos e calcular o que deve ser feito. Com o valor Never Sleep, ele nunca será desabilitado.

A propriedade Interpolate indica como o objeto deve se mover entre cada atualização do motor de física. Se for escolhida a opção None, nenhuma interpolação será feita. Com a opção Interpolate, a movimentação do objeto será suavizada, baseada em posições anteriores. Com a opção Extrapolate, a posição também será suavizada, mas baseada em uma predição de onde o objeto deverá estar no próximo frame.

As últimas propriedades que temos dizem respeito a restrições. O conjunto de propriedades dentro da aba Constraints indica se deve haver algum congelamento do nosso Rigidbody 2D em relação à movimentação ou rotação. Freeze Position X ou Y indica que o objeto não deverá se mover naquele eixo de maneira alguma. Freeze Rotation Z indica que o objeto não deverá rotacionar. Isso é importante para evitar, por exemplo, ao nosso amigo robô cair com a cara no chão à medida que uma força o empurre.

Por fim há a aba Info. Apesar de não ser uma propriedade, pois não tem nenhum valor alterável, essa aba é muito útil para podermos, ao dar play em nosso jogo, acompanhar informações importantes sobre o nosso corpo rígido em tempo real e, com isso, debugar alguns problemas que possam surgir sem que saibamos precisamente como. É possível observar informações, como a velocidade nos dois eixos, a posição, a rotação, se o objeto está acordado ou não, entre outras. Ou seja, essas diversas informações importantes contribuem para entendermos melhor o que o motor está gerando para nós.

Assim, concluímos o primeiro e mais complexo dos componentes físicos estudados nesta aula. Agora conheceremos os outros componentes disponibilizados pelo Unity, para podermos, enfim, adicionar um tanto de física ao nosso projeto!

Versão 5.3 - Todos os Direitos reservados