查看: 909|回复: 13

[可视化蓝图脚本] 【使用阵列 | Unreal Engine】

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2016-6-27 15:58:43 | 显示全部楼层 |阅读模式


本页面的内容:

      
阵列变量

创建阵列

范例阵列使用
     
如您不熟悉编程术语,理解 阵列 的最佳方式是将其看作包含在单一实体中的一批同类型变量。举例而言,如要创建一个 Float 阵列,该阵列只能包含 Float 变量。创建阵列后,可在阵列中访问个体变量并对其进行修改,或在阵列中一次性修改所有物品(在处理重复性工作时可极大提高工作效率)。

在本页中,您将学习如何在蓝图中创建阵列变量,以及如何使用 Make Array 节点创建阵列。理解如何创建阵列后,可在 范例阵列用法 章节查看使用阵列的范例。

如需了解详细内容和用法,请查阅 蓝图数组 和 数组节点 文档。
阵列变量
可通过下列步骤创建阵列变量。

在蓝图中点击 Add Variable 按钮,为变量命名并设置变量类型。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



在上图中创建了一个名为 TextArray 的 文本 变量。

在变量的 Details 面板中,点击 Variable Type 旁的 阵列 网格按钮。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



此操作将把变量转换为阵列。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



点击 Compile 按钮,然后在 Default Value 下点击垃圾筐图标旁的 + 符号,为阵列添加内容。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



可添加任意数量的元素到阵列,并在索引中指派其数值。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



在上例中我们创建了一个文字阵列,首个输入设为 Hello!,第二输入 GoodBye!,第三输入设为 ...。该例可用于用 NPC,基于设置的各种条件以不同文本回应玩家。

如上图所示,阵列使用 从零开始 的索引值,意味着首个索引为 0 而非 1。填充阵列时请牢记这点。在通过索引值访问阵列中的内容时,如需从第一个开始访问,需要输入的索引值为 0 而非 1。如需访问第二个,则需输入索引值 1,以此类推。
创建阵列
创建阵列变量时,通过变量的默认值设置定义出现在阵列中的内容。存在阵列动态填充的情况,举例而言,使用关卡中存在的 Actors 填充阵列。在这种情况下,可使用 Make Array 节点以一系列内容创建一个阵列,无需创建阵列变量并指派默认值。

举例而言,关卡中需要摄像机 Actors 阵列,使其在每个 Actor 间循环。

以下步骤说明如何使用 Make Array 节点。

在关卡中放置数个 Actors (在本例中为 CameraActors)后,将它们全部选中并在 Level Blueprint 中打开。

在图表中 单击右键 并选择 Add Reference to Selected Actors 选项。

为阵列所含的 Actors 添加引用后,在图表中 单击右键 并添加 Make Array 节点。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



在 Make Array 节点上,点击 + 符号添加每个 Actor 出现在阵列中所需的引脚数量。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



拖动一个 Actor 并将它和 Make Array 节点上的 0 (或任意其他引脚)连接起来。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



此操作将把阵列换转为所选 Actor 的阵列类型(Error 报错提示将在编译后消失)。

将其他 Actors 和 Make Array 节点上其余的引脚连接起来。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



拖动 Array 引脚,搜索并添加 Get 节点。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



Get 节点上框中的值是从 Make Array 节点访问(Get 节点)的 索引(阵列元素)。

它也可能是下图中名为 Get Camera 的 整数 变量。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



利用一些脚本形态,可将 Get Camera 设为 整数值,有效地改变 Get 节点中选择的 Camera Actor。下图中的设置可用于在关卡中放置的摄像机 Actors 之间产生循环。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]


范例阵列使用
在本例中,我们将使用阵列在关卡中的随机位置生成随机蓝图效果。

在此实例中,我们使用的是启用了 新手内容 的 Blueprint Third Person 模板 项目。

在项目中 Basic 标签上的 Modes 菜单中,将 5 个 Target Points 拖入关卡。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



它们将作为效果生成的地点。

在 World Outliner 中,搜索 Target,然后按住 Shift 选择全部目标点。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



在主工具栏上,点击 Blueprints 按钮,然后点击 Open Level Blueprint。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



在图表中 单击右键 并选择 Create References to 5 selected Actors 选项。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



此操作将为关卡中所有目标点创建引用,以便进行访问。

再次在图表中 单击右键,搜索并添加 Make Array 节点。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



在 Make Array 节点上点击四次 + 符号,将引脚添加至节点,然后连接目标点。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



在图表中 单击右键 并添加 F 按键事件,关闭 Pressed 引脚,添加一个 Spawn Actor from Class 节点。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



在 MyBlueprint 窗口中,创建一个 Actor 类类型的新变量。




将变量命名为 ActorClassArray,点击 阵列 网格图标,将变量转换为阵列。

点击 Compile,然后在 Default Value 部分添加 3 个 Actors(使用的是火焰、爆炸和火花效果)。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



按住 Control 键拖入 ActorClassArray 变量,然后拖动它并创建一个 Get 节点。

关闭 Index 引脚,搜索并添加 Random Integer in Range 节点。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



将 Max 值设为 2,然后将 Get 引脚和 Spawn Actor 节点上的 Class 引脚连接起来。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



因为索引值从 0 开始,所以将 Max 值设为 2,便可获得每个 Actors。

拖动 Make Array 节点的输出引脚并添加一个 Get 节点。

关闭 Index 引脚,再次添加 Random Integer in Range 节点并将 Max 值设为 4。

关闭 Get 引脚,搜索并添加 Get Actor Transform 节点。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



将 Return Value 从 Spawn Actor 节点上的 Get Actor Transform 引脚连至 Spawn Transform 引脚。

点击 Compile 和 Save 按钮,完成后的图表外观如下。

【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



关闭蓝图,然后点击 Play 按钮在编辑器中开始游戏。

在编辑器中进行游戏时,每次按下 F 键,一个随机蓝图(从添加至阵列中的蓝图中随机选择)将被选中并在一个位置随机生成(从阵列的目标点中随机选择)。除利用 F 按键事件生成物品和效果外,还可使用相同逻辑为回复品或弹药随机生成出现地点,甚至掠夺玩家拥有的物品。



   



   
【虚幻4翻译文档-使用阵列 | Unreal Engine】[虚幻4中文文档]



      




   


      相关页面

  




       蓝图数组








      数组节点




回复

使用道具 举报

0

主题

824

帖子

2782

积分

vip会员

Rank: 1

积分
2782
发表于 2016-7-2 19:57:22 来自手机 | 显示全部楼层
多少钱,看看
回复 支持 反对

使用道具 举报

0

主题

881

帖子

2852

积分

vip会员

Rank: 1

积分
2852
发表于 2016-7-4 02:37:13 | 显示全部楼层
看看, 顶起. 谢谢楼主
回复 支持 反对

使用道具 举报

0

主题

802

帖子

2609

积分

vip会员

Rank: 1

积分
2609
发表于 2016-7-4 12:08:42 来自手机 | 显示全部楼层
好东西这么多....
回复 支持 反对

使用道具 举报

0

主题

852

帖子

2834

积分

vip会员

Rank: 1

积分
2834
发表于 2016-7-4 12:08:43 来自手机 | 显示全部楼层
来看看能不能下载
回复 支持 反对

使用道具 举报

0

主题

864

帖子

2873

积分

vip会员

Rank: 1

积分
2873
发表于 2016-7-6 20:26:11 来自手机 | 显示全部楼层
全就行啊,,支持 一下
回复 支持 反对

使用道具 举报

0

主题

814

帖子

2667

积分

vip会员

Rank: 1

积分
2667
发表于 2016-7-7 18:56:05 来自手机 | 显示全部楼层
楼主辛苦
回复 支持 反对

使用道具 举报

0

主题

854

帖子

2801

积分

vip会员

Rank: 1

积分
2801
发表于 2016-7-8 00:42:44 来自手机 | 显示全部楼层
这个是什么呢,看看看
回复 支持 反对

使用道具 举报

0

主题

884

帖子

2925

积分

vip会员

Rank: 1

积分
2925
发表于 2016-7-10 11:18:09 来自手机 | 显示全部楼层
楼主真是好人吖~~非常感谢
回复 支持 反对

使用道具 举报

0

主题

894

帖子

2963

积分

vip会员

Rank: 1

积分
2963
发表于 2016-7-10 12:01:30 来自手机 | 显示全部楼层
楼主能发图瞧瞧嘛
回复 支持 反对

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部