Merhaba topluluk! Bu yazıda size basitçe, C++ kodlarını nasıl blueprinte aktaracağınız hakkında bilgi ve bir örnek verilmiştir. Temel amaç, C++ kodlarını yazarak ekibinizdeki kişilerin yapacağı işlemleri hızlandırmaktır.
Hızlı yoldan aktarmak için;
Üye fonksiyonları aktarmak için : UFUNCTION(BlueprintCallable)
Veri üyelerini veya değişkenleri aktarmak için UPROPERTY(EditAnywhere, BlueprintReadWrite)
Makrolarını kullanarak C++ kodlarını blueprinte aktarabilirsiniz. Makroların parametleri için
UFUNCTION belirteçleri -> https://docs.unrealengine.com/en-us/Programming/UnrealArchitecture/Reference/Functions/Specifiers
UPROPERTY belirteçleri -> https://docs.unrealengine.com/en-US/Programming/UnrealArchitecture/Reference/Properties/Specifiers
Basit olarak belirtilen fonksiyonu şu şekilde aktarabilirsiniz. Öncelikle bir C++ sınıfı oluşturalım.

Basit olarak bir aktör bileşeni oluşturuyorum.

AktorBileseni adında bir ActorComponent C++ sınıfı oluşturdum. AktorBileseni.cpp ve AktorBileseni.h dosyaları UE4 tarafından yaratıldı.
aktorbileseni.h dosyasında belirtilen fonksiyonun blueprintler tarafından çağıraiblecğeini böyle ayarlıyorum.

Burada UFUNCTION hazır bulunan bir makrodur. Dikkat ederseniz sonunda noktalı virgül yoktur. İki tane parametre almıştır birincisi BlueprintCallable diğeri Category dir.
BlueprintCallable: Bu seçenek ile blueprint üzerinden bu fonksiyonu çağırabiliriz.
Catergory: Bu belirtilen fonksiyonun ilişkili olması için kategorisini belirler.

Sahneye basit bir küp attım, ve Add Component diyerek AktorBilsenini C++ kodlarını kübe ekledim. Daha sonra compile ediyoruz.(UNUTMAYIN)

Yarattığım küp üzerinde bir Blueprint oluşturdum. ("gelen menüye tamam diyebilir ya da blueprinte bir ad verebilirsiniz.")
Kübün bp içerisine giriyoruz ve ta-da!

İşte bu kadar basit! Yazdığınız çekirdek kod ile blueprintler içinde fonksiyon olarak çağırabilirsiniz.
Değişkenleri kontrol etmek. Basitçe, eğer kapsüllemeyi public olarak yaparsanız ve C++ sınıfınızın bir blueprint sınıfını oluşturursanız public olan değişkenleri blueprint içinde kullanabilirsiniz.
UPROPERTY() Makrosunu kullanmak, bu makro ile değişkenleri Blueprint ile kullanabilirsiniz. Değişik parametreler alır bakınız: https://docs.unrealengine.com/latest/INT/Programming/UnrealArchitecture/Reference/Properties/
UPROPERTY(EditAnywhere)
int32 tamsayiDegerim;
Bu C++ sınıfıdan bir blueprint sınıfı oluşturursanız bu değişkeni blueprint üzerinde değişikliğe uğratabilirsiniz.
Gelişmiş Seviye: Aşağıda vereceğim örnek kod broadcastler ile belirlenen durum gerçekleştirdiğinde aktif oluyor.

DECLARE_DYNAMIC_MULTICAST_DELEGATE(FDoorEvent); -> Burada eventleri oluşturabilmek için bir makro tanımlıyoruz
UPROPERTY(BlueprintAssignable) -> Burada iki fakrlı olay tanımlamak için bir makro tanımlıyoruz
FDoorEvent OnOpen;
UPROPERTY(BlueprintAssignable) -> Burada iki fakrlı olay tanımlamak için bir makro tanımlıyoruz
FDoorEvent OnClose;
Koddadaki şarta göre blueprint içerisinde tanımlanan iki olaydan birisi çalışır.
NOT: Şu andaki sürümde(4.14) blueprintten c++ aktarım yoktur. Fakat geliştiriciler bir sonraki sürümde bu özelliğin ekleneceğini söylemektedir.
Hızlı yoldan aktarmak için;
Üye fonksiyonları aktarmak için : UFUNCTION(BlueprintCallable)
Veri üyelerini veya değişkenleri aktarmak için UPROPERTY(EditAnywhere, BlueprintReadWrite)
Makrolarını kullanarak C++ kodlarını blueprinte aktarabilirsiniz. Makroların parametleri için
UFUNCTION belirteçleri -> https://docs.unrealengine.com/en-us/Programming/UnrealArchitecture/Reference/Functions/Specifiers
UPROPERTY belirteçleri -> https://docs.unrealengine.com/en-US/Programming/UnrealArchitecture/Reference/Properties/Specifiers
Basit olarak belirtilen fonksiyonu şu şekilde aktarabilirsiniz. Öncelikle bir C++ sınıfı oluşturalım.

Basit olarak bir aktör bileşeni oluşturuyorum.

AktorBileseni adında bir ActorComponent C++ sınıfı oluşturdum. AktorBileseni.cpp ve AktorBileseni.h dosyaları UE4 tarafından yaratıldı.
aktorbileseni.h dosyasında belirtilen fonksiyonun blueprintler tarafından çağıraiblecğeini böyle ayarlıyorum.

Burada UFUNCTION hazır bulunan bir makrodur. Dikkat ederseniz sonunda noktalı virgül yoktur. İki tane parametre almıştır birincisi BlueprintCallable diğeri Category dir.
BlueprintCallable: Bu seçenek ile blueprint üzerinden bu fonksiyonu çağırabiliriz.
Catergory: Bu belirtilen fonksiyonun ilişkili olması için kategorisini belirler.

Sahneye basit bir küp attım, ve Add Component diyerek AktorBilsenini C++ kodlarını kübe ekledim. Daha sonra compile ediyoruz.(UNUTMAYIN)

Yarattığım küp üzerinde bir Blueprint oluşturdum. ("gelen menüye tamam diyebilir ya da blueprinte bir ad verebilirsiniz.")
Kübün bp içerisine giriyoruz ve ta-da!

İşte bu kadar basit! Yazdığınız çekirdek kod ile blueprintler içinde fonksiyon olarak çağırabilirsiniz.
Değişkenleri kontrol etmek. Basitçe, eğer kapsüllemeyi public olarak yaparsanız ve C++ sınıfınızın bir blueprint sınıfını oluşturursanız public olan değişkenleri blueprint içinde kullanabilirsiniz.
UPROPERTY() Makrosunu kullanmak, bu makro ile değişkenleri Blueprint ile kullanabilirsiniz. Değişik parametreler alır bakınız: https://docs.unrealengine.com/latest/INT/Programming/UnrealArchitecture/Reference/Properties/
UPROPERTY(EditAnywhere)
int32 tamsayiDegerim;
Bu C++ sınıfıdan bir blueprint sınıfı oluşturursanız bu değişkeni blueprint üzerinde değişikliğe uğratabilirsiniz.
Gelişmiş Seviye: Aşağıda vereceğim örnek kod broadcastler ile belirlenen durum gerçekleştirdiğinde aktif oluyor.

DECLARE_DYNAMIC_MULTICAST_DELEGATE(FDoorEvent); -> Burada eventleri oluşturabilmek için bir makro tanımlıyoruz
UPROPERTY(BlueprintAssignable) -> Burada iki fakrlı olay tanımlamak için bir makro tanımlıyoruz
FDoorEvent OnOpen;
UPROPERTY(BlueprintAssignable) -> Burada iki fakrlı olay tanımlamak için bir makro tanımlıyoruz
FDoorEvent OnClose;
Koddadaki şarta göre blueprint içerisinde tanımlanan iki olaydan birisi çalışır.
NOT: Şu andaki sürümde(4.14) blueprintten c++ aktarım yoktur. Fakat geliştiriciler bir sonraki sürümde bu özelliğin ekleneceğini söylemektedir.