Um bom sistema de física é de extrema importância para seu jogo, afinal praticamente tudo gira em torno da física.
E sem dúvidas, essa é uma das vantagens que encontramos, ao escolher uma Game Engine pronta.
E a Unity é uma das Engines que possui um excelente sistema de física, muito bem consolidado no mercado.
Rigidbody e sua complexidade
Programar um sistema de Física do zero é algo muito complexo, que chega a ser até inviável.
A menos que seja para estudo, o melhor a se fazer é usar uma game engine, como a Unity, por exemplo.
Pois, ao analisarmos como o seu sistema de física funciona, podemos perceber melhor o quão complexo é.
Pois, até mesmo o próprio Rigidbody, precisa de outros sistemas como Colisores e os Transforms, dos objetos.
E com a manipulação desses 3 componentes, as nossas possibilidades são infinitas!
Ao adicionarmos o componente Rigidbody a um objeto logo de cara temos as seguintes opções:
Body Type
Esta opção, é referente ao tipo de corpo e nos permite alternar entre Dynamic, Kinematic e Static.
E por padrão já vem como Dynamic, pois, será um tipo de corpo dinâmico e suscetível a manipulação.
Mas em Kinematic, a manipulação de física ocorre através de scripts, e estes objetos só processão colisão com objetos Dynamic.
E por fim em Static, nenhuma colisão é aplicada a eles, amplamente usado em chãos e paredes.
Material
É comum em jogos de plataforma, ao pularmos, nosso personagem acabar se enroscando e travar na parede.
E isso ocorre porque os colisores possuem pequenas quinas, tanto no player quanto nas paredes.
E para resolvemos isso através da opção Material, onde criamos um material que permite ao player “deslizar” na parede.
Mas também nos dá a liberdade de criarmos diferentes outros tipos de materiais, com outras ações, personalizando a colisão.
Mass, Drags e Gravity Scale
A Unity trabalha com a medida de peso em quilogramas, e podemos manipular a massa através da opção Mass.
E assim ele literalmente aumenta ou diminui seu peso, mudando totalmente a força necessária para movê-lo.
E já através do Angular e Linear Drag, podemos manipular a resistência do ar no objeto, por assim dizer.
Podendo assim cair mais rápido ou devagar ao chão, e exercendo um efeito parecido ao do Gravity Scale.
Mas nesse caso, ao manipular o Gravity Scale, estaremos literalmente ajustando a gravidade exercida no objeto.
Collision Detection e Sleep Mode
Com o Collision Detection podemos ajustar um pouco melhor ao nível de processamento e performance.
Pois, na opção Discrete, a colisão será usada quando for necessária, sendo mais leve de processar, mas menos eficiente.
E um problema comum encontrado nessa opção, é os objetos atravessarem paredes, por exemplo.
Sendo resolvido com a opção Continuous, que é uma colisão continua, ganhando eficiência, mas sendo mais pesada de se processar.
Mas, quando 2 objetos estão dentro um do outro, podemos detectar apenas na entrada e saída ou constantemente.
E ajustamos isso através do Sleep Mode, selecionando se a colisão será detectada apenas na primeira colisão, com Start Awake.
Ou se será constantemente detectado em Never Sleep, porém, trazendo um peso maior para o processamento.
Constraints
A opção Constraints trabalha em conjunto com o transform dos objetos, nos permitindo restringi-los.
Por exemplo, quando adicionamos força de velocidade em um objeto é comum ele rotacionar em algum eixo.
E em alguns casos essa rotação não é interessante, já que queremos o player sempre em pé, por exemplo.
E justamente através do Constraints resolvemos esse problema, podendo travar os eixos X, Y ou Z.
E basicamente essa foi uma visão geral do RigidBody, pois, existem ainda inúmeras funções e possibilidades com esse component.
Pois, através dos scripts, além de podermos manipular tudo o que foi visto acima, ainda temos muitas outras opções.
Como, por exemplo, adicionar força, adicionar velocidade, modos de força como Impulso e muito mais.
E essa é a vantagem de se usar uma game Engine que traz estes recursos já prontos para o uso.
Pois, dispensa meses ou até anos que passaríamos programando uma física eficiente para nossos games.
Logo abaixo deixamos um vídeo bem bacana para você com bastante uso do nosso querido RigdBody:
Seja o primeiro a comentar.