2016-06-16 67 views
0

我有一個C++類,具有公開的UPROPERTY,它通過藍圖類擴展。我使用藍圖來設置屬性的值。虛幻引擎:訪問動態衍生的actor的藍圖實例數據

現在我想要做的是從這個藍圖類中產生一個Actor,讓我的C++代碼與在藍圖中設置的屬性一起工作。如果我從虛幻編輯器中將藍圖類的實例拖入世界,那麼所有這一切都可以很好地工作。但是,如果我動態地從默認的GameMode類中派生出這個藍圖類的actor,我可以看到該類的一個實例已添加到世界中(我在World Outliner中看到它),但是當C++代碼運行時,從藍圖設置的值不存在。

爲什麼產生不同的藍圖類(一種方法是將其從編輯器中拖拽到世界中,另一種方法通過從GameMode類中產生它)導致不同的結果?如果演員是從GameMode班衍生出來的,爲什麼我無法訪問藍圖數據?

回答

1

您確定您正在生成派生的Blueprint類的實例,而不是來自GameMode的父C++類嗎?

還要檢查當你試圖訪問成員變量時,你要將實例投射到Blueprint類而不是C++類。

如果您還沒有做到這一點,最好在所有Blueprint派生類中附加_BP或類似的東西,以確保您始終知道您正在處理的是哪個版本。

+1

請讓我知道這是否有幫助。如果是的話,也將問題標記爲回答。 – jeevcat