Değişkenleri Blueprint’te Göstermek
In the Class Defaults
Kodun içine gömülmüş değişkenleri ayarlamak için her seferinde kodla oynamak pratik bir iş değil. Unreal bize bu konuda bir esneklik sağlıyor. Değişkenin önüne ekleyeceğimiz UPROPERTY macrosu ile değişkeni blueprint içinde ya da nesne üzerinde değiştirmek mümkün.
UPROPERTY(EditDefaultsOnly)
float genlik = 0.25;
UPROPERTY(EditInstanceOnly)
float frekans = 2;
UPROPERTY(EditAnywhere)
float damage = 100; C++- EditDefaultsOnly : Parametremizi sadece bluprint içinde değiştirebiliriz. Bu değişiklik blueprint’ten üretilecek tüm instance’ları kapsar.
- EditInstanceOnly : Parametremizi sadece instancelarda değiştirebiliriz. Fakat blueprint üzerinde değişiklik yapamayız
- EditAnywhere : Bu ise diğer ikisinin bir kombinasyonudur. Parametremizi hem blueprint içerisde hem de tüm instance’larda değiştirebiliriz.
Eğer parametremizi read-only yapmak istersek: Edit yerine Visible kelimesini kullanmalıyız:
UPROPERTY(VisibleDefaultsOnly)
UPROPERTY(VisibleInstacenOnly)
UPROPERTY(VisibleAnywhere)C++

In the Event Graph
Şuana kadar yaptığımız şeyleri ancak sağ taraftaki details panelde görmek mümkündür. Eğer event graph içinde bu değişkenleri kullanmak istiyorsak aşağıdaki keywordleri kullanabiliriz:
UPROPERTY(BlueprintReadOnly)
UPROPERTY(BlueprintReadWrite)C++- BlueprintReadOnly : ile değişkene ait getter’ı kullanabiliriz (yani değerini okuyabiliriz). Fakat setter kullanamayız yani değişkeni değiştiremeyiz.
- BlueprintReadWrite : Hem getter hem setter kullanabiliriz. Yani

Eğer değişkenimizi sol panelde göremiyorsak:

Private Access
Normalde private: specifier’ı altında eventgraph’a değişkenlerimizi expose edemiyoruz. Ya public ya da protected olması gerekli. Fakat biz eğer illa ki private olsun istiyorsak bunun için “AllowPrivateAccess” meta etiketini kullanmamız gerekli:
private:
UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (AllowPrivateAccess = true))
int money;C++Category
Oyunumuzu geliştirirken birden fazla değişkeni blueprint’e aktarmak isteyebiliriz. Üç, beş, on derken bir noktada dağınıklık oluşacaktır ve bu dağınıklığı önlemek için “catergory” kelimesini kullanabiliriz:
UPROPERTY(EdityAnywhere, BlueprintReadWrite, Category = "ABC")C++Fonksiyonları Blueprint’te Göstermek
Değişkenleri aktarabildiğimiz gibi fonksiyonlarımızı da blueprint’e aktarabaliriz:
- BlueprintCallable : Herhangi bir fonksiyonu blueprint callable yapabiliriz. Callable fonksiyonlarda Execute pinleri (ok pinleri) bulunur.
- BlueprintPure : Eğer bir fonksiyon sınıf içindeki herhangi bir durumu/state değiştirmiyorsa callable yapılabilir. Yani nesne nin önceki ve sonraki durumu,, değişkenleri fonksiyonu değiştirince aynı ise callable yapabiliyoruz. Bir nevi C++’daki const fonksiyonlar gibi düşünebilirsiniz. Sınıfın internal yapısında bir değişiklik yapmaz.
UFUNCTION(BlueprintCallable)
int32 MaxOfThree(int32 A, int32 B, int32 C);
// veya
UFUNCTION(BlueprintPure)
int32 MaxOfThree(int32 A, int32 B, int32 C);C++
Leave a Reply