Drone
Powered by Unity
Instruções
 |
 |
|
 |
|
Nesta cena, o veículo é indestrutível e os controles dependem do modo em que ele estiver operando.
Em modo carro
- [Seta para cima] e [Seta para baixo], enquanto pressionadas, aceleram as rodas para frente ou para trás;
- [Seta para esquerda] e [Seta para direita], enquanto pressionadas, giram as rodas no eixo Y (para o veículo fazer curvas);
- [Control] + [Seta para cima] ou [Seta para baixo] giram propulsores em torno do eixo X (possibilitando direcionar impulso para frente, cima, trás ou baixo);
- [Control] + [Seta para esquerda] ou [Seta para direita], enquanto pressionadas, giram propulsores em torno do eixo Y (possibilitando direcionar impulso para direita ou esquerda);
- [X] e [Z] aumentam e diminuem a força dos propulsores (neste modo, a força de todos os propulsores é igual).
Em modo drone
- [Seta para cima] e [Seta para baixo], enquanto pressionadas, inclinam hélices um tiquinho para a frente ou para trás (visam acelerar drone na direção escolhida);
- [Seta para esquerda] e [Seta para direita], enquanto pressionadas, inclinam hélices dianteiras um tiquinho para um lado e as hélices traseiras um tiquinho para o lado oposto (visam girar o drone na direção escolhida);
- [Control] + [Seta para cima] ou [Seta para baixo], enquanto pressionadas, alteram força dos propulsores (visam fazer o drone ganhar ou perder altitude).
Em qualquer modo
- [Enter] alterna modo de funcionamento do veículo;
- [1], [2] e [3] escolhem modo da câmera.
|
|
 |
|
 |
|
 |
Sobre o projeto
 |
 |
|
 |
|
A proposta do exercício era empregar a física da Unity e pelo menos duas das abordagens vistas em sala de aula para movimentar corpos ou veículos.
As explicações dos comandos acima estão meio complicadas porque elas dizem o que é feito de fato, não o resultado que você vai efetivamente ter sobre o veículo.
Eu criei essa geringonça usando apenas formas primitivas da Unity (cubo, cilindro, cápsula e esfera) e com estas características:
- O veículo é composto por um chassi com rigidbody que se apóia em quatro suportes de rodas;
- Cada suporte, por sua vez, tem rigidbody próprio e está apoiado em uma roda;
- Cada roda possui seu rigidbody e está presa ao suporte por duas hinge joints para maior estabilidade;
- Para o veículo andar no terreno, apenas aplico torque às rodas - a física da Unity faz todo o resto: gravidade, colisão das rodas com o terreno, atrito e deslocamento de todas as partes;
- Os propulsores com hélice fazem parte do chassi. Aplico forças de propulsão nos pontos centrais das cápsulas vermelhas dos propulsores. A direção e o sentido das forças dependem de para onde as hélices estão viradas (cada propulsor funciona como se fosse um torpedo);
- Enquanto carro, o jogador pode girar, ligar e desligar os propulsores. Ele decide como tirar proveito do impulso extra;
- Enquanto drone, a direção e intensidade das forças de propulsão das hélices são controladas por script. O jogador indica para onde quer ir e o script deveria manipular forças visando conseguir o resultado desejado (esta parte não ficou boa);
- Quando na água, aplico empuxo no veículo e também uma força que atua como resistência ao movimento. Se as hélices estiverem desligadas, o veículo deve flutuar.
Concentrei esforços no script de voo do drone, mas o resultado ficou ruim.
O script deveria manter o veículo estabilizado no ar, dosando as forças aplicadas nos pontos de apoio dos propulsores para alcançar o movimento desejado pelo jogador.
Aí ficou uma oportunidade para melhoria que demanda um tempinho.
Outra coisa que dá para melhorar é a distribuição de massas para aumentar a estabilidade nas curvas (modo carro).
A geometria do veículo influencia diretamente a capacidade de manobras.
|
|
 |
|
 |
|
 |
|