Menu
CoddyTech

Her Saniye Dön

Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 11 / 85.

transform.Rotate(x, y, z), bir GameObject'i eksenlerinin her biri etrafında belirtilen derece kadar döndürür. Update() içinde çağrıldığında her karede biraz döner, böylece nesne dönmeye devam eder.

Peki bir saniyede kaç kare vardır? Hızlı bir bilgisayarda belki 120, bir telefonda belki 30. Sade bir transform.Rotate(0, 0, 5), hızlı bilgisayarda dört kat daha hızlı döner. Unity'nin çözümü Time.deltaTime: son kareden beri geçen saniye miktarı. Bir hızı bununla çarptığında, hız her cihazda saniye başına anlamına gelir.

Burada bir tekerlek, z ekseni etrafında saniyede 45 derece döner:

public float speed = 45f;

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

Saniyede 60 karede Time.deltaTime yaklaşık 0.0167 olur; bu nedenle her karede 45 * 0.0167, yani yaklaşık 0.75 derece döner ve bu değerlerden 60 tanesi 45 eder. Saniyede 30 karede her karede iki katı kadar döner ve bir saniyenin toplamı yine 45 olur.

challenge icon

Görev

Kolay

Küpü, y ekseni etrafında saniyede speed derece döndür.

  1. Update() içinde transform.Rotate(x, y, z) çağrısını yap.
  2. y için ortadaki sayıya speed * Time.deltaTime, x ve z için 0 koy. Yukarıdaki tekerlek z ekseni etrafında dönüyordu; bu küp y ekseni etrafında dönüyor.

“Oyna” düğmesine bas: küp her saniye çeyrek tur döner. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

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

    void Update()
    {
        // Küpü burada y ekseni etrafında döndür
    }
}

Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground