Time.deltaTime

public static float deltaTime;


Açıklama
Son kareden mevcut kareye kadar geçen süreyi saniye cinsinden ifade eder (Salt Okunur). Bu, MonoBehaviour.FixedUpdate içinden çağrıldığında, Time.fixedDeltaTime değerini döndürür. deltaTime için maksimum değer Time.maximumDeltaTime tarafından tanımlanmıştır. MonoBehaviour.OnGUI içindeki deltaTime güvenilir değildir, çünkü Unity bunu kare başına birden fazla kez çağırabilir.

Aşağıdaki örnek, bir GameObject'i z ekseni etrafında sabit bir hızda döndürür. Bu özelliğin diğer Zaman özellikleriyle nasıl ilişkili olduğunu öğrenmek için Kullanıcı Kılavuzu'ndaki Zaman ve Kare Hızı Yönetimi bölümüne bakın.

using UnityEngine;

// z ekseni etrafında sabit bir hızda döndürme
public class ConstantRotation : MonoBehaviour
{
    public float degreesPerSecond = 2.0f;

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


Aşağıdaki örnek bir zamanlayıcı uygular. Zamanlayıcı her karede deltaTime ekler. Örnek, zamanlayıcı değerini gösterir ve 2 saniyeye ulaştığında sıfırlar. Time.timeScale, zamanın geçiş hızını ve zamanlayıcının ne kadar hızlı sıfırlandığını kontrol eder.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// Time.deltaTime örneği.
// İki saniye bekleyin ve beklenen zamanı gösterin.
// Bu genellikle 2 saniyenin hemen ötesindedir.
// Zamanın hızının artırılmasına veya azaltılmasına izin verin.
// 0.5 ile 2.0 arasında değişebilir. Bu değişiklikler yalnızca zamanlayıcı
// yeniden başladığında gerçekleşir.

public class ScriptExample : MonoBehaviour
{
    private float waitTime = 2.0f;
    private float timer = 0.0f;
    private float visualTime = 0.0f;
    private int width, height;
    private float value = 10.0f;
    private float scrollBar = 1.0f;

    void Awake()
    {
        width = Screen.width;
        height = Screen.height;
        Time.timeScale = scrollBar;
    }

    void Update()
    {
        timer += Time.deltaTime;

        // 2 saniyeyi aşıp aşmadığımızı kontrol edin.
        // İkiyi çıkarmak, sıfırlamaktan daha doğrudur.
        if (timer > waitTime)
        {
            visualTime = timer;
            // Kaydedilen 2 saniyeyi çıkarın.
            timer = timer - waitTime;
            Time.timeScale = scrollBar;
        }
    }

    void OnGUI()
    {
        GUIStyle sliderDetails = new GUIStyle(GUI.skin.GetStyle("horizontalSlider"));
        GUIStyle sliderThumbDetails = new GUIStyle
        (GUI.skin.GetStyle("horizontalSliderThumb"));
        GUIStyle labelDetails = new GUIStyle(GUI.skin.GetStyle("label"));

        // Yazı tiplerinin boyutunu ve kaydırıcının genişliğini/yüksekliğini ayarlayın.
        labelDetails.fontSize = 6 * (width / 200);
        sliderDetails.fixedHeight = height / 32;
        sliderDetails.fontSize = 12 * (width / 200);
        sliderThumbDetails.fixedHeight = height / 32;
        sliderThumbDetails.fixedWidth = width / 32;

        // Kaydırıcıyı gösterin. Ölçeği gereken boyuttan on kat daha büyük yapın.
        value = GUI.HorizontalSlider(new Rect(width / 8, height / 4, width -
        (4 * width / 8), height - (2 * height / 4)), value, 5.0f, 20.0f, sliderDetails,
        sliderThumbDetails);

        // Kaydırıcıdan değeri gösterin. 0.5, 0.6... 1.9, 2.0 gösterildiğinden emin olun.
        float v = Mathf.RoundToInt(value) / 10.0f;
        GUI.Label(new Rect(width / 8, height / 3.25f, width - (2 * width / 8), height -
        (2 * height / 4)), "timeScale: " + v.ToString("f1"), labelDetails);
        scrollBar = v;

        // Belirli bir boyutta kaydedilen zamanı gösterin.
        labelDetails.fontSize = 14 * (width / 200);
        GUI.Label(new Rect(width / 8, height / 2, width - (2 * width / 8), height -
        (2 * height / 4)), "Timer value is: " + visualTime.ToString("f4") + " seconds.",
        labelDetails);
    }
}


Bu blog Unity Docs'un Türkçeye çevrilmiş halidir.

Yorumlar

Bu blogdaki popüler yayınlar

Important Classes - Vectors

RequireComponent

Important Classes - GameObject