文章目录
1.CoreMinial头文件
CoreMinimal头文件包含一套来自UE4核心编程环境的普遍存在类型(包括 FString、FName、TArray 等。)
CoreMinimal头文件(位于UE4根目录\Engine\Source\Runtime\Core\Public\CoreMinimal.h下)首先被多数引擎头文件所包含。
2.“GameFramework/Actor.h”
在新建类的时候选择了以Actor作为父类,所以这里保存的就是Actor源代码的头文件
3.“generated.h”
与反射机制有关,必须放在所有头文件的最下方
4.UCLASS()
这是一个宏,可以理解为一个标识符,标识下面是一个类。
5.类的命名规则
规则为:项目名称+"_API" 类名
前面的——项目名称+"_API"部分,可以理解为命名空间
6.GENERATED_BODY()
这也是一个宏,UE4会替换为该类型生成时候所必要的样板代码。
7.Super的作用在
在子类的方法中调用父类的一些方法。
8.UE4反射机制
指的是在运行状态下。任何一个实体类都能知道这个类的所有属性和方法。
任意一个对象都能调用它的任意方法和属性,这种动态获取信息以及动态调用对象的功能称为语言的反射
下面是默认生成的一个Actor代码
#include "CoreMinimal.h"//一些核心的东西,比如一些数据类型
#include "GameFramework/Actor.h"//Actor父类
#include "FloatingActor.generated.h"//与ue4反射机制有关,必须放在所有头文件下方
UCLASS()//可以理解为类的标识符,标识下面这是一个类
//QUICKSTART_API 可以理解为一个命名空间,AFloatingActor才是类名,继承自AActor
class QUICKSTART_API AFloatingActor : public AActor
{
GENERATED_BODY()//这个是宏,用来支持反射、序列化等C++本来没有的机制
public:
// Sets default values for this actor's properties
//默认构造函数
AFloatingActor();
UPROPERTY(VisibleAnywhere)
UStaticMeshComponent* VisualMesh;
protected:
// Called when the game starts or when spawned
//游戏一开始就调用的
virtual void BeginPlay() override;
public:
// Called every frame
//每帧调用
virtual void Tick(float DeltaTime) override;
};