查看: 770|回复: 10

[可视化蓝图脚本] 【管理蓝图通信 | Unreal Engine】

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2016-6-27 16:18:53 | 显示全部楼层 |阅读模式


本页面的内容:

      
概述

引用目标蓝图的简单方法
创建目标蓝图的对象变量
指定蓝图实例
使用目标蓝图的函数、事件及变量

引用目标蓝图的其他方法
类型转换为蓝图类型
指定一种蓝图类型作为函数参数

问题解决
     概述
当您应用蓝图时,有时您可能会发现需要访问另一个蓝图中包含的函数、事件及变量。最简单的方法是通过一个公开暴露的对象变量来引用“目标”蓝图,然后指出您想使用的蓝图实例。
引用目标蓝图的简单方法
下面给出了一个示例,展示了从您正在处理的蓝图中引用一个目标蓝图的最简单的、最通用的方法。

创建目标蓝图的对象变量
当您正在应用一个蓝图时,创建一个引用目标蓝图的目标变量使您可以访问该蓝图的函数、事件及变量。

要想创建一个引用目标蓝图的变量:

在蓝图编辑器中打开您正在处理的蓝图(正在工作中的蓝图)。

在 图表 模式中,通过在 我的蓝图 面板中点击 Variable(变量) 按钮来创建一个新变量。

【虚幻4翻译文档-管理蓝图通信 | Unreal Engine】[虚幻4中文文档]



给这个新变量取一个和目标蓝图相关的资源文件名称,比如 "TargetBlueprint" 。

在 详细信息 面板中,点击 Variable Type(变量类型) 旁边的下拉框。展开  Object(对象) 部分。

【虚幻4翻译文档-管理蓝图通信 | Unreal Engine】[虚幻4中文文档]



滚动列表,并选择您想引用的那个蓝图的资源文件名称。蓝图类型的引用在其资源文件名称后会附加  "_C" 。

【虚幻4翻译文档-管理蓝图通信 | Unreal Engine】[虚幻4中文文档]



作为最佳实践,最好给你的新对象变量添加一个工具提示信息,可以通过在 Tooltip(工具提示信息) 框中输入文本来完成,比如 "到您想通信的蓝图的引用。"




在 我的蓝图 面板中,点击新对象变量旁边的“闭合眼睛”图标,把它变为“睁开的眼睛”。这通过使得该对象变量变为公有状态来暴露该变量,从而可以在关卡编辑器的 详细信息 面板中设置它们的值。




【虚幻4翻译文档-管理蓝图通信 | Unreal Engine】[虚幻4中文文档]



“睁开的眼睛” 图表周围的绿色表示该暴露的变量有工具提示信息。如果暴露的变量没有工具提示信息,那么眼睛周围的区域将会使黄色。

编译并保存蓝图。

在决定暴露哪个变量、函数及事件时一定要小心处理。除非其他人访问及修改这些变量是安全的,否则不要暴露这些变量。作为最佳实践指南,最好仅暴露其他蓝图需要的变量及您想让关卡设计师修改的变量,而不是暴露所有内容。

指定蓝图实例
类蓝图可以作为一种模板或原型,您可以根据它来创建多个实例。由于这个原因,所以当您正在引用一个目标蓝图时,您可以指定您想使用的目标蓝图实例。

要想指定您想使用的目标蓝图实例:

在关卡编辑器的 详细信息 面板中,在选中正在工作的蓝图的情况下,查找您刚刚创建的公开暴露的变量的部分。如果您没有在创建变量时指定不同的部分,那么您可以在 Default(默认) 部分找到它。(注意,您必须在您的关卡中放置一个目标蓝图的实例,以便可以在 详细信息 面板中选择一个蓝图)。

在引用目标蓝图的对象变量资源文件名称旁边的下拉框中,选择您想使用的蓝图实例。

【虚幻4翻译文档-管理蓝图通信 | Unreal Engine】[虚幻4中文文档]



如果您正在处理的蓝图是关卡蓝图,那么您应该在蓝图编辑器中指定您要使用的蓝图实例,而不是在关卡编辑器中。默认情况下,蓝图编辑的 详细信息 面板位于左下角。

如果您不确定列表中的哪个实例和您想使用的实例相对应,那么您可以在场景大纲视图或者视口中选择您想使用的实例,然后在下拉菜单中点击 Use Selected(应用选中项) 。

使用目标蓝图的函数、事件及变量
在您为目标蓝图创建了一个对象变量后,您可以通过按住Ctrl并拖拽那个变量到图表中来获得到这个变量的引用,这会为它创建一个变量"getter"节点。然后,若您从那个节点的输出引脚开始向外拖拽鼠标,将会出现关联菜单,显示了您可以使用的目标蓝图中的事件、函数及变量的列表。现在您可以像使用其他任何脚本元素一样使用这些元素了。

【虚幻4翻译文档-管理蓝图通信 | Unreal Engine】[虚幻4中文文档]


引用目标蓝图的其他方法
从正在工作的蓝图中引用目标蓝图的更复杂的方法包括:

类型转换为目标蓝图类型。

指定目标蓝图类型作为一个函数的参数

类型转换为蓝图类型
您可以类型转换为蓝图类型,就像您类型转换为其他Actor一样。

要想类型转换为一个蓝图类型:

在事件图表中,从一个节点的输出引脚拖拽鼠标,该节点的关联菜单中要包含Casting(类型转换)节点,比如Actor的对象变量。在出现的关联菜单中,开始输入"cast"。滚动列表到 Casting(类型转换) 下来查找您的目标蓝图类型,并选择它。

【虚幻4翻译文档-管理蓝图通信 | Unreal Engine】[虚幻4中文文档]



【虚幻4翻译文档-管理蓝图通信 | Unreal Engine】[虚幻4中文文档]



从列出了目标蓝图类型的输出引脚拖拽鼠标来查看关联菜单,该菜单中包含了目标蓝图的函数、事件及变量。

【虚幻4翻译文档-管理蓝图通信 | Unreal Engine】[虚幻4中文文档]



如果类型转换成功,那么您可以使用目标蓝图类型中的任何函数、事件及变量。您从这个关联菜单中添加的任何节点都将会自动地连接到该类型转换节点的 "success"输出执行引脚。

【虚幻4翻译文档-管理蓝图通信 | Unreal Engine】[虚幻4中文文档]



指定一种蓝图类型作为函数参数
当您在蓝图中应用函数时,您可以把目标蓝图类型指定为那个函数的参数。

要想创建一个指定蓝图类型作为函数参数的函数:

在正在工作的蓝图内,从  我的蓝图 面板中,点击 Function(函数) 按钮来创建一个函数。

【虚幻4翻译文档-管理蓝图通信 | Unreal Engine】[虚幻4中文文档]



在 详细信息 面板中,通过点击 Function(新建) 按钮来添加一个 输入 。

【虚幻4翻译文档-管理蓝图通信 | Unreal Engine】[虚幻4中文文档]



在 NewParam(新建变量) 旁边的下拉框中,展开 Object (对象) 部分,找到目标蓝图类型,并选择它。

【虚幻4翻译文档-管理蓝图通信 | Unreal Engine】[虚幻4中文文档]



在事件图表中,从新变量的输出引脚开始拖拽鼠标。出现的关联菜单包含了目标蓝图的函数、事件及变量,现在您就可以使用它们了。

【虚幻4翻译文档-管理蓝图通信 | Unreal Engine】[虚幻4中文文档]


问题解决
一个常见的错误是您的变量中没有指定实例。如果您正在从当前工作的蓝图中调用目标蓝图中的脚本时该脚本不能工作,那么请确保您在当前工作的蓝图的 详细信息 面板中已经指定了您想使用的蓝图实例。但是,如果您通过函数调用的结果设置了该变量,那么您应该会在您的日志中看到一个警告,提示您的变量有一个 "Access None(没有访问项)"异常。如果你调出信息日志窗口,它应该会提供了一个到导致该问题的节点的可点击链接。
回复

使用道具 举报

0

主题

866

帖子

2867

积分

vip会员

Rank: 1

积分
2867
发表于 2016-7-2 19:59:16 | 显示全部楼层
版主我爱你
回复 支持 反对

使用道具 举报

0

主题

868

帖子

2906

积分

vip会员

Rank: 1

积分
2906
发表于 2016-7-3 17:23:35 来自手机 | 显示全部楼层
恩,好资源~ 哈哈~
回复 支持 反对

使用道具 举报

0

主题

847

帖子

2835

积分

vip会员

Rank: 1

积分
2835
发表于 2016-7-4 09:58:19 | 显示全部楼层
啊啊啊啊,好多好多好多
回复 支持 反对

使用道具 举报

0

主题

833

帖子

2759

积分

vip会员

Rank: 1

积分
2759
发表于 2016-7-7 13:12:53 | 显示全部楼层
要查看本帖隐藏内容请回复
回复 支持 反对

使用道具 举报

0

主题

858

帖子

2787

积分

vip会员

Rank: 1

积分
2787
发表于 2016-7-8 04:17:44 | 显示全部楼层
看看这个好不好啊
回复 支持 反对

使用道具 举报

0

主题

863

帖子

2876

积分

vip会员

Rank: 1

积分
2876
发表于 2016-7-9 07:45:00 来自手机 | 显示全部楼层
快没金币了,看看需要多少?
回复 支持 反对

使用道具 举报

0

主题

889

帖子

2942

积分

vip会员

Rank: 1

积分
2942
发表于 2016-7-12 05:46:30 | 显示全部楼层
版主我爱你
回复 支持 反对

使用道具 举报

0

主题

838

帖子

2742

积分

vip会员

Rank: 1

积分
2742
发表于 2016-7-12 15:45:34 来自手机 | 显示全部楼层
谢谢支持。
回复 支持 反对

使用道具 举报

0

主题

874

帖子

2868

积分

vip会员

Rank: 1

积分
2868
发表于 2016-7-12 23:48:55 | 显示全部楼层
来看看......
回复 支持 反对

使用道具 举报

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

本版积分规则

 
 



邮件留言:


 
返回顶部