Projetos RAD : Unity 3D 
Velocidade, aceleração e fricção 
Augusto Bülow
Unity 
• Código básico de movimento (atual) 
– Pressiona tecla = move 
• Movimentos avançados 
– Velocidade com maior cont...
Unity 
• Variáveis básicas: 
var aceleracao = 0.5; 
var friccao = 0.2; 
var velocidade_maxima = 3.0; 
var velocidade_atual...
Unity 
function Update () { 
//Input - acelera velocidade atual 
if (Input.GetKey("w") || Input.GetKey(KeyCode.UpArrow)) 
...
Unity 
• Necessidade de Fricção (manual) 
– Fricção = atrito, diminui a velocidade do corpo 
• Fricção = leva a inércia 
–...
Unity 
• Mudança básica de fricção, aceleração 
transformamos o movimento do player em um 
caminhão de toneladas, ou em um...
Unity 
• Inserindo controle básico de rotação pelo 
mouse 
• transform.Rotate(Vector3); 
var rotacao = 0.0; 
var forca_rot...
Unity 
• Necessidade de transformar a forca de 
movimento (velocidade) em relação a 
orientação atual 
• transform.Transfo...
Unity 
var velocidade_vetor : Vector3; 
.... 
//uso de vetor - transforma em vetor 
velocidade_vetor = 
transform.Transfor...
Unity 
• Controlando velocidade pode-se, por exemplo, 
transformá-la no momento de uma colisão 
• Exemplos: 
– Colidiu = p...
Próximos SlideShares
Carregando em…5
×

Aula7 velocidade

635 visualizações

Publicada em

Aula de controle de velocidades para unity3D

Publicada em: Educação
  • Seja o primeiro a comentar

Aula7 velocidade

  1. 1. Projetos RAD : Unity 3D Velocidade, aceleração e fricção Augusto Bülow
  2. 2. Unity • Código básico de movimento (atual) – Pressiona tecla = move • Movimentos avançados – Velocidade com maior controle – Aceleração – Fricção – Mantém velocidade ( + transformações) = Criar variáveis para controle destes aspectos
  3. 3. Unity • Variáveis básicas: var aceleracao = 0.5; var friccao = 0.2; var velocidade_maxima = 3.0; var velocidade_atual = 0.0; • Utilizar Float (declarar valor com vírgula) – Habilitar transformações leves / decimais • Estamos criando física (manualmente) – RigidBody = esquema automático – Pode ser incorporado física manual (junto)
  4. 4. Unity function Update () { //Input - acelera velocidade atual if (Input.GetKey("w") || Input.GetKey(KeyCode.UpArrow)) { velocidade_atual += aceleracao * Time.deltaTime; } //limita velocidade maxima if (velocidade_atual > velocidade_maxima) { velocidade_atual = velocidade_maxima; } //Mover sempre com a velocidade var controller = GetComponent(CharacterController); controller.Move(Vector3(0, 0, velocidade_atual)); }
  5. 5. Unity • Necessidade de Fricção (manual) – Fricção = atrito, diminui a velocidade do corpo • Fricção = leva a inércia – Restrição a velocidade 0 ( repouso) – Evitar entrar em velocidade inversa //friccao manual - leva a repouso if (velocidade_atual > 0) { velocidade_atual -= friccao * Time.deltaTime; //maximo - levar a repouso - evita move contrario if (velocidade_atual < 0) { velocidade_atual = 0; } }
  6. 6. Unity • Mudança básica de fricção, aceleração transformamos o movimento do player em um caminhão de toneladas, ou em um carro de fórmula 1 • Atenção: aceleração sempre maior que fricção: – Senão não há movimento • Testar valores exemplo: – Aceleração 1.5 e Fricção 0.1
  7. 7. Unity • Inserindo controle básico de rotação pelo mouse • transform.Rotate(Vector3); var rotacao = 0.0; var forca_rotacao = 2; ... //Inserindo rotacao basica com mouse rotacao = Input.GetAxis("Mouse X") * forca_rotacao; transform.Rotate(Vector3(0, rotacao, 0));
  8. 8. Unity • Necessidade de transformar a forca de movimento (velocidade) em relação a orientação atual • transform.TransformDirection() • Necessário Vector3 – para transformação – para resultado
  9. 9. Unity var velocidade_vetor : Vector3; .... //uso de vetor - transforma em vetor velocidade_vetor = transform.TransformDirection(Vector3(0, 0, velocidade_atual)); //Move sempre com a velocidade var controller = GetComponent(CharacterController); //controller.Move(Vector3(0, 0, velocidade_atual)); controller.Move(velocidade_vetor);
  10. 10. Unity • Controlando velocidade pode-se, por exemplo, transformá-la no momento de uma colisão • Exemplos: – Colidiu = perde parte da velocidade – Colidiu = inverte a velocidade • Fazer testes básicos colisão / velocidade • Trabalhando a Física manualmente – física realística = RigidBody

×