Menu
CoddyTech

Kecepatan

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

rb.linearVelocity menunjukkan bagaimana benda bergerak saat ini: sebuah Vector3 dalam meter per detik sepanjang sumbu x, y, dan z. Dengan membacanya, kamu bisa mengetahui ke mana benda bergerak, dan rb.linearVelocity.magnitude adalah kecepatannya. Mengaturnya langsung mengubah gerakan, tanpa peningkatan bertahap dan tanpa melibatkan massa: kotak 1 kg dan brankas 50 kg yang diatur ke 2 m/s sama-sama bergerak tepat pada 2 m/s mulai langkah fisika berikutnya. Gravitasi, gesekan, dan benturan tetap memengaruhinya setelah itu.

Kart ini melaju ke depan tepat pada cruise m/s. Kart ini menyalin velocity, hanya mengubah z, lalu menetapkannya kembali, sehingga nilai y yang diberikan gravitasi tetap ada dan kart masih jatuh dari ujung tanjakan:

void FixedUpdate()
{
    Vector3 vel = rb.linearVelocity;
    vel.z = cruise;            // maju dengan kecepatan tepat cruise m/s
    rb.linearVelocity = vel;   // y tetap seperti akibat gravitasi
}

Jika y juga diatur ke 0, kecepatan akibat gravitasi akan hilang pada setiap langkah, dan kart akan melayang turun dari tanjakan alih-alih jatuh. Sebelum Unity 6, property ini bernama velocity. Tutorial lama masih menulis rb.velocity: di Unity 6, kode ini tetap bisa dikompilasi, dengan peringatan bahwa velocity sudah usang dan namanya telah diubah menjadi linearVelocity. drag juga diubah menjadi linearDamping dengan cara yang sama. Gunakan nama yang baru.

challenge icon

Tantangan

Mudah

Robot berjalan di atas platform yang ditinggikan. Buat tombol panah menggerakkannya tepat speed m/s (3 di Inspector): kiri dan kanan sepanjang sumbu x, atas dan bawah sepanjang sumbu z, dengan menggunakan sumbu mentah agar tidak ada efek perlambatan.

  • Jika tidak ada tombol panah yang ditekan, robot langsung diam.
  • Gravitasi tetap bekerja: jika berjalan melewati tepi, robot jatuh ke tanah di bawahnya.

Tekan Play dan gerakkan robot melewati tepi, lalu tekan Check.

Coba sendiri

using UnityEngine;

public class RobotWalk : MonoBehaviour
{
    public float speed = 3f;
    private Rigidbody rb;

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

    void FixedUpdate()
    {
        // Gerakkan robot dengan tombol panah pada kecepatan tepat sebesar speed, sambil mempertahankan nilai y akibat gravitasi
    }
}
quiz iconUji dirimu

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

Semua pelajaran di Fisika dan Gameplay