Menu
CoddyTech

Dorong dengan AddForce

Termasuk bagian Fisika dan Gameplay dalam perjalanan Unity di Coddy. Pelajaran 2 dari 63.

Setelah sebuah object memiliki Rigidbody, fisika akan menggerakkannya, jadi kamu tidak lagi mengubah posisinya dan mendorongnya sebagai gantinya. rb.AddForce(force) mendorong benda dengan sebuah gaya, yaitu Vector3 dalam satuan newton. Gaya tidak menetapkan kecepatan: gaya mempercepat benda selama kamu terus menerapkannya, sebesar gaya dibagi massa setiap detik. Berhenti mendorong, dan benda akan terus bergerak dengan kecepatan yang dimilikinya.

Hovercraft ini (2 kg) memiliki pendorong: selama tombol panah atas ditekan, gaya sebesar thrust mendorongnya ke depan, searah +z. Dengan thrust sebesar 12, kecepatannya bertambah 12 / 2 = 6 m/s setiap detik:

public float thrust = 12f;
private Rigidbody rb;

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

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

Gaya diterapkan di FixedUpdate(), yang dipanggil Unity sebelum setiap langkah fisika, 50 kali per detik (pelajaran 4 menjelaskan alasannya). Baris tersebut tidak menggunakan Time.deltaTime: AddForce sudah membagi gaya ke sepanjang langkah, dan mengalikannya dengan Time.deltaTime akan membuat dorongannya 50 kali lebih lemah. Di tanah, gesekan memberikan dorongan balik, sehingga gaya kecil mungkin sama sekali tidak mampu menggerakkan kotak yang berat.

challenge icon

Tantangan

Mudah

Puck di arena es memiliki Rigidbody, dan es tidak memiliki gesekan. Dorong puck dengan tombol panah: sumbu Horizontal mendorongnya sepanjang x dan sumbu Vertical sepanjang z, dengan gaya sebesar push (4 di Inspector).

Dorong puck hanya dengan gaya agar puck terus meluncur saat kamu melepas tombol. Tekan Play, arahkan puck mengelilingi arena, lalu tekan Check.

Coba sendiri

using UnityEngine;

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

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

    void FixedUpdate()
    {
        // push keping hoki: Horizontal sepanjang sumbu x, Vertical sepanjang sumbu z
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Fisika dan Gameplay