Arama butonu
Bu konudaki kullanıcılar: 1 misafir
7
Cevap
9841
Tıklama
7
Öne Çıkarma
Unity Time.deltaTime nedir nasıl çalışır?
A
6 yıl
Yüzbaşı
Konu Sahibi

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 ve...
Yoruma Git
Yorumun Devamı abasgun - 6 yıl +4
A
6 yıl
Çavuş

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.


Bu mesaja 1 cevap geldi.
A
6 yıl
Yüzbaşı
Konu Sahibi

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.



P
6 yıl
Çavuş

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ı


Bu mesaja 2 cevap geldi.
A
6 yıl
Yüzbaşı
Konu Sahibi

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ı >


Bu mesajda bahsedilenler: @sonici
T
5 yıl
Yüzbaşı

teşekkürler reyis. özellikle sitedeki gif çok işime yaradı.


Bu mesaja 1 cevap geldi.
A
5 yıl
Yüzbaşı
Konu Sahibi

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.



T
geçen yıl
Er

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 :)




Bu mesajda bahsedilenler: @Progressive288
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.