Şimdi Ara

Unity Time.deltaTime nedir nasıl çalışır?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
9
Cevap
0
Favori
9.859
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
7 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Time.deltaTime'ı kullansamda nasıl çalıştığı konusunda kafam bulanıktı.
    Merak eden başkaları varsa anlamalarını kolaylaştırmak için bir yazı yazayım dedim.
    :::
    Unityde Time.deltaTime bilgisayarınızın bir önceki frame'i tamamlaması için gereken süreyi veren salt okunur bir değişkendir.
    Ne İşe Yarar?

    Unityde normalde çalıştırdığınız fonksiyonlar bilgisayarın çalışma hızına endekslidir.deltaTime ile performanstan bağımsız olarak fonksiyon çalıştırabilirsiniz. Örneğin bir nesneyi ileriye hareket ettirecekseniz deltaTime kullanmadan hareket ettireceğiniz bu cisim yavaşlayıp hızlanacaktır çünkü ileri gitme komutu bilgisayarınız hızlı çalıştıkça hızlıca, yavaş çalıştıkça yavaşça verilecektir.
    deltaTime ile sadece zamanı baz alarak çalıştıracağınız komutu aynı aralıklarla çalıştırırsınız.

    Peki Nasıl Çalışır?

    Bilgisayarınızın 10 frame aldığını düşünelim. time.deltaTime'ı okuyunca 1/10 = 0.1 döndürecektir.
    Time.deltaTime'ı tekrar okuyunca çalışma hızı 5 frame'e düşerse time.deltaTime 0.2 döndürecektir.

    Bizim de bir küp nesnesini hareket ettirmek istediğimizi varsayalım. Küp nesnesine şu komutu verelim = transform.translate(10*Time.deltaTime,0,0) (10 metre ileri git)
    Küp birinci okumada 10*0.1 = 1 metre ileri gidecektir.
    Küp ikinci okumada 10*0.2 = 2 metre ileri gidecektir.
    Bu sayede eşit hızla ileri gitmiş olacak.

    Neden eşit hızla ileri gittiklerini anlayamadıysanız şöyle açıklayayım: delta.Time'ı ilk okumamızda bilgisayarımız hızlı çalıştı ve 0.1 döndürdü ancak ikinci okumamızda yavaşladı ve 0.2 döndürdü,
    bizde bilgisayarımızın çalışma hızı yarıya düştüğü için ileri gitme komutunu 2 kat yüksek değerle verdik.bunu Time.deltaTime ile yaptık.


    Özetle Time.deltaTime komutlarımızı bilgisayarımız hızlı çalıştıkça daha düşük değerle vermemizi, bilgisayarımız yavaş çalıştıkça daha yüksek değerle vermemizi sağlayarak ortalama olarak aynı değerde çalışmasını sağlar.
    https://www.gercekteolan.com/2018/08/unity-timedeltatime-nedir.html







  • Ben de daha açıklayıcı olması açısından küçük bir ekleme yapayım, 10 frame , 5 frame dediğimiz saniyede aldığımız frame sayısı o yüzden time.deltatime değeri 1/10 = .1 veya 1/5 = .2 verdiğini söyledik ilk 10 frame olan örnekte obje her frame başı 10*0.1 = 1 birim hareket edecek ve 10 frame sonra yani 1 saniye sonra obje 10 birim hareket edecek. 5 frame olan örnekte de yine her frame 10 * 0.2 = 2 birim hareket edecek 5 frame sonra yani 1 saniye sonra 10 birim hareket etmiş olacak obje yani her 2 durumda da veya oluşabilecek farklı durumlarda da obje frame oranından bağımsız olarak 10 birim hareket etmiş olacak 1 saniyede.
  • Ben de daha açıklayıcı olması açısından küçük bir ekleme yapayım, 10 frame , 5 frame dediğimiz saniyede aldığımız frame sayısı o yüzden time.deltatime değeri 1/10 = .1 veya 1/5 = .2 verdiğini söyledik ilk 10 frame olan örnekte obje her frame başı 10*0.1 = 1 birim hareket edecek ve 10 frame sonra yani 1 saniye sonra obje 10 birim hareket edecek. 5 frame olan örnekte de yine her frame 10 * 0.2 = 2 birim hareket edecek 5 frame sonra yani 1 saniye sonra 10 birim hareket etmiş olacak obje yani her 2 durumda da veya oluşabilecek farklı durumlarda da obje frame oranından bağımsız olarak 10 birim hareket etmiş olacak 1 saniyede.
  • quote:

    Orijinalden alıntı: abasgun

    Ben de daha açıklayıcı olması açısından küçük bir ekleme yapayım, 10 frame , 5 frame dediğimiz saniyede aldığımız frame sayısı o yüzden time.deltatime değeri 1/10 = .1 veya 1/5 = .2 verdiğini söyledik ilk 10 frame olan örnekte obje her frame başı 10*0.1 = 1 birim hareket edecek ve 10 frame sonra yani 1 saniye sonra obje 10 birim hareket edecek. 5 frame olan örnekte de yine her frame 10 * 0.2 = 2 birim hareket edecek 5 frame sonra yani 1 saniye sonra 10 birim hareket etmiş olacak obje yani her 2 durumda da veya oluşabilecek farklı durumlarda da obje frame oranından bağımsız olarak 10 birim hareket etmiş olacak 1 saniyede.
    Bende onu demek istedim hocam eklemeniz için teşekkür ederim. Yazımı daha anlaşılır şekilde değiştiririm bir ara.
  • Aga kusura bakma ama Time.deltatime'i anlamak için bu kadar zorlandıysan senin daha çok işin var, benim ilk başladığımda en çok kullandığım şey time.deltatime'dı
  • nereden başlayayım anlatmaya. daha uzun şeyler hakkında yazmaya zamanım yok kolaydan başladım ayrıca yazım konusunda tecrübe edinmiş oluyorum

    < Bu ileti DH mobil uygulamasından atıldı >
  • teşekkürler reyis. özellikle sitedeki gif çok işime yaradı.
  • quote:

    Orijinalden alıntı: taffijun

    teşekkürler reyis. özellikle sitedeki gif çok işime yaradı.
    önemli değil. daha ileri konuları falan anlatmayı düşünüyordum aslında event system falan ama daha çok c# ile ilgili onlar. daha da bir şeyler yazacaktım ama site formatıyla ismi aklıma yatmadı, webmaster'lıktan pek anlamıyorum da, android için uygulama şeklinde hazırlarım belki ilerde.
  • Progressive288 P kullanıcısına yanıt

    Valla hayatımda doğru düzgün yorum yazmam ama bu yorumun ne kadar gerizekalı,egoist ve bi halttan anlamayan insan olduğunu anlattı bana. Mümkünse kendi ezik fikirlerini kendine sakla :)

  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.