1
resposta

É possível voltar a posição inicial sem deixar o avião rodando e sem travar o eixo Z?

Olá pessoal. Sobre o jogo do Avião, no inicio da 5a parte, vi que a solução dada para o avião nao reiniciar rodando foi travar o eixo Z... Mas ele não roda na primeira vez que jogamos, certo? Então isso deve ter um motivo... Eu tentei zerar a velocidade e voltar a posição e a rotacao para a inicial... mesmo assim ele continua rodando... Não estou entendendo por quê, uma vez que no inicio isso nao acontece e, em teoria, eu voltei para uma posição idêntica ã do início. Alguém sabe explicar? Obrigado.

1 resposta

Oi Jose, tudo bom?

Travamos o eixo Z do nosso objeto porque não queremos que ele rotacione nunca e essa era uma maneira mais prática.

Mas se você quer deixar ele rotacionar e ajustar essa rotação através do código. Quem está fazendo o objeto rotacionar é o próprio componente RigidBody2D e ele faz isso através da propriedade angularVelocity - https://docs.unity3d.com/ScriptReference/Rigidbody2D-angularVelocity.html - essa propriedade é quem diz o quão rápido e para qual direção o avião deve rotacionar.

No inicio do jogo o avião não roda porque essa propriedade tem o valor de 0. Mas assim que o avião colide com algo a unity calcula qual seria a rotação do objeto, baseado no ponto de impacto e atribui um valor para o AngularVelocity.

Entendeu?