目录
提升编译速度
路径:C:\Users\Administrator\AppData\Roaming\Unreal Engine\UnrealBuildTool

添加代码
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
<BuildConfiguration>
<bAllowXGE>false</bAllowXGE>
<MaxParallelActions>12</MaxParallelActions>
</BuildConfiguration>
</Configuration>
Editor Preferences



新建C++类
菜单栏:Tools -> New C++ Class ...



//MyActor.h
#pragma once //预处理指令,确保相同头文件编译时只被包含一次,防止重复包含;
// 包含UE核心基础功能,包含了大量其他常用头文件(如FString,TArray,FVector,UObject基类等);
#include "CoreMinimal.h"
// 包含AActor类的定义(因为AMyActor继承自AActor)
#include "GameFramework/Actor.h"
// 包含所有与UCLASS、UPROPERTY、UFUNCTION等宏相关的元数据、类型信息、序列化代码和蓝图交互的胶水代码
// 该头文件由Unreal Header Tool(UHT)在编译过程中自动生成
// 必须是当前文件中最后一个被包含的头文件
#include "MyActor.generated.h"
UCLASS() //标记需反射的宏,告知UHT该类需反射
//CPP_API控制类的导出/导入的宏,根据项目名称自动生成,跨模块工作(让类在模块(.dll或.exe)的外部可见);
class CPP_API AMyActor : public AActor
{
//GENERATED_BODY()为宏,常与UCLASS、USTRUCT等一起使用,以让UHT生成反射代码(允许在运行时检查和操作类的属性、函数等);
//告知UHT在此插入一些代码,如Super类型别名/StaticClass()函数声明/构造函数相关代码/RPC 包装器声明/其他反射辅助代码等;
GENERATED_BODY()
public:
// UHT会生成一个构造函数会先被调用,然后在该构造函数内间接调用用户编写的构造函数,保证一些必要的初始化;
// Sets default values for this actor's properties
AMyActor();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
// ~AMyActor() 析构函数
// 对非UObject成员变量,调用其自身的析构函数;
// 对UObject及其派生类,由UE的垃圾回收器统一管理;
// 需要解绑委托、停止特效、销毁 Actor,使用EndPlay()
};
//MyActor.cpp
#include "MyActor.h"
// Sets default values
AMyActor::AMyActor()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
}
// Called when the game starts or when spawned
void AMyActor::BeginPlay()
{
//Super表示当前类的父类
Super::BeginPlay();
}
// Called every frame
void AMyActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
1790



被折叠的 条评论
为什么被折叠?



