1.1 蓝图是什么?简述其可视化脚本系统的底层原理
★★ 中等考点: 蓝图本质理解、虚拟机执行机制、字节码编译
参考答案:
- 蓝图是 UE 提供的可视化脚本系统,通过节点连线编写游戏逻辑,无需手写代码。
- 编译阶段:点击编译时,先将节点图解析为内部数据结构
UEdGraph,再编译为基于栈的虚拟机字节码,存储于UBlueprintGeneratedClass中。 - 执行阶段:蓝图虚拟机(Blueprint VM /
FScriptVM)逐条解释执行字节码,属性通过反射系统(UProperty/UFunction)访问。 - 核心数据结构:
UBlueprint(资产)→UBlueprintGeneratedClass(运行时类)→ 字节码指令集 →UFunction。 - C++ 可通过反射调用蓝图函数:
FindFunction+ProcessEvent。
UObject* Obj = NewObject<UMyBlueprintClass>();
UFunction* Func = Obj->FindFunction(FName("MyBlueprintFunction"));
if (Func) { Obj->ProcessEvent(Func, nullptr); }- 关联知识点:蓝图本质上是一种有独立虚拟机与字节码格式的脚本语言;
FKismetCompilerContext是蓝图编译核心类。