【发布时间】:2019-06-09 22:57:19
【问题描述】:
我正在制作 FPS 游戏,现在正在添加机器人。我遇到了一个显示覆盖问题的函数的问题。问题在于虚空——拥有。
我没试过。
/****
*this is .h file
*****/
#pragma once
#include "CoreMinimal.h"
#include "AIController.h"
#include "Engine.h"
#include "AI_Controller.generated.h"
UCLASS()
class TEST_API AAI_Controller : public AAIController
{
GENERATED_BODY()
public:
AAI_Controller();
virtual void BeginPlay() override;
virtual void Possess(APawn* Pawn) override;
virtual void Tick(float DeltaSeconds) override;
virtual FRotator GetControlRotation() const override;
UFUNCTION()
void OnPawnDetected(const TArray<AActor*> &DetectedPawns);
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = AI)
float AISightRadius = 500.0f;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = AI)
float AISightAge = 5.0f;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = AI)
float AILoseSightRadius = AISightRadius + 50.0f;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = AI)
float AIFieldOfView = 90.0f;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = AI)
class UAISenseConfig_Sight* SightConfig;
};
我希望 void Possess 能够正常工作而不会出现任何错误,因为我在我的代码中没有发现任何错误,我认为它应该可以工作。它显示了这个错误 - 'AController::Possess':声明为'final'的函数不能被'AAI_Controller::Possess'覆盖
如果有人能解释发生了什么以及如何解决这个问题,我将不胜感激。
【问题讨论】:
-
错误说明了一切。基类函数被声明为 final,这意味着你不能覆盖它。你需要删除final,或者如果你不能,找到另一种方法来做你想做的事情。
-
但是我如何删除final呢?
-
我猜你不会。必须有另一种方法来做你想做的事。
-
仍然,感谢您的帮助。我这周必须完成这个代码部分,但我遇到了这个错误......我希望有人能帮忙解决这个问题
-
谁编写了
AAIController类?
标签: c++ class void unreal-engine4