Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
&APawn::FuncName(...)
#1
PlayerInputComponent->BindAxis(...,....,&ACharacter::Jump)

Inputu bind ederken & lı bir ifade kullanıyoruz. Bu fonksiyonun referansı tam olarak nasıl çalışmasını sağlıyor kafamda tam oturmadı, anlatabilirseniz memnun olurum.
Ara
Cevapla
#2
(11-09-2020, Saat: 18:59)emin2045 Adlı Kullanıcıdan Alıntı:  PlayerInputComponent->BindAxis(...,....,&ACharacter::Jump)

Inputu bind ederken & lı bir ifade kullanıyoruz. Bu fonksiyonun referansı tam olarak nasıl çalışmasını sağlıyor kafamda tam oturmadı, anlatabilirseniz memnun olurum.

Mesela :
     PlayerInputComponent->BindAction("Jump", IE_Pressed, this, &ACharacter::Jump);

Kullanıcı girdilerini yönetmekle sorumlu olan PlayerInputComponent ta,   "Jump" adındaki delegate  ( Bunları işaret fişeği gibi düşün. Önceden istediğin yerden buna fonksiyonları bağlıyorsun. Bir yerden bu işaret fişeği ateşlendiğinde ve görüldüğünde bağlı olan tüm fonksiyonlar nerede olurlarsa olsunlar çalışmaya başlıyorlar)  için klavye tuşune basılma anında yani IE_Pressed da, bu class ın instance ında (  burdaki this bunu ifade ediyor sonra gelecek fonksiyonun nerede olduğu nerede bulunacağını gösteriyor)  ACharacter::Jump adlı fonksiyon bağlanıyor ya da atanıyor. Yani artık Jump delegate i bir yerde ateşlendiğinde bu fonksiyon da diğer bağlı fonksiyonlar ile birlikte ateşlenip çalışmaya başlayacak.

 Basit olarak &func konusuna bakarsak:Normal C deki fonksiyon pointerları konusu. Fonksiyonun adresini bir değer olarak  kullanıyoruz ve parametre olarak BindAxis fonksiyonuna geçiriyoruz. Bu fonksiyonda kendi içinde, verilen parametre fonksiyonunu, içerisinde delegate e bağlıyor (bind yapıyor.) Konu çok boyutlu ve derin bir konu. Delegatesler ile ilgili şu dökümana bakabilirsin.

  https://docs.unrealengine.com/en-US/Prog...index.html

Fonksiyon Pointer lar ile  ilgili şuraya bakabilirsin:
 
 https://www.cprogramming.com/tutorial/fu...nters.html

   Not: Bu tarz kodların altta yatan mantığını çok anlamamıza gerek yok. Kullanmayı bilmek yeterli. Ancak kendi delegate lerimizi yazmayı bilmeliyiz.
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.