Şimdi Ara

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

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
9
Cevap
0
Favori
10.444
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.
    Yapay Zekanın Yanıtı

    Unity Time.deltaTime Nedir ve Nasıl Çalışır?

    Unity'de Time.deltaTime, o anki kare ile bir önceki kare arasındaki geçen süreyi saniye cinsinden temsil eden bir değişkendir. Oyun döngüsünde oyun nesnelerini hareket ettirmek, animasyonları kontrol etmek ve zamanla ilgili hesaplamalar yapmak için kullanılır.

    Time.deltaTime'ın İşleyişi:

    • Unity oyun döngüsünün her karesi işlenirken Time.deltaTime hesaplanır.
    • Geçerli kare ile bir önceki kare arasındaki geçen süre Time.timeScale ile çarpılır, bu da oyunun zaman ölçeğini kontrol etmene olanak tanır.
    • Time.deltaTime değeri, oyunun sabit bir kare hızında çalışmasını sağlamak için kullanılabilir.

    Time.deltaTime'ın Kullanım Alanları:

    • Oyun nesnelerinin her karede belirli bir hızda hareket etmesini sağlamak.
    • Animasyonları doğru bir şekilde oynatmak.
    • Zamanla ilgili hesaplamalar yapmak, örneğin fizik hesaplamaları veya yapay zeka (AI).
    • Oyunu geçici olarak duraklatmak veya yavaşlatmak için Time.timeScale ile birlikte kullanmak.

    Unity'de Bekleme Komutu:

    Time.deltaTime ile birlikte, Wait komutu belirli bir süre beklemek için kullanılabilir. Wait, saniye cinsinden bir gecikme değerini alır ve bu süre geçene kadar bekletir.

    Özet:

    Time.deltaTime, Unity'de zamanla ilgili hesaplamalar ve işlemler için çok önemli bir değişkendir. Oyun nesnelerini hareket ettirmek, animasyonları kontrol etmek ve oyunun zaman ölçeğini ayarlamak için kullanılır. Wait komutu ise, Time.deltaTime ile birlikte belirli bir süre beklemek için yararlıdır.

    Yapay Zekanın Yanıtını Genişlet
  • 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.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • 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.