Bolt介绍
概要
Variables-----变量容器,包含变量名称,变量类型,值,不同类型的变量容器可在不同作用域内被调用。
Types—每个Unit和Variables都有类型,支持导入自定义类型。
Unit-----组成Graph的基本单元。Group—对unit分组管理的工具。
Graph----由Unit组成的流程图或由状态组成的状态图。包含Flow Graph和State Graph.
Machine—支持执行Graph的组件。包含Flow Machine与 State Machine.
Bolt-Unit
Unit-----组成Graph的基本单元。
包含输入Port, 输出Port. Port又分为Control Port, Value Port. 前者实现逻辑顺序的连接。后者又来传递参数或返回参数。 Value Port支持类型转换。
Unit包括整个Unity scripting API, 也可以包含第三库以及自定义方法与类。同时包含math, logic, variables, loops, branching, events and coroutines.
Super Unit:内嵌Flow Graph的Unit,可自定义输入输出参数。可以用来实现复用某些过程。
Bolt—Graph
Flow Graph:流程图,通过组合连接Unit而成。
State Graph:这是由各种状态及他们的转移组成的Graph. 包含Flow State Super State , Any State
Flow State包含一个嵌套的Flow Graph(用来实现状态行为)。
Super State包含一个嵌套的State Graph(层级状态机)。
Any State,无论当前什么状态,都可以通过这个来触发事件来转移状态。
State Unit:类似Super Unit,这是嵌套一个了State Graph的Unit。(不能在State Graph创建Unit)
Bolt—Machine
Machine—支持执行Graph的组件。包含Flow Machine与 State Machine.
Machine需要指定Graph Source,可以是Embed Graph或Marco.
Embed | Marco | |
---|---|---|
Relation | 内嵌于Machine中 | 作为资源被Machine引用 |
Re-usability | 在同一预制件上的Machine可以相互引用内嵌Graph | 作为资源,可以被不同预制件上的Machine引用 |
Permanence | 在Machine组件被移除时,Embed同时被删除 | 在Machine组件被移除时,Marco不会被删除只会在切回source时更改引用 |
Scene Reference | 可以引用当前场景下的所有物体 | 不可以引用当前场景下的所有物体 |
Prefabs | 编辑模式实例化的prefab不能使用 | 所有prefab都可以使用 |
使用示例
例1:
1.初始化物体及其位置与大小
2.根据参数更新位置与大小
下图为对应Flow Graph.
Unity线框管道效果
例2:
设置站立动画为初始状态,按下空格后转移到Walk状态,便去寻找预设硬币,到达后回到初始状态。没有硬币后自动转移到Dance状态。 此时若按下空格状态便进入Patrol状态。 下图为对应State Graph.
Unity-Chan基于NavMesh的寻路