解析系列文章的第二部分,将介绍蓝图虚拟机,以及蓝图和C++函数相互调用
相关索引:
南京周润发:UE4蓝图解析(一)zhuanlan.zhihu.com蓝图虚拟机
字节码
蓝图在编译后会生成对应字节码,引擎运行时会读取字节码,并交由蓝图虚拟机动态解释执行。
UE4也支持在打包时直接把蓝图转换为C++代码,这样运行时就省去了字节码解释执行的步骤,效率更高。但是目前自动生成的C++代码与我们自己写的有些差异,其行数会特别多,执行流程都用switch-case进行实现,因此执行效率会稍低些,而且可读性会很差。在此我们先介绍正常使用虚拟机解释执行字节码的流程。
虚拟机的字节码为EExprToken枚举,在Script.h文件中定义。一些指令如下:
enum EExprToken
{
// Variable references.
EX_LocalVariable