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