Menu
CoddyTech

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.
challenge icon

Desafio

Fácil

Faça o sapo pular uma vez a cada pressionamento da tecla Espaço.

  1. Abaixo do comentário, escreva if (Input.GetKeyDown(KeyCode.Space)).
  2. 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

Pratique por conta própria: Playground de Unity