Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
bCanEverTick ==?
#1
~~~~.bCanEverTick = true / false

Canevertick in true yada false neyi ifade ediyor? False olduğu zaman nasıl çalışıyor? Yada hangi durumlarda false yapılmalı?
Ara
Cevapla
#2
(12-09-2020, Saat: 09:21)emin2045 Adlı Kullanıcıdan Alıntı:  ~~~~.bCanEverTick = true / false

Canevertick in true yada false neyi ifade ediyor? False olduğu zaman nasıl çalışıyor? Yada hangi durumlarda false yapılmalı?

Tüm oyunlar aslında programlama mantığının en temelinde olduğu gibi sadece büyük bir döngüden oluşuyor. Bu döngüye game loop yani "oyun döngüsü" deniyor. Eğer elimizde UE4 olmasaydı sıfırdan bir oyun yazmaya kalksaydık, ya da kendi game engine imizi yapıyor olsaydık bu game loop u biz kendimiz yapacaktık ama UE4 te bu engine içinde yapılmış ve arka planda sürekli çalışıyor. Biz engine kullanmadan kendi oyunumuzu yapacak olsaydık bu loop basit çe şöyle bir şey olackatı :
    
     1 : Döngü Başlangıcı
     2 : Kullanıcı girdilerini al
     3 : Tüm objelerin nerede olması gerektiğini hesapla
     4 : Tüm objeler hesaplandığında üst üste iç içe giren bir şeyler varmı kontrol et varsa alarm ver ya da geri hesap yap ya da girme yoksa olduğu gibi kalsın.
     5 : Sahnedeki tüm objeleri yeni yerlerinde ekrana çizdir ve görüntüle (1 kare oluştu )
     6 : Oyun devam ediyor mu kontrol et
     7 : Eğer devam ediyorsa 1 e dön  etmiyorsa ÇIK !


 Bir döngü böyle işliyor. CPU yani işlemci hızına göre bu loop 0.001 saniye de süre bilir 0.029 saniye de süre bilir kimse kesin olarak söyleyemez ama bir şekilde bu loop saniyenin bilmem kaçta kaçında bir kere dönecek şekilde çalışacak ve oyun bitene kadar milyarlarca kez çalışacak.
  Bu loopun yani döngünün her seferine bir "Tick" deniyor. Yani saatlerde nasıl saniye çubuğu tık liyor oyunda böyle tıklıyor. Burda bir diğer husus her döngü aynı sürede mı bitecek. Hayır buda mümkün değil. Her döngü seferinde bilgisayarda arka plan işleri değişebilir döngü içinde yapılan işlerin süreleri değişebilir buyuzden her döngü seferi farklı zaman alacaktır. Buda tick fonksiyonunun parametresi deltatime yani son tick ten bu yana ne kadar zaman geçti parametresi ile alınıyor.
  Eğer bir Actor bu her döngü hamlesinde kendisine özel bir şeyler yapması gerekiyorsa onun tick fonksiyonunu yazııyoruz ve bCanEverTick i true yapıyoruz ki engine ve döngü bundan haberi olsun ve bu Actorun tickini sıralamaya alıp 2 ile 3 üncü hamle arasında bir yerlerde çalıştırsın.
  Peki neden sahnedeki herşey otomatik tick fonksiyonunu eklemiyorda  biz canevertick i true yaparak bildiriyoruz. Çünkü burası hassas alan. Gereksiz eklediğimiz herşey oyunun ana döngüsünü kökünden ve direk olarak etkiler ve uzamasına yol açar. Döngüye her frame yani her kare işletilecek gereksiz bir fonksiyon neden eklensinki. Mesela obje karakterin elindeki bir kılıç diyelim. Bu kılıç zaten elinde yapışık duruyor. Bir şey yapmıyoruz her karede döngüde. Neden tick fonksiyonu kullanacağız ki. Kapatırız.
 Ancak diyelimki bu karakterin kafasının üstünde cisim varmi yokmu ( mesela çatı gibi)kontrol etmemiz gerekiyor o zaman mecbur karakterin tick  i açıcaz her frame mecbur trace ile kontrol edeceğiz.
  Kolay gelsin
Ara
Cevapla
 


Hızlı Menü:


Unreal Engine Türkiye

This forum is community driven and supported by voluntary community members. It has nothing to do with Epic Games.

Bu site sadece destek amaçlıdır. Epic Games ile bir ilgisi yoktur.