我正在尝试使用Sharan Volin所著的“通过使用虚幻引擎4创建游戏来学习C ++”这本书来学习C ++。到目前为止,我一直在跟踪示例,但是尽管我从文本中逐字键入所有内容,但我仍然卡在该错误中。我有什么想念的东西吗?
我尝试查看此练习是否还有其他指南或Git Repos,但没有运气。其他有关错误代码E0393(我得到的错误)的Stack用户问题似乎无济于事,因为我在Avatar.h
文件中包含了Avatar.cpp
文件。
这是Avatar.cpp
文件中段中的代码,给我一个错误,特别是后两行以PlayerInputComponent->
开头
// Called to bind functionality to input
void AAvatar::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
Super::SetupPlayerInputComponent(PlayerInputComponent);
check(PlayerInputComponent);
PlayerInputComponent->BindAxis("Forward", this, &AAvatar::MoveForward);
PlayerInputComponent->BindAxis("Strafe", this, &AAvatar::MoveRight);
}
这是Avatar.h
文件中存在的一些代码,只有最后四行是我输入的内容。
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
// Called to bind functionality to input
virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;
//New! These 2 new member function declarations
//they will be used to move our player around!
void MoveForward(float amount);
void MoveRight(float amount);
};
最终结果应允许我分别按“ W”和“ D”将虚幻项目中的化身向前和向右移动。但是,在Avatar.cpp
文件中,出现错误E0393 pointer to incomplete class type is not allowed
。我也从来没有让该项目在虚幻编辑器中启动。
答案 0 :(得分:2)
只需转到头文件“ Avatar.h”,然后输入#include“ Components / InputComponent.h”
答案 1 :(得分:0)
在您的cpp文件中,您已向前声明了该类。您需要在.cpp文件中包含实际定义的include。 因此,您需要为UInputComponent提供include。
在组件文档here上,您将在页面底部看到引擎文件中的位置。
#include "Runtime/Engine/Classes/Components/InputComponent.h"