Pembaruan vs Pembaruan Tetap

Dalam Unity, fungsi Update dan FixedUpdate digunakan untuk memperbarui behavior objek dalam sebuah adegan, dan meskipun keduanya memiliki tujuan serupa, terdapat perbedaan utama di antara keduanya..

'Update'

Fungsi 'Update' dipanggil sekali per frame dan ideal untuk menangani input, memperbarui objek posisi, dan melakukan sebagian besar tugas tujuan umum. Ini tidak bergantung pada kecepatan bingkai, artinya waktu eksekusi dapat bervariasi tergantung pada kinerja.

void Update()
{
    // Input handling
    float horizontalInput = Input.GetAxis("Horizontal");
    float verticalInput = Input.GetAxis("Vertical");
    
    // Movement
    Vector3 movement = new Vector3(horizontalInput, 0, verticalInput);
    transform.Translate(movement * speed * Time.deltaTime);
    
    // General-purpose tasks
    // ...
}

Pada contoh di atas, kita mengambil masukan dari sumbu horizontal dan vertikal dan menggunakannya untuk mengontrol pergerakan objek. Metode 'Translate' digunakan untuk menggerakkan benda ke arah yang ditentukan dengan kecepatan konstan. Tugas tujuan umum juga dapat dilakukan dalam fungsi 'Update'.

'FixedUpdate'

Fungsi 'FixedUpdate' dipanggil pada interval waktu yang tetap, sehingga cocok untuk menangani perhitungan yang berhubungan dengan fisika. Ini independen terhadap kecepatan bingkai, memastikan perilaku yang konsisten di berbagai perangkat dan kecepatan bingkai.

void FixedUpdate()
{
    // Physics calculations
    rb.AddForce(transform.forward * forceMagnitude);
    
    // Other physics-related tasks
    // ...
}

Pada contoh di atas, kita menerapkan gaya konstan pada komponen Benda Tegar dalam arah maju benda. Penggunaan 'FixedUpdate' memastikan bahwa penghitungan fisika terjadi pada kecepatan tetap, berapa pun kecepatan bingkainya. Hal ini penting untuk menjaga kestabilan simulasi fisika.

'Update' vs 'FixedUpdate'

Perbedaan utama antara fungsi 'Update' dan 'FixedUpdate':

  • 'Update' dipanggil sekali per frame, sedangkan FixedUpdate dipanggil pada interval waktu yang tetap.
  • 'Update' bergantung pada kecepatan bingkai, sedangkan FixedUpdate tidak bergantung pada kecepatan bingkai.
  • 'Update' cocok untuk sebagian besar tugas umum, termasuk penanganan input, pergerakan objek, dan operasi yang tidak berhubungan dengan fisika.
  • FixedUpdate dirancang khusus untuk perhitungan yang berhubungan dengan fisika, seperti menerapkan gaya, menyesuaikan sifat benda kaku, dan melakukan operasi berbasis fisika lainnya.

Kesimpulan

Penting untuk dicatat bahwa 'Update' dan 'FixedUpdate' dapat hidup berdampingan dalam skrip yang sama, sehingga memungkinkan untuk memisahkan kode terkait fisika dari kode tujuan umum lainnya. Memahami perbedaannya dan menggunakan fungsi yang sesuai di setiap konteks membantu memastikan perilaku yang lancar dan konsisten dalam proyek Unity.

Artikel yang Disarankan
Panduan Perilaku Mono dalam Kesatuan
Menggunakan Pengontrol Animator Runtime di Unity
Daftar Persatuan Kata Kunci yang Berguna di C#
Menerapkan Input Keyboard dan Mouse di Unity
Memahami Fungsi dan Panggilan Metode
Pengantar Bahasa Scripting Unity C#
Membuat Pernyataan Bersyarat (if-else) dalam Kode Unity