概述
蓝图 - 是虚幻4实现的一套完整的可视化脚本系统。它和其他脚本语言(python,lua等)的不同之处在于,它无需编写代码,可以通过拖拽节点来直观的实现所需的功能。但它本质上还是属于一种编程语言,也有变量,数据类型,函数等概念,开发中也需遵循者面向对象的思想,以学习一门新语言的方法来学习它,相信会事半功倍的。
变量:存放一个值或引用世界中的一个Actor的属性,游戏中加载进去的任何游戏对象都是由不同类型的变量存储的。
变量类型:用于标识变量,数据类型包括一些基础变量类型和引用类型。
变量类型 说明
蓝图 - 是虚幻4实现的一套完整的可视化脚本系统。它和其他脚本语言(python,lua等)的不同之处在于,它无需编写代码,可以通过拖拽节点来直观的实现所需的功能。但它本质上还是属于一种编程语言,也有变量,数据类型,函数等概念,开发中也需遵循者面向对象的思想,以学习一门新语言的方法来学习它,相信会事半功倍的。
变量:存放一个值或引用世界中的一个Actor的属性,游戏中加载进去的任何游戏对象都是由不同类型的变量存储的。
变量类型:用于标识变量,数据类型包括一些基础变量类型和引用类型。
变量类型 说明

创建变量
点击Blueprints下拉按钮,点击Open Level Blueprints打开关卡蓝图。
转到MyBlueprint面板,点击Variables右侧的’+’新建变量,并把变量命名为fVal。
点击Blueprints下拉按钮,点击Open Level Blueprints打开关卡蓝图。
转到MyBlueprint面板,点击Variables右侧的’+’新建变量,并把变量命名为fVal。

转到Details面板,点击Variables Type右边的下拉框,弹出变量类型对话框

可以选择任意一种变量类型,在这里选择Float,点击Compile编译。
再转到Details面板,发现Default Value·标签下,Val右边的控件由复选框变成了编辑框,
在编辑框中输入5,设置变量的初始值,点击Compile编译。

创建并初始化好变量后,就要使用变量了。
变量的获得和设置
用鼠标左键点击变量fVal,并将其拖拽到事件图表中,松开鼠标,会弹除菜单,选择Get fval,获取变量。

在事件图表中,点击右键,会弹出所有的蓝图节点,在搜索框中输入Print String,点击并创建该节点,将变量的引脚与Print String节点的输入引脚相连,由于变量类型不同,引擎会进行自动变量类型转换,添加一个转换节点。
用鼠标左键点击变量fVal,并将其拖拽到事件图表中,松开鼠标,会弹除菜单,选择Get fval,获取变量。

在事件图表中,点击右键,会弹出所有的蓝图节点,在搜索框中输入Print String,点击并创建该节点,将变量的引脚与Print String节点的输入引脚相连,由于变量类型不同,引擎会进行自动变量类型转换,添加一个转换节点。

现在PrintString节点还没有事件调用,所以变量还无法输出,需要添加键盘事件节点。点击右键创建事件“1”节点,再连接执行引脚,这样在按下”1”键后,屏幕左上角就会打印出fVal的值,也就是5。点击Compile编译。

点击play,按下“1”键,输出结果

变量还可以在程序中设置,拖动变量fVal到事件图表中,点击Set fVal。创建出Set节点,创建事件”2”节点,连接到Set fVal,点击Compile编译。

点击play运行,当按下1键时输出5,当按下2键是将变量修改成了0,再次按下1键时,会打印0,结果如下

提升变量
除了上面的方法创建变量外,还可以通过节点的返回值引脚,提升成变量。

修改变量名
选中新创建的变量,右击变量,再点击Rename,输入新变量名fVal01。如图

复杂的变量类型
除了基础的变量类型,通过组织基础变量类型创建一些复杂的变量类型,如Rotator,Transform等。创建Transform类型的变量tVal,设置初始值,并打印输出。

Transform包含位移(Vector)旋转(Rotator)和缩放(Scale),输出结果

分解变量
通过Break Transform节点分解Transform变量,对包含的变量值进行操作,同理可以通过Break Vector节点分解Vector变量。

打印输出。

构造变量
通过Make Transform构造Transform变量,给Transform变量赋值,同理可以通过Make Rotation节点构造Rotation变量。

打印输出,变量tVal中的Rotation被重新构造了

变量的属性
选中float类型的变量fVal,转到Details面板,查看变量属性(不同的变量类型属性稍有不同)

属性详解
属性 |
说明 |
Variable Name |
变量名,标识该变量 |
Variable Type |
变量类型,可在下拉框中选择其他类型 |
Instance Editable |
实例化后是否可编辑 |
Blueprint Read Only |
是否只读,如果为设置为只读,该变量不能使用set |
Tooltip |
提示,设置变量的提示信息 |
Expose on Spawn |
是否暴露到Spawn |
Private |
设置该变量是否是私有变量 |
Expose to Cinematics |
是否暴露到Cinematics |
Category |
变量分类 |
Slider Range |
通过滑动( )来设置变量值时,变量的大小范围 |
Value Range |
通过直接修改输入框来设置变量值时,变量的大小范围 |
Replication |
是否网络复制 |
Replication Condition |
复制方式 |