一、工程概述

工程构成:Engine、Games、Visualizers,分别是引擎源码、游戏模块、描述符。

Games路径下包括了引擎和工程的基础配置文件Config 和 工程代码Source两部分。

UCLASS用于标记类对象属于UObject的子类。UObject的整体继承关系如下图所示:

UObject的构造应该只包括成员赋值,不要夹杂其他的函数调用;UObject应该仅在运行时由NewObject或CreateDefaultSubobject创建,而不能手动去new它,这样UE可以自动进行内存管理。同理,不支持智能指针。

函数头的宏 工程名称_API用于和UObject兼容;函数体内的GENERATED_BODY()会对类进行设置,以便支持引擎要求的基础结构,像UCLASS和USTRUCT都要求有GENERATED_BODY()。

关于Build模块,里面包含了本项目所需要的所有模块。

二、Pawn基本使用

关于Pawn,类拥有一些基本的方法,例如GENERATED_BODY()生成引擎支持,构造函数+析构函数,BeginPlay初创调用,Tick帧调用,SetupPlayerInputComponent绑定用户输入。

Pawn中定义碰撞组件: