Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos II / Aula
A propriedade Angular Drag indica quanta resistência o objeto com um Rigidbody tem à rotação proveniente de um torque, ou seja, se um objeto está girando em seus eixos na cena e tem um Angular Drag diferente de zero, ele reduz aos poucos essa velocidade de rotação até chegar em zero.
Um objeto pode iniciar um movimento de rotação dinamicamente em uma cena por vários motivos. Por exemplo: um cuco pode ser atingido por outro objeto em uma de suas quinas e, assim, começar a girar, ou em uma queda ele pode atingir uma plataforma em um determinado ângulo, também iniciando uma rotação, etc.
Para testar essa propriedade, iniciaremos a rotação em um cubo em um de seus eixos através de um script. Para isso, crie uma nova cena chamada “AngularDrag”, adicione somente um simples cubo no centro dela (Position=0, 0, 0) e adicione nesse cubo um Rigidbody. Desmarque a opção “Use Gravity” desse Rigidbody, fazendo-o não reagir à gravidade, pois não queremos que o objeto caia e saia da nossa visão. As configurações do Rigidbody desse cubo devem ser como as exibidas na Figura 27.
Adicione no cubo um novo script (Add component -> New script), nomeie esse script de IniciarRotacao e clique em “Create and Add”, como na Figura 28.
Clique no novo script IniciarRotacao com o botão direito do mouse e escolha a opção Edit Script, como mostra a Figura 29, para abrir o MonoDevelop com o script aberto.
O MonoDevelop iniciará com um script no qual há somente os métodos Start() e Update(), ambos vazios. Como queremos apenas iniciar um movimento de rotação, utilizaremos o método Start() para aplicar um torque no cubo que tem esse script. Para isso, precisaremos primeiro obter o Rigidbody do cubo e guardar sua referência em uma variável na qual executaremos o método AddTorque.
Para obter o Rigidbody do objeto e armazenar sua referência em uma variável, execute os comandos abaixo:
O comando GetComponent objetiva procurar no objeto que tem o script associado um componente de determinado tipo. Como estamos querendo buscar um componente do tipo Rigidbody, colocamos entre < e > esse tipo e executamos o comando com “()” no final, de modo que ele fique assim: GetComponent<Rigidbody>(); a variável meu_rigidbody guarda, então, uma referência ao Rigidbody associado ao cubo.
Versão 5.3 - Todos os Direitos reservados