使用 SetPawn 导致访问冲突 UE4 C++

问题描述

这是我的问题,我刚刚在我的代码添加了 Dynamic_Multicast_delegate SetPawn 似乎是用于监听功能的最佳方法,但是当我点击播放时,我在第 13 行的 BeginPlay() 中使用 PlayerController 收到了访问违规转储文件我看到 FindComponentByClass 是导致未处理异常方法,说明 this->Pawn is nullptr 这里是 SetPawn void atankAIController::SetPawn(APawn* InPawn) { Super::SetPawn(InPawn); if (InPawn) { auto PossesedTank = Cast<atank>(InPawn); if (!ensure(PossesedTank)) { return; } PossesedTank->OnTankDeath.AddUniqueDynamic(this,&atankPlayerController::OnPossesedTankDeath); } }

代码

解决方法

所以我犯了一个错误,没有使用 Super::SetPawn(InPawn);在 PlayerController 内