我在虚幻引擎 4 中创建计时器时遇到问题。问题出在 GetWorldTimerManager 中。当我对此调用设置计时器时,我收到 E0070 不完整类型错误。通常这意味着我未能包含某些内容
void ACubeFarmBlock::HandleClicked()
{
if (!bIsPlanted)
{
bIsPlanted = true;
// Change material
BlockMesh->SetMaterial(0, OrangeMaterial);
// Determine when to harvest
GetWorldTimerManager().SetTimer(HarvestTimerHandle, &ACubeFarmBlock::Harvest, HarvestTime,false);
}
}
Run Code Online (Sandbox Code Playgroud)
HarvestTimerHandle 在标头中定义。以下是包含的列表。MyActor.h 包含一个定义 GetWorldTimerManager 的方法,因此我认为我已经包含了所有内容。值得注意的是,当我在线查找计时器函数时,我发现了几个站点,其中此设置计时器方法包含插入在 HarvestTimerHandle 参数和 &ACubeFormBlock::Harvest 参数之间的 this 参数。包括这一点并不会让我的错误消失。
#include "CubeFarmBlock.h"
#include "CubeFarmBlockGrid.h"
#include "UObject/ConstructorHelpers.h"
#include "Components/StaticMeshComponent.h"
#include "Engine/StaticMesh.h"
#include "Materials/MaterialInstance.h"
#include "MyActor.h"
Run Code Online (Sandbox Code Playgroud)
错误:
..\CubeFarmBlock.cpp(76): 注意:请参阅正在编译的函数模板实例化 'TFunction::TFunction(FunctorType &&)' 的参考 1> with 1> [ 1> FunctorType=void (__cdecl ACubeFarmBlock::* )(float ) 1>]
严重性代码 描述 项目文件行抑制状态错误(活动)
E0070 不允许 CubeFarm ..\CubeFarmBlock.cpp …