正文
转 flowcanvas
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
http://blog.sina.com.cn/s/blog_5fb40ceb0102wveq.html
Unity 强大的可视化编程插件,Flowcanvas + Nodecanvas 组合(深度修改版)FSM BehaviorTr
(2017-10-31 16:46:19)
转载▼
标签:
可视化编程游戏开发 |
分类: unity可视化编程 |
强大的可视化编程插件
Flowcanvas + Nodecanvas 组合(深度修改版)
这是一个结合了
仿虚幻4蓝图(基于事件驱动的可视化编程工具)
Playmaker 有限状态机
Behavior tree AI行为树
三者功能为一体的强大可视化编程工具.
我在原版插件的基础上,增加修改了一些功能特性: 括号”改” 表示有修改功能 ,括号”新” 表示是新的功能.
-------------------------------------------------------------------------------------------------
绚丽的UI皮肤,按颜色区分不同类型的节点.(改)
红色: 事件Event节点
橙色:flowcontrol节点 控制逻辑走向
蓝色:普通方法 action
绿色:函数方法 function
酒红色: 嵌套节点 Nested Graph Node (FSM BehaviorTree,Flowscript, macro组节点)
黑色:变量节点
灰色:反射方法节点
三者可相互无限深度绑定嵌套,互为节点(状态机,或行为节点)(改)
无需编译,随写随测.
逻辑即是资源,适用热更新.
可视化调试. 实时数据和逻辑走向追踪. 自动定位出错节点.
打钩后, 会自动锁定出错的节点图和节点。
按F (focus selected nodes)对中显示选中的节点; 如果未选择节点,按F,可选中和对中显示出错的节点. (Focus error Node) (新)
增加快捷键 ctrl+A 全选节点 按键 i : 反选节点 (新)
ctrl +左键框选: 增加框选节点: shift+左键框选: 减去框选节点; 原先的ctrl +左键 创建组,改成 ctrl+shift+左键.
点击showLuaExample有介绍lua语言的语法知识的说明.
高效率编辑. 智能节点搜索工具, 快捷键创建节点. (改)
alt+1 :创建 float节点 alt+2:创建 vector2节点 ; alt+3: vector3 alt+4 :quaternion节点;alt+5: color节点
alt+ctrl+A: 脚本周期节点(awake start update..)
alt+ctrl+S: S字母开头的节点
alt+ctrl+W: W字母开头的节点
alt+ctrl+D: D字母开头的节点
alt+ctrl+D: D字母开头的节点
alt+ctrl+F: F字母开头的节点
alt+ctrl+C: C字母开头的节点
alt+ctrl+R: R字母开头的节点
(快捷键可以在graphEditor脚本里按上述例子增加快捷键)
多个节点可封装成一个新节点 节点视图简洁有序.(新)
选中两个以上节点, 按ctrl+g 坍缩成新的组节点。双击组节点进入组。 选中组节点后按 shift+g 打开组。
点击播放 gif
源码开放,自主定制. 反射调用其他脚本方法属性.
点击播放 gif
自定义函数节点. (新) 弥补flowscript 发送事件没有返回值的缺点.
Functions节点栏中的 Function组: 三个节点 Function, CallFunction, FunctionReturn.
丰富的功能节点库. 常用Unity API无需反射(新).
方便搜寻和定位节点 FindNode节点
右键点击新建变量按钮,可搜索变量类型。方便查找。 中键是创建List 变量类型。(新)
在FSM和Behavior Tree 节点图里创建FlowScript节点图,默认创建 Awake,OnEnable,OnUpdate,OnDisable和Finish节点(代表了状态的初始化,进入,更新,退出和 控制退出的状态(Finish success or Failure))(新)
增加对ToLua的支持. 可以在节点中直接写入lua语句,执行并返回结果.(新)
易学上手. 适用策划美术.
支持发布多个平台.
集成DOTween插件和节点. (改) 增加了tweener 单个float数值和vector3 数值的节点
EasyTouch ,FinalIK, CameraPath插件节点(需导入插件,清除相关节点脚本注释) (新)
......
常见的问题:
嵌套的节点在保存成prefab物体时引用会消失:解决的办法是点击prefab栏的apply按钮,按两次一般会恢复正常。
注意:由于已经修改了很多节点相关的脚本,如果原先已经使用了flowcanvas的项目,最好不要使用此版本,会破坏部分节点图的连线。
适用unity 5.5以上版本
支持正版: https://www.assetstore.unity3d.com/en/#!/content/33903
下载链接: (2018.1.25更新) 修正 function node 名称改变后, 调用此Function的 callfunction node 引用失效
flowcanvas&nodecanvas:
https://pan.baidu.com/s/1htYjNrm
Lua节点:
https://pan.baidu.com/s/1gf5x0ob
使用方法:
下载ToLua项目工程文件(https://github.com/topameng/tolua),
合并入当前的项目工程目录中.在菜单栏中生成ToLua unityEngine的绑定方法文件.
,下载导入lua节点文件,在节点栏中找到并生成lua节点
在节点面板中可自定义参数,写入lua语句:
点击showLuaExample有介绍lua语言的语法知识的说明.
Dotween&插件节点:
http://pan.baidu.com/s/1hs6E4te
graph和nested graph 图表和嵌套资源的本地保存和引用问题:
针对几种情况说明
1:非prefab实例物体的graph和嵌套资源保存:
这种情况比较简单,使用Save To Asset 把绑定的资源(flowscriptcontroller的绑定资源和Nested的绑定资源)一起保存到本地, 所有的嵌套资源都是主资源的子物体。
如果嵌套资源不是绑定生成,而是使用asset资源。那么情况会稍微复杂一些:
如图Sphere球体 的嵌套Behaviour Tree 使用的是 Cube的Nested BT资源,
SaveToAsset后,会自动把所有外部引用的嵌套资源 复制 到了 Sphere球体的主资源下面,但是球体的嵌套BehaviourTree的引用仍然指向Cube的Nested BT资源。 此时系统会log提示你要调整引用的资源名称。
由于资源间互相引用在资源数量多的时候会比较复杂,因此只好手动调整。
避免这种情况发生,一个主graph内的嵌套资源,尽量使用绑定生成,而避免引用其他物体生成嵌套资源,否则比较混乱。
如果要加载其他嵌套的graph资源,可以使用菜单栏 File下的import json和export json,把其他嵌套的graph以Json的方式加载导入.
2 Prefab 的模式的资源保存方式:
普通物体在变成prefab物体,或在Inspector栏按下Apply按钮后,会把它和子物体所有的嵌套资源都保存在prefab的资源物体下(注意,如果有引用其他嵌套资源的话是不会把它复制过来的).
选prefab实例或选择prefab本体的导出的 Asset和嵌套资源时,只要没有引用其他外部嵌套Asset, 那么Save to Asset 保存后引用关系都会正常. 否则得重新手动对资源的引用进行调整.
新的功能 11.2更新:
支持Asset模式,所有嵌套资源都保存在主asset下,同时支持把绑定的资源和其嵌套资源保存到一个Asset资源下. 如图所示, Cube绑定的资源 在使用菜单栏的Save To Asset功能后,全部保存到一个flowscript资源下. (新)
增加菜单栏的清除无用嵌套资源的按钮.