Time.timeScale

public static float timeScale;


Açıklama

Zamanın geçiş hızını belirler.

Bu, yavaş çekim efektleri veya uygulamanızı hızlandırmak için kullanılabilir. timeScale 1.0 olduğunda, zaman gerçek zaman kadar hızlı geçer. timeScale 0.5 olduğunda, zaman gerçek zamandan 2 kat daha yavaş geçer.

timeScale sıfıra ayarlandığında ve tüm fonksiyonlarınız kare hızı bağımsız olduğunda, uygulamanız duraklatılmış gibi davranır. Negatif değerler göz ardı edilir.

timeScale değişikliğinin yalnızca bir sonraki karelerde etkili olduğunu unutmayın. MonoBehaviour.FixedUpdate'in her karede ne sıklıkta çalıştığı timeScale'e bağlıdır. Bu nedenle, kare başına sabit sayıda FixedUpdate geri çağrısı tutmak için Time.fixedDeltaTime'i timeScale ile çarpmanız gerekir. Bu ayarlamanın istenip istenmediği oyun spesifikidir.

FixedUpdate fonksiyonları ve WaitForSeconds ile askıya alınan Coroutine'ler, timeScale sıfıra ayarlandığında çağrılmaz.

using UnityEngine;

public class Example : MonoBehaviour
{
    // Kullanıcı Fire1 düğmesine bastığında zaman ölçeğini 1 ile 0.7 arasında değiştirir.
    private float fixedDeltaTime;

    void Awake()
    {
        // fixedDeltaTime'in bir kopyasını oluşturun, varsayılan olarak 0.02f'tir, ancak
        // editörde değiştirilebilir
        this.fixedDeltaTime = Time.fixedDeltaTime;
    }

    void Update()
    {
        if (Input.GetButtonDown("Fire1"))
        {
            if (Time.timeScale == 1.0f)
                Time.timeScale = 0.7f;
            else
                Time.timeScale = 1.0f;

            // Zaman ölçeğine göre sabit delta zamanını ayarlayın
            // Sabit delta zaman şimdi her karede 0.02 gerçek zamanlı saniye olacak
            Time.fixedDeltaTime = this.fixedDeltaTime * Time.timeScale;
        }
    }
}


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

Yorumlar

Bu blogdaki popüler yayınlar

Important Classes - Vectors

RequireComponent

Important Classes - GameObject