1
我在虛幻引擎4.15.0中編寫了一個多人遊戲,它幾乎可以工作,除了一條令人毛骨悚然的代碼,我無法弄清楚它的行爲。問題是我有一個從C++基類AOnlinePawn繼承的OnlinePawn Blueprint。無論何時玩家加入比賽,我都會生成此Blueprint並將其轉換爲一個數組,以便不斷更新數據。虛幻引擎C++ SpawnActor演員陣營
問題是試圖將A函數返回的代碼轉換爲AOnlinePawn *會失敗並返回null,這是一個強制轉換問題,因爲它確實會生成。
演員:
playersInstances[i] = Cast<AOnlinePawn>(GetWorld()->SpawnActor(OnlinePlayer->GeneratedClass, &position, &rotator));
藍圖參考:
static ConstructorHelpers::FObjectFinder<UBlueprint> OnlinePlayerBP(TEXT("Blueprint'/Game/Blueprints/OnlinePawn.OnlinePawn'"));
OnlinePlayer = OnlinePlayerBP.Object;
藍圖的描述,說明父類:
所以,這裏有什麼問題嗎?無論如何,我可以改進我的工作流程?有一個解決方法?
根據該文檔有[函數的非模板化版本](https://docs.unrealengine.com/latest/INT/API/Runtime/Engine/Engine/UWorld/SpawnActor/6/ index.html),但即使在那裏使用模板版本的例子,所以它看起來像這是推薦的方式 – UnholySheep
還有一件事,這行不在AOnlinePawn類空間,所以GetClass()不會工作(即使是這樣,我想生成繼承AOnlinePawn而不是AOnlinePawn本身的藍圖)。我如何才能獲得與此功能簽名匹配的OnlinePawn藍圖類的引用?順便謝謝@Moums! –
@GabrielGarcia我編輯了我的帖子,我希望它有幫助 – Moums