蓝图 与 C++
虚幻引擎(Unreal Engine,简称 UE)的开发体系中,蓝图与 C++ 构成了高层与底层协作的双支柱。
蓝图提供了直观的可视化脚本环境,让设计师 (就算不懂编程) 能够快速构建游戏逻辑与交互;而 C ++ 则负责性能关键与系统底层的实现。
值得注意的是,UE5 的 C++并非标准意义上的
C++。它经过深度定制,用于支持反射系统、编辑器集成与跨平台编译。
因此,不能以编写一般 C++ 程序的方式对待 UE5 的编程。部分语言特性(如异常处理、RTTI、完整的标准库支持)被禁用或替换。
C++ 编程构建蓝图、蓝图构建内容 是理解整个开发体系的核心逻辑

蓝图类
在UE的内容菜单中,空白处右键-->蓝图类 便可选择创建蓝图

从菜单上能看到不同类的说明,可以通过点击右侧❔跳转到文档,可以在所有类中选择自己创建的c++类作为父类创建蓝图。
这里简单补充一下类继承关系,其中Object是 UE 中最基础的类,是UE对象系统、反射机制和内存管理的核心基础。
Object → Actor → Pawn → Character(实体类)
Object → Controller → PlayerController / AIController(控制类)
Object → GameMode / GameState / PlayerState / HUD / Widget(逻辑与显示类)另外还有一个关卡蓝图(Level Blueprint),为 LevelScriptActor 的实例, 可调用或协调场景内Actor逻辑。
c++类
当在创建项目时选择了c++,
便可通过 工具 -->新建c++类 创建c++类,之后便会自动生成 .cpp .h 文件

关于宏
UCLASS🔗、 UPROPERTY🔗 、 UFUNCTION🔗 对应类、成员、函数,可点击🔗查看官方说明
简单示例
// Character.h
UCLASS()
class AMyCharacter : public AActor
{
GENERATED_BODY()
public:
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
float mytest;
UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
float mytest1;
float mytest2;其中 mytest2 没被宏修饰,而不可见

页面编辑只有mytest1可见

蓝图编辑都可见
对于函数而言一样
// 蓝图中可调用
UFUNCTION(BlueprintCallable)
void myTestFunc();
// 之后还要在.cpp 中实现⚠️ c++ 类要以其作为父类创建蓝图才能在开发过程实现其功能
后续会在实现物体移动、交互等基础功能时,具体说明它们的用法