FlowCanvas官方文档翻译(一)

完整 API 文档地址:FlowCanvas

1.Getting Started

1.1 The FlowScript Controller 流程脚本控制器

FlowCanvas的最重要的组件是FlowScriptController组件。 顾名思义,这个组件负责控制流程脚本,并且必须将其添加到您希望由流程脚本控制的游戏对象上。 虽然这不是强制性的,但它是最快速和最建议的方式快速开始。 一旦在游戏对象上添加了FlowScriptController组件,您将注意到添加了另一个名为“Blackboard”的组件。 这是你将创建变量的地方,但更多的这些变量将在后面解释。

FlowScriptController需要分配一个FlowScript,或者,您可以单击“创建新”按钮来创建和分配一个。 将弹出一个选项,询问您是否要创建“绑定”或“资产”图形。

  • 绑定图,绑定到游戏对象上的FlowScriptController附加。 因此,这允许您直接在flowscript的各个节点中拥有和分配场景对象引用。
  • 资产图表是在项目中另存为.asset文件的图表。 这样做的好处是,如果你需要,它可以在任何数量的不同的FlowScriptController之间使用和分配,但缺点是,因为它是一个资产,你不能在流程脚本的节点中有场景对象引用。

在大多数情况下,创建绑定图是建议的类型,但不要担心太多,因为你可以在任何时候你想要的两者之间进行转换。

一旦您通过按钮创建了流程脚本,编辑器将立即显示。

1.2 Understanding the Flow 了解流程

可能是你需要了解FlowCanvas的最重要的方面,是如何通过连接从节点传输流和数据,以及为什么。 首先,我们将要解释存在的两种不同类型的端口。

Flow Ports 流程端口

流程端口是执行信号通过其逐个节点地行进并且“使事情发生”的端口。 流端口等效于相继调用方法/函数,并且按顺序,非常类似于在实际编码中如何做。 流信号总是从左向右传播,相当于在代码中如何从上到下调用方法。 因此,将流端口连接到另一个输入流端口,就像调用该端口。
在下面的示例中,一旦按下“Fire1”按钮,事件节点将开始一个流信号。 一旦发生这种情况,将调用日志文本节点。

  • 流输出只能有一个输出连接(如果要拆分流,可以使用拆分节点)。
  • 流输入可以有任意数量的输入连接。
  • 流端口只能连接到其他流量端口。

Value Ports 值端口

值端口是通过其传输实际数据值,如数字,字符串,布尔,游戏对象和几乎任何类型的数据。 值端口等效于在代码中获取值,并将此值作为参数提供给某个对象。 与Flow信号不同,这是以从右到左的向后方式完成的。 因此,价值端口大多数等价于get。
在下面的示例中,当如前所述调用日志文本时,“Text”参数将请求并获取连接到它的值,因此控制台现在将记录“hello!”。

  • 值输出可以有任意数量的输出连接。
  • 值输入只能有一个传入连接。
  • 值端口只能连接到相同或可分配类型的其他值端口。 什么可分配类型意味着,将在后面更详细地解释。

1.3 Adding Nodes 添加节点

有很多方法可以将一个节点添加到流程图中。 每种方式在下面详细描述。

Context Menu & Browser 上下文菜单和浏览器

添加新节点的最直接的方法是通过右键单击画布以显示上下文菜单,或者通过在编辑器中点击“空格”键来调出完整的浏览器。 在这两种情况下,将弹出包含节点分类的菜单,但在完整浏览器的情况下,还会有一个搜索栏,图标以及使用箭头键导航的功能。 随意使用。

Drag & Drop Objects 拖拽物体

另一种添加节点的方法是将任何对象引用从场景或项目拖放到flowscript画布中。 根据拖动的内容,将弹出不同的上下文菜单。 此菜单将允许您将对象添加为变量节点,或者甚至调用,获取/设置其方法或属性之一。 在下面的示例中,一个Camera组件被拖动,但你可以真正拖放任何东西。

Drag & Drop Port Connections 拖放端口连接

等另一种方式添加一个新的节点是将一个端口连接拖入空画布。 这将显示一个上下文相关菜单,其中包含所拖动端口类型的相关节点,并自动将两个节点连接在一起,如下所示。 这是一个时间保护程序,它允许您探索可以做什么拖动端口类型,虽然它不包括可以做的一切。

Drag & Drop Variables 拖放变量

添加新节点(特别是get和set变量节点)的最终方法是通过在画布中拖放变量。

1.4. Connecting Nodes 连接节点

将节点端口连接在一起是简单和直接,甚至有一些额外的功能,以帮助你。 将两个端口连接在一起的最基本的方法是单击将一个端口拖放到另一个端口。 这可以以向前以及向后方式(意味着将输出连接到输入或输入到输出)来完成。

或者,您也可以单击将端口拖放到整个目标节点。 在这种情况下,将弹出一个敏感的上下文菜单,列出拖拽端口可以连接的可能端口。 这有助于加快您的工作流程,而不是试图定位到一个端口的正确位置。 这也可以以向后方式的向前进行。

删除连接可以通过右键单击端口来完成。 如果端口有多个连接,则所有端口都将被删除。
如果将端口连接拖动到空画布中,则类型敏感上下文菜单将弹出与拖动的端口类型相关的可用节点。 选择该菜单中的节点,将自动添加并连接它。

1.5. Creating Groups 创建组

画布组是一个编辑器功能,允许将一组节点组织在一起,用于组织和注释原因。
要创建画布组,只需在画布中单击并拖动,就像进行多选时,然后在释放鼠标按钮之前,按住Control键。

然后您可以右键单击标题重命名组,删除它或选择所有的节点里面。 如果愿意,您可以在其他画布组中嵌套画布组。
如果要移动画布组而不移动节点以进行重组,则可以在拖动画布组的同时按住shift键。

1.6. The "Self" Parameter    “Self”参数

在FlowCanvas中,术语“Self”表示为其执行流程脚本的流程脚本的所有者。 或者换句话说,FlowScriptController附加到的游戏对象。 术语“Self”通常可以在节点的实例端口上看到,如果该端口是GameObject类型或任何派生组件。
在下面的示例中,Animator.SetFloat节点的Animator参数被标记为“Self”,因为它是将调用Set Float的实例。 如果未连接和未分配,该参数将在运行时通过从FlowScriptController附加的游戏对象获取Animator组件来解析。 如果没有,当然,参数将解析为null。

另一个可以找到“自我”术语的地方是在特定的事件节点。 在下面的示例中,默认情况下将针对附加到“自我”游戏对象的对撞机检查事件,但如果需要,您可以自由分配或链接另一个对撞机。 (关于事件和链接变量的更多信息将在后面解释)。

1.7. Visual Debugging 可视化调试

FlowCanvas附带了一个非常信息的视觉调试器。 在运行时,您可以在编辑器窗口中观察所有流量信号和数据传输。 连接将以黄色相应闪烁,并且值端口连接将显示当前通过它和目标节点传输的值!

时间: 2024-10-27 19:03:32

FlowCanvas官方文档翻译(一)的相关文章

Swift 集合类型(Collection Type) 之 字典(dictionary)(官方文档翻译及总结)

Swift语言提供经典的数组和字典两种集合类型来存储集合数据.数组和字典中存储的数据值类型必须明确.这意味着我们不能把不正确的数据类型插入其中.Swift对显式类型集合的使用确保了我们的代码对工作所需要的类型非常清楚.也让我们在开发中可以早早的找到任何的类型不匹配错误.如果你用变量(var)创建的集合,这些集合就是可变的(增删改).如果用常理创建的,这些集合是不能被操作的. 注意: 如果集合的元素是不变的,那就将集合声明为常量.这样Swift编译器能对你创建的集合做性能优化. 1. 数组(arr

NServiceBus官方文档翻译(一)NServiceBus 概况

NServiceBus 概况 NServiceBus 被设计用来组合面向业务的服务,它并不是用来替代诸如 WCF 一类的RPC技术. NServiceBus 不只包含通信模块,像其他成熟的SOA和DDD项目一样,它使用了多种组合的方法和技术. 本篇文章探讨了 NServiceBus 和微软相关产品的相似点和不同点. 相比 BizTalk 更接近 WCF 当人们听到“服务总线”这个名词时,一般会描绘出如上图所示的画面,像 BizTalk 一样所有的通信都经过一个中央结点.这实际上描述的是一个代理的

Python3.2官方文档翻译--标准库概览(一)

7.1 操作系统接口 Os模块提供主要许多与操作系统交互的函数. >>> import os >>> os.getcwd() # Return the current working directory 'C:\\Python31' >>> os.chdir('/server/accesslogs') # Change current working directory >>> os.system('mkdir today') # R

Alljoyn瘦客户端库介绍(官方文档翻译)

Alljoyn瘦客户端库介绍(1) 1.简介 本文档对AllJoynTM瘦客户端的核心库文件(AJTCL)进行了详尽的介绍.本文档介绍了系统整体架构,AllJoyn框架结构,并着重于介绍如何将嵌入式设备加入AllJoyn系统整体架构中.1.1目的 本文档介绍了如何使一个受限于功耗.计算能力和内存的设备(嵌入式设备)加入AllJoyn分布式系统.具体而言,本文档包括了对AllJoyn面向嵌入式系统的方面的介绍,并着重描述了基于AllJoyn的系统的各个组件是如何与嵌入式设备协作以构建一个基于接近式

Oracle 12c 12.1.0.1.0管理控制文件官方文档翻译说明

Link: http://download.csdn.net/detail/rlhua/7718571 官方Link: http://docs.oracle.com/database/121/ADMIN/control.htm#ADMIN006 版本: [email protected]>select * from v$version; BANNER                                                                          

官方文档翻译:Innodb的锁

InnoDB Record, Gap, and Next-Key Locks 考虑到翻译准确性,对于某些特殊名称不做翻译,以免误导: InnoDB has several types of record-level locks including record locks, gap locks, and next-key locks. innodb 有几种行锁类型,包括,record locks(记录锁),gap locks(间隙锁),and next-key locks(组合). Record

Aircrack-ng官方文档翻译[中英对照]---Airmon-ng

Aircrack-ng官方文档翻译---Airmon-ng Description[简介] This script can be used to enable monitor mode on wireless interfaces. It may also be used to go back from monitor mode to managed mode. Entering the airmon-ng command without parameters will show the int

Aircrack-ng官方文档翻译[中英对照]---Airdecap-ng

Aircrack-ng官方文档翻译---Airdecap-ng Description[简介] With airdecap-ng you can decrypt WEP/WPA/WPA2 capture files. As well, it can also be used to strip the wireless headers from an unencrypted wireless capture. It outputs a new file ending with ”-dec.cap”

Swift语言官方文档翻译(2)

A Swift Tour 按照惯例,我们一般学习一个新语言的时候,我们都习惯性的在屏幕上打印"Hello, World",在Swift中,你可以用如下一个单独语句实现 println("Hello,World") 如果你用C或者OC写过程序,那么上面的语句对于你来说是很熟悉的.在Swift中,这一行代码就是一个完整的程序,你不需要为了类似I/O或者String handling去导入一些jar包.全局变量将作为一个程序的入口点,所以你不需要main函数,你也不需要在