Unreal C++ pointer to incomplete class type is not allowed (踩坑)

感叹下Unity选择C#作为游戏开发语言非常明智,倒不是说运行速度有多快,代码质量有多高,但新手友好不容易踩坑浪费一些时间在代码编译上,虽然说蓝图连线小白,但我一个程序敲代码更顺手不用记那些框框名称,有IDE为我补全,再次吐槽下Unreal对IDE的智能补全支持不好。

C++各种认真写代码的格式我认,但是pointer to incomplete class type is not allowed报错在我已经引用了头文件后依然固执标红,害我在VS这纠结好久,其实你去Unreal里编译是通过的,烦人!

来看下我遇到的问题:

就是这个万恶红波浪线。

其实在Unreal里编译出错会具体告诉你:缺少头文件定义,我需要在当前xxxGameMode.cpp中引用这个ACharacter class定义的头文件,有两种方式找到这个头文件位置。

  1. Unreal官方文档
  2. 在VS中用F12 Go to Definition找到这个类定义文件。

引用Character.h完后再编译报错提示USpawnMovementComponent未定义,因此还需要为myCharacter->GetMovementComponent()引入PawnMovementComponent.h

所以这一行代码其实是需要引入两个.h

#include "GameFramework/Character.h"
#include "GameFramework/PawnMovementComponent.h"

最后感叹:Unity C#用起来真舒服。

猜你喜欢

转载自www.cnblogs.com/bylle/p/12771180.html