Pular com um Impulso
Parte da seção Física e Jogabilidade do Journey de Unity da Coddy. Lição 3 de 71.
AddForce recebe um segundo argumento, um ForceMode, que indica como usar o vetor. Sem ele, você obtém ForceMode.Force, um empurrão que dura uma etapa de física, então ele precisa ser aplicado a cada etapa. Um chute, um salto ou uma explosão acontece de uma só vez, e esse é o ForceMode.Impulse: todo o empurrão de uma vez, alterando a velocidade pelo impulso dividido pela massa.
Esta bola de futebol (0.5 kg) é chutada ao clicar. Sua velocidade aumenta em (0, 2, 6) / 0.5 = (0, 4, 12) m/s na próxima etapa de física, e a gravidade e a grama assumem o controle a partir daí:
void Update()
{
if (Input.GetMouseButtonDown(0))
{
rb.AddForce(new Vector3(0, 2, 6), ForceMode.Impulse);
}
}Um empurrão único pode ser chamado de Update(), no quadro em que ocorre o clique: o Unity o mantém e o aplica na próxima etapa de física. Os quatro modos diferem de duas maneiras: de uma só vez ou ao longo de uma etapa, e com ou sem considerar a massa:
Force: ao longo de uma etapa, dividido pela massa (motores, vento).Acceleration: ao longo de uma etapa, massa ignorada.Impulse: de uma só vez, dividido pela massa (chutes, saltos).VelocityChange: de uma só vez, massa ignorada: o vetor é somado diretamente à velocidade.
Desafio
FácilFaça o sapo pular uma vez a cada pressionamento da tecla Espaço.
- Abaixo do comentário, escreva
if (Input.GetKeyDown(KeyCode.Space)). - Dentro dele, chame
rb.AddForce(Vector3.up * jumpImpulse, ForceMode.Impulse);, para que os 2 kg do sapo sejam levados em conta.
Pressione “Jogar” e aperte Espaço: o sapo salta e cai de volta. Depois, clique em “Verificar”.
Experimente você mesmo
using UnityEngine;
public class FrogJump : MonoBehaviour
{
public float jumpImpulse = 10f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
// Space: um impulso para cima de jumpImpulse
}
}
Todas as lições de Física e Jogabilidade
1Rigidbody
Gravidade e MassaEmpurrar com AddForcePular com um ImpulsoFixedUpdate para FísicaVelocidadeCorpos CinemáticosRevisão: Plataforma de Lançamento4Corrotinas
InvocarInvocar repetidamente, Cancelar invocaçãoSua primeira corrotinaLoops em corrotinasInterrompendo corrotinasRevisão: contagem regressiva10Projeto: Fuga da Arena
A ArenaCaçadores2Colisões
OnCollisionEnterO que eu acertei?Quebre no impactoNo chãoQuique e atritoFormas dos collidersRevisão: Parede destrutível5Projeto: Corrida das Moedas
A Bola RolanteMoedas para ColetarPratique por conta própria: Playground de Unity