蓝图用户指南

由于蓝图就是个可视化的脚本系统,那么一个程序语言中的基本概念也就都存在。下面我们简单来介绍下蓝图中的一些基本概念。

变量

概述

Variables(变量) 是存放一个值或引用世界中的一个Object或Actor的属性。这些用户界面 内部访问,或者通过设置使得可以在外部进行访问, 以便应用放置在关卡中的蓝图实例的设计人员可以修改它们的 值。

变量显示为圆角方框,方框内包含了变量的名称:

变量类型

您可以创建各种类型的变量,包括数据类型的变量(比如布尔型、整型及浮点型)及用于存放类似于Object、Actor及特定类的引用型变量。 您还可以创建每种变量类型的数组。每种变量类型都进行了颜色编码,以方便识别。

蓝图数组

和变量值一样,蓝图也可以在数组中存储数据。如果您不熟悉编程术语,您可以把数组想象成为存在于一个单元中的一组变量。

数组仅能存放一种类型的值。比如,布尔型数组仅可以存放布尔值。

数组变量包含一个3x3 的带颜色网格,表明它们是数组,不是正常的变量。在没有连接的数组中,其网格的中心是黑的。一旦连接后,整个网格将会可见,如下所示。

数组索引

同时需要注意的一点是,数组中的值的索引值是 从0开始的 ,这意味着第一个索引是 0 而不是1。

流程控制

概述

Flow Control (流程控制)使得能在蓝图中清楚地控制执行的流程。 此种控制可以多种形式进行,基于某些值为真的情况来选择图表的某个分支来执行,多次执行某个特定分支,以特定顺序执行多个分支,等等。 默认的流程控制操作包括了分支(if语句),循环(for和while语句),门,及序列。

开关节点

开关节点读取数据输入,并会基于该输入值来从匹配的(或可选的默认)执行输出中发送执行流程。 可用的开关有以下几种类型: Int (整型),String (字符串型), Name (名称型),以及 Enum (枚举型)。

一般而言,开关节点会根据其估算的数据类型拥有执行输入以及数据输入。 输出均为执行输出。 Enum 开关会自动从 Enum 属性中生成输出执行引脚,而 Int, String 及 Name 开关拥有可自定义的输出执行引脚。

程序中的switch关键字,但是它支持更多的类型。

标准流程控制节点

这些节点提供了一系列方法来控制执行的流程

Branch

在面对单个 True/False 判定的情况下,Branch(分支)节点是一种创建基于判断的流程的简单方式。 在执行后,分支节点会查找附加的布尔变量的输入值,并在合适的输出节点下方来输出执行脉冲值。其实就是if-else分支。

DoN

DoN节点将会 N 次触发执行脉冲。 在达到限制后,它将会停止所有的输出执行,直到脉冲被传入其 Reset (重置)输入。

例如,您可以启动车辆20次,然后在绑定到 Reset (重置)输入的加油事件被激活前,无法再次启动车辆。

DoOnce

DoOnce节点-正如名称所显示的-将会仅仅触发执行脉冲一次。 在之后,它将会停止所有的输出执行,直到脉冲被传入其 Reset (重置)输入。 该节点等同于DoN节点中 N = 1 的情况。

我们举例来说,您可以对一扇开启的门的节点网络设置DoOnce,这样这扇门将仅仅开启一次。 不过您可以绑定一个触发事件到Reset(重置)输入,这样会导致在触发器被激活时,门会再次打开。

FlipFlop

FlipFlop节点取入执行输出并在两个执行输出间切换。 其第一次被调用时,将会输出A。 第二次被调用时,将会输出B,然后再是A,然后又是B,循环往复。 该节点同时有布尔变量输出,使您可以追溯输出A何时被调用。

ForLoop

ForLoop节点的工作原理等同于标准的代码循环,将会在开始和结束之间的每个索引触发执行脉冲。就是C++中的for循环可视化版本。

ForLoopWithBreak

ForLoopWithBreak节点包含了能中断循环的输入引脚,除此之外,它运行的方式与ForLoop节点非常相似。

Gate

Gate(门)节点用来开启和关闭执行流。 简单来说,Enter输入取入执行脉冲,同时门的当前状态(开启或关闭)将会决定这些脉冲是否从Exit输出中传出。

MultiGate

MultiGate取入单个数据脉冲并将其传送到任意数量的潜在输出。 这个过程随机按顺序发生,可能会循环

Sequence

Sequence (序列)节点使得单个执行脉冲能按顺序触发一系列事件。 节点可能有任意数量的输出,所有的输出引脚都会在序列节点一获得输入时就被调用。 它们将总是按顺序被调用,但不会有任何延迟。 对一般用户来说,输出引脚看起来好像被同时触发了一样。

WhileLoop

只要特定值为 true ,则WhileLoop节点将会输出一个结果。 在循环的每个迭代中,它会查看其输入布尔值的当前状态。 一旦它读取到 false ,该循环中断。

函数

Functions(函数) 是属于特定 蓝图 的节点图表,该节点图表可以执行或者从 蓝图 中的另一个 图表中进行调用。函数具有一个单一的入口点,由和该函数具有相同名称的一个节点指定, 该节点包含了一个单一的执行输出引脚。当从另一个图表调用函数时,会激活该输出执行引脚, 促使执行连接网络。

访问修饰符

当创建函数时,您可以指定可以访问及不能访问这些函数的其他对象。这可以通过设置 Access Specifier(访问修饰符) 属性来完成,该属性可以在选中函数的 详细信息 面板中找到。跟C++中一样,有Public Protected Private三种类型。

纯函数和非纯函数

函数可以是 纯函数 也可以是 非纯函数 。主要的区别是纯函数不会以任何方式修改状态或者类的成员, 而非纯函数可以自由地修改状态。纯函数一般用于 getter 函数 或者仅输出一个数据值的操作符。

非纯函数必须通过在事件图表中将执行线连接到函数调用节点来显式地执行。 非纯函数通过使用以下这些方式之一进行指定:

  • 在代码中定义的函数的函数声明中指定 BlueprintCallable 关键字。
  • 将通过 蓝图编辑器 添加的函数的 Pure(纯函数) 复选框保留为未选中状态。

纯函数连接到数据引脚上,当需要依赖于纯函数的数据时,编译器会自动地执行这些函数。这意味着 对于每个连接到纯函数上的节点,都会调用一次纯函数 。纯函数通过使用以下这些方式之一进行指定:

  • 在代码中定义的函数的函数声明中指定 BlueprintPure 关键字。
  • 选中通过 蓝图编辑器 添加的函数的 Pure(纯函数) 复选框。

创建函数

在蓝图中创建函数

在 Graph(图表) 模式,从 My Blueprint(我的蓝图) 选卡下,点击New Function (新建函数)按钮。

在蓝图接口中创建函数

在 Blueprint Interface(蓝图接口) 中创建函数同在 Class Blueprint(类蓝图) 或 Level Blueprint(关卡蓝图) 中创建函数一样,但是实现是有很大差别的。

在 Graph(图表) 模式,从 My Blueprint(我的蓝图) 选卡下,点击New Function (新建函数)按钮。

编辑函数

一旦创建了函数,您就需要定义其功能。这个过程需要两步:

  • 创建必要的输入和输出参数
  • 在您的输入和输出之间创建节点网络来定义函数行为。

调用函数

一旦您创建并定义了您的函数后,就可以在您的事件图表中调用它。要想创建一个调用您的函数的节点:

  • 从 我的蓝图 选卡中拖拽您的函数到事件图表内的空白处
  • 在事件图表中右击,或者从适当的执行引脚或数据引脚拖拽鼠标来打开关联菜单。在关联菜单中搜索您的函数,然后选中它来添加函数调用节点。
  1. https://docs.unrealengine.com/latest/CHN/Engine/Blueprints/UserGuide/index.html

转载于:https://www.cnblogs.com/ghl_carmack/p/5922190.html

虚幻4蓝图快速入门(二)相关推荐

  1. 虚幻4蓝图快速入门(一)

    蓝图快速入门 序言 本文依据官方教程总结而来,只是带你对蓝图有一个快速的认识,如果想对蓝图有一个比较深入的了解,那么可以看官方的视频或者是做一些小项目练手,如果你有编程经验的话,上手还是很容易的. 蓝 ...

  2. 虚幻引擎5:快速入门学习教程

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:5.63 GB |时长:5h 23m 从 ...

  3. Vue 基础快速入门(二)

    Vue 组件化编程 模块, 组件, 模块化与组件化 模块 理解:向外提供特定功能的 js 程序, 一般就是一个 js 文件 为什么:js 文件很多很复杂 作用:复用 js,简化 js 的编写, 提高 ...

  4. ElasticSearch快速入门二(Restful介绍)

    本节课从三个方便讲解 什么是restful ? API: Application Programming Interface的缩写,中文意思就是应用程序接口. ●XML: . 可扩展标记语言,是一种程 ...

  5. 《虚幻4引擎快速入门视频教程》FAQ

    请推荐一个VR开发用的PC机配置吧 VR开发用的PC机,个人觉得看一下这个链接吧:Oculs Ready PC https://www.oculus.com/en-us/oculus-ready-pc ...

  6. jquery 快速入门二

    ---恢复内容开始--- 操作标签 样式操作 样式类 addClass();//添加指定的CSS类名. removeClass();//移除指定的类名. hasClass();//判断样式不存在 to ...

  7. Webpack5快速入门 (二) CSS相关loader的使用及兼容性处理 手把手带你打开前端工程化的大门

    目录 一.CSS-Loader

  8. CarSim仿真快速入门(二十三)-CarSimSimulink联合仿真中的 S-Function模块

    Simulink S-Function模块 为了与外部软件如Simulink一起工作,VS数学模型从一个包装模块中运行,该模块将使用的VS库连接到其他环境.封装器以该环境的标准方式与调用环境进行通信. ...

  9. CarSim仿真快速入门(二十二)—CarSim2022中设置IO写出

    VS数学模型可以通过VS浏览器启动和控制,这样就不需要其他软件了.仿真活动的主要产品是一个输出文件,其中包含感兴趣的变量的时间历史,可以用VS Visualizer绘制或用于生成动画.输出也可以自动写 ...

最新文章

  1. 万众赋能工业4.0:三一数据应用大赛圆满落幕
  2. M站开发规范——By Klax
  3. tensors used as indices must be long or byte tensors
  4. cv岗工作做什么_职场速递:我应该做什么工作?
  5. 第七周项目4-计算一个程序猿的周工资
  6. 负数乘以正数溢出问题
  7. 雷军定AI+IoT为小米核心战略,牵手宜家推进生态布局
  8. php中浮点数计算问题
  9. 揭秘合伙创业做生意成功的密码?
  10. 改用MyAnalyzer的KMeans聚类算法
  11. 在linux系统中下载thchs30,aishell数据处理为thchs30格式
  12. 2022年C语言教程入门和最新C语言自学教程C语言进阶教程大全
  13. itextpdf 给pdf文档添加图片
  14. 关于以太网卡的组成部分:MAC/PHY/变压器
  15. 并发请求多 服务器响应慢 post,从服务端视角看高并发问题
  16. genymotion-安卓模拟器-修改IMEI
  17. C语言课设——宿舍管理
  18. java 5,8,9章复习
  19. mysqld_safe启动mysql数据库的参数
  20. 【VOA英语学习--0207】关于AI

热门文章

  1. sealos安装k8s集群注意事项:必须关闭任何形式的http_proxy代理
  2. helm3 push/pull安装使用细节及添加国内仓库
  3. Scala隐式参数(隐式值)
  4. Python3 字符串复制
  5. eureka客户端在执行过程中都做了哪些事
  6. redis与lua整合
  7. MySQL查询出2门及2门以上不及格者的平均成绩
  8. spring boot新建非web项目(无需依赖)
  9. factorybean 代理类不能按照类型注入_Spring注解驱动开发之四——@Import快速导入组件、FactoryBean 定义工厂注册组件...
  10. php 求数组合集,PHP数组排序函数合集 以及它们之间的联系分析