Menu
CoddyTech

Empurrar com AddForce

Parte da seção Física e jogabilidade do Journey de Unity da Coddy. Lição 2 de 63.

Quando um objeto tem um Rigidbody, a física o movimenta, então você para de alterar sua posição e passa a empurrá-lo. rb.AddForce(force) empurra o corpo com uma força, um Vector3 em newtons. Uma força não define uma velocidade: ela acelera o corpo enquanto você continuar aplicando-a, à razão da força dividida pela massa a cada segundo. Pare de empurrar e o corpo mantém a velocidade que tem.

Este hovercraft (2 kg) tem um propulsor: enquanto a seta para cima estiver pressionada, uma força de thrust o empurra para a frente, ao longo de +z. Com um thrust de 12, ele ganha 12 / 2 = 6 m/s a cada segundo:

public float thrust = 12f;
private Rigidbody rb;

void Start()
{
    rb = GetComponent<Rigidbody>();
}

void FixedUpdate()
{
    if (Input.GetKey(KeyCode.UpArrow))
    {
        rb.AddForce(Vector3.forward * thrust);
    }
}

As forças são aplicadas em FixedUpdate(), que o Unity chama antes de cada etapa da física, 50 vezes por segundo (a lição 4 explica o motivo). Não há Time.deltaTime na linha: AddForce já distribui a força ao longo da etapa, e multiplicá-la por Time.deltaTime deixaria o empurrão 50 vezes mais fraco. No chão, o atrito empurra de volta, então uma força pequena talvez nem mova uma caixa pesada.

challenge icon

Desafio

Fácil

O disco no rinque de patinação tem um Rigidbody, e o gelo não tem atrito. Empurre-o com as setas: o eixo Horizontal o empurra ao longo de x, e o eixo Vertical ao longo de z, com uma força de push (4 no Inspector).

Empurre-o apenas com forças, para que ele continue deslizando quando você soltar as teclas. Pressione Play, conduza o disco pelo rinque e, em seguida, Check.

Experimente você mesmo

using UnityEngine;

public class PuckPusher : MonoBehaviour
{
    public float push = 4f;
    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void FixedUpdate()
    {
        // Empurre o disco: Horizontal ao longo de x, Vertical ao longo de z
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Física e jogabilidade