查看: 460|回复: 7

[可视化蓝图脚本] 【设置和获取 Actor 引用 | Unreal Engine】

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

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



通过建立对 Actor 的引用,您可以在玩游戏期间通过蓝图或 C++ 访问其属性、变量、事件或函数(若适用),然后修改它们以满足您的游戏性需要。

例如,您想在玩家进入触发器盒时开灯,则建立对灯的引用,然后触发器盒将允许您通过将灯 Actor 键入到触发器盒的 OnComponentBeginOverlap 事件来实现此目标(这样,您就可以开灯)。

正确引用 Actor 对 Actor 之间的通信也很重要,因为错误指定引用将导致失败的通信和不良结果。

查看以下步骤,了解 设置 和 获取 Actor 引用的实例。

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

在 Modes 菜单中的 Basic 下,将一个 Box Trigger 拖入关卡。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



我们将利用它触发关卡中另一个 Actor 的移动。

在 Box Trigger 的 Details 面板中,选择 Convert to Class Blueprint 选项。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



我们将使用这个 Actor 创建一个 蓝图,并在其中指派一个存储引用 Actor 的变量。

为蓝图命名,然后选择 Create Blueprint(蓝图编辑器 将打开)。

在蓝图编辑器中的 My Blueprint 下,点击 Add Variable 按钮。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]





点击变量,然后在 Details 面板中点击 Variable Type 按钮并在 Object Reference 下选择 Actor。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



在此我们制定引用为 Actor 类型,且为关卡中的一个 Object。

将变量命名为 TargetActor 并点击 Editable 复选框。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



此操作将变量设为 Public,通过主编辑器窗口的 Details 面板可在此蓝图外对其进行访问和设置。该功能十分实用,无需进入蓝图即可对变量进行修改。

可输入显示文本,作为变量功能和用途的 提示文本。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



在上图中输入的文本是 “The Actor to Target”。

点击控件蓝图编辑器窗口左上部的 Compile 按钮。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



完成编译后它将变为一个绿色勾选标记。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



最小化蓝图,返回主编辑器窗口,然后在关卡中选择 Box Trigger 蓝图。

在窗口的 Details 面板中,可以在 Default 下方看到 Target Actor 变量和提示文本。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



前往 Content Browser 的 Content/StarterContent/Shapes 路径,添加三个 Shape_Cubes 至关卡中。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



如果使用的是自建项目,则可添加任意 Actor、静止网格物体或蓝图到关卡中。

向关卡添加资源后,在每个 Actor 的 Details 面板中将其移动性设为 Moveable。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



完成此设置后,可通过蓝图脚本移动 Actor。

点击关卡中的 Box Trigger 蓝图。

在 Details 面板中,点击 Target Actor 下的 None 框,搜索 Shape(或为 Actor(s) 添加的其他名字)。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



点击 None 将显示当前关卡中的所有 Actors,但是我们只需要将添加的方块之一作为目标。

点击放大镜图标旁边的滴管图标。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



在视口中点击它,将从关卡中选择一个 Actor 作为目标 Actor。

将滴管图标移动至一个方块(或添加的其他资源)上,点击将其设为目标 Actor。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



选择 Actor 时,Target Actor 变量将更新为 Details 面板中所选的 Actor。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



成为目标 Actor 的 Actor 将拥有 Set 引用。

打开 Box Trigger 蓝图,然后在 MyBlueprint 窗口中点击眼睛图标并启用 Show Inherited Variables。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



此操作将在组件上添加事件。这些组件在最初将触发框转换为类蓝图时被继承。

在 Trigger Base**下,在 CollisionComponent 上 单击右键,选择 Add Event,然后再选择 Add OnComponentBeginOverlap**。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



此操作将在图表上创建一个新的 Event 节点。

按住 Ctrl 键将 TargetActor 变量拖入图表。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



此操作将创建一个 Get 节点。此节点将获取指派给变量的所有内容,而该变量已被设为关卡中的一个 Actor。

拖动 TargetActor 节点,搜索并添加一个 Add Actor Local Offset 节点。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



此操作将添加当前目标的变化(可将其从当前位置移动)。

以下图所示方式连接节点,然后将 Add Actor Local Offset 节点上的 Z 轴数值设为 500.0。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



此操作将获取目标的当前位置,并在触发框发生重叠时使目标沿 Z 轴上移 500 个单位。

在 Components 窗口中,点击选中 TriggerBox_Blueprint。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



如果 Components 窗口不存在,可使用 Window 菜单选项将其启用。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



在触发框 Details 面板的 Rendering 下,取消勾选 Actor Hidden In Game 选项。

【虚幻4翻译文档-设置和获取 Actor 引用 | Unreal Engine】[虚幻4中文文档]



此操作将使触发框在游戏中可见,方便判定玩家从何处进入。

点击 Compile 和 Save,然后关闭蓝图。

在主编辑器窗口中,点击 Play 图标在编辑器中开始游戏。

当您进入触发框时,选定的 Actor 将上移 500 个单位。您每次进入触发框时,该框均将上移 500 个单位。建立引用后,变量便了解应该在触发框脚本中影响哪个 Actor。尝试利用该脚本影响关卡中另一个 Actor。

在关卡视口的主编辑器窗口中点击 Box Trigger 蓝图。

在 Box Trigger 的 Details 面板中,点击 Target Actor 旁的滴管图标。




在关卡视口中点击一个从未使用的 Actor。

再次在编辑器中开始游戏。

在此情况下,每次玩家进入触发框都会使所选的新 Actor 沿 Z 轴上移 500 个单位。通过对触发框脚本中 Target Actor 变量的使用,便不会被锁定在与脚本相关的特定 Actor 中并可对其进行修改;此外无需对蓝图进行修改便可改变其影响的 Actor。

该实例说明如何将不同对象四处移动。除移动对象外,可使用该方法在玩家按键时开门、开关不同光源、生成供玩家拾取或销毁的道具、以及其他各种功能。

这也是为 Actor 获取引用的多种方式之一。如需要为玩家角色获取引用却无法在主编辑器窗口清楚地进行设置,则须使用不同方法(查看下方 相关页面 章节)。



   



   



      




   


      相关页面

  




       在蓝图中引用 Actor




回复

使用道具 举报

0

主题

806

帖子

2678

积分

vip会员

Rank: 1

积分
2678
发表于 2016-7-2 19:57:22 来自手机 | 显示全部楼层
加油摸摸大,感谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

831

帖子

2705

积分

vip会员

Rank: 1

积分
2705
发表于 2016-7-3 23:47:16 来自手机 | 显示全部楼层
楼主造福人类了谢谢
回复 支持 反对

使用道具 举报

0

主题

848

帖子

2827

积分

vip会员

Rank: 1

积分
2827
发表于 2016-7-4 11:31:10 | 显示全部楼层
这个怎么用呢
回复 支持 反对

使用道具 举报

0

主题

863

帖子

2835

积分

vip会员

Rank: 1

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

使用道具 举报

0

主题

936

帖子

3099

积分

vip会员

Rank: 1

积分
3099
发表于 2016-7-15 15:06:49 来自手机 | 显示全部楼层
这样的人是业界良心 有时在人人下个东西学比取经还难
回复 支持 反对

使用道具 举报

0

主题

851

帖子

2798

积分

vip会员

Rank: 1

积分
2798
发表于 2016-7-16 09:10:44 | 显示全部楼层
要查看本帖隐藏内容请回复
回复 支持 反对

使用道具 举报

0

主题

863

帖子

2827

积分

vip会员

Rank: 1

积分
2827
发表于 2016-7-21 06:51:19 | 显示全部楼层
感谢分享,学习一下!
回复 支持 反对

使用道具 举报

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

本版积分规则

 
 



邮件留言:


 
返回顶部