Menu
CoddyTech

Berputar Setiap Detik

Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 11 dari 85.

transform.Rotate(x, y, z) memutar GameObject sebanyak derajat tersebut pada setiap sumbunya. Jika dipanggil di Update(), objek akan berputar sedikit setiap frame, sehingga terus berputar.

Namun, berapa banyak frame dalam satu detik? Di komputer yang cepat mungkin ada 120, sedangkan di ponsel mungkin ada 30. transform.Rotate(0, 0, 5) biasa akan membuat objek berputar empat kali lebih cepat di komputer yang lebih cepat. Solusi Unity adalah Time.deltaTime: jumlah detik yang berlalu sejak frame terakhir. Kalikan kecepatan dengan nilai ini, maka kecepatan tersebut berarti per detik di setiap perangkat.

Di sini, roda berputar pada sumbu z-nya, 45 derajat setiap detik:

public float speed = 45f;

void Update()
{
    transform.Rotate(0, 0, speed * Time.deltaTime);
}

Pada 60 frame per detik, Time.deltaTime bernilai sekitar 0.0167, sehingga setiap frame berputar sebesar 45 * 0.0167, atau sekitar 0.75 derajat. Jika dijumlahkan, 60 putaran kecil itu menjadi 45 derajat. Pada 30 frame per detik, setiap frame berputar dua kali lebih jauh, dan jumlahnya tetap 45 derajat dalam satu detik.

challenge icon

Tantangan

Mudah

Buat kubus berputar pada sumbu y dengan kecepatan speed derajat per detik.

  1. Di dalam Update(), panggil transform.Rotate(x, y, z).
  2. Letakkan speed * Time.deltaTime pada angka tengah, untuk y, dan 0 untuk x dan z. Roda di atas berputar pada sumbu z; kubus ini berputar pada sumbu y.

Tekan tombol “Main”: kubus berputar seperempat putaran setiap detik. Lalu tekan tombol “Periksa”.

Coba sendiri

using UnityEngine;

public class Spinner : MonoBehaviour
{
    public float speed = 90f;

    void Update()
    {
        // Putar kubus pada sumbu y-nya di sini
    }
}

Semua pelajaran di Dasar-Dasar Scripting Unity

Latihan sendiri: Playground Unity