C++ UE4 C++;在初始化HUDClass后获取对它的引用

C++ UE4 C++;在初始化HUDClass后获取对它的引用,c++,unreal-engine4,unreal-development-kit,C++,Unreal Engine4,Unreal Development Kit,在我的游戏模式基类中,我创建了一个分配给类的对象。HUD工作正常,但我似乎无法访问任何需要发回代码的成员函数。在这一点上,我已经尝试了所有的方法,我完全被卡住了。无论我做什么,指向对象的指针似乎都变为空。我使用的是UE4.25.3 void AGameModeBase::InitGame() { HUDClass = AKeyHUD::StaticClass(); } 以下是我尝试过的一些方法,它们除了访问不需要内部变量的成员之外都不起作用。我包括了最有前途的两个。无论我尝试什么

在我的游戏模式基类中,我创建了一个分配给类的对象。HUD工作正常,但我似乎无法访问任何需要发回代码的成员函数。在这一点上,我已经尝试了所有的方法,我完全被卡住了。无论我做什么,指向对象的指针似乎都变为空。我使用的是UE4.25.3

void AGameModeBase::InitGame() {
       HUDClass = AKeyHUD::StaticClass();
}
以下是我尝试过的一些方法,它们除了访问不需要内部变量的成员之外都不起作用。我包括了最有前途的两个。无论我尝试什么,if(defaultHUD)语句始终返回false,如果我尝试访问它,它将崩溃UE4

defaultHUD = HUDClass->GetClass();

defaultHUD = Cast<AKeyHUD>(HUDClass);
defaultHUD=HUDClass->GetClass();
defaultHUD=Cast(HUD等级);

<>如果有人能帮助我,那将是非常感谢的。

< P>我找到了一个解决方案,从游戏模式基类中获得任何一个演员对象和HUD的引用,这在C++引擎中使用了不实引擎4.25。使用将要初始化的位置初始化
HUDClass
DefaultPawnClass
后(我个人将它们放在游戏模式基本构造函数中):

然后,为了获取对HUD的引用,以下代码假定您的HUD类名为
AMyHUD
,并且可以从许多地方调用,包括
StartPlay()

然后,
defaultPawn
defaultHUD
都可以直接调用和使用,例如:

defaultPawn->yourActorFunction()


我希望这有助于节省人们的时间,并且很有用。

最下面的代码片段是什么类的?游戏模式类?底部代码也在游戏模式库中,尽管我找到了一个解决问题的方法,我现在将发布,谢谢。
HUDClass = AMyHUD::StaticClass();
DefaultPawnClass = APlayerPawn::StaticClass();
defaultHUD = Cast<AMyHUD>(UGameplayStatics::GetPlayerController(this,0)->GetHUD());
TArray<AActor*> FoundPawns;
UGameplayStatics::GetAllActorsOfClass(GetWorld(), APlayerPawn::StaticClass(), FoundPawns);

defaultPawn = Cast<APlayerPawn>(FoundPawns[0]);