http://blog.sina.com.cn/s/blog_5fb40ceb0102wveq.html

Unity 强大的可视化编程插件,Flowcanvas + Nodecanvas 组合(深度修改版)FSM BehaviorTr

(2017-10-31 16:46:19)

强大的可视化编程插件

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+左键.

高效率编辑. 智能节点搜索工具, 快捷键创建节点.  (改)


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+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资源下. (新)


增加菜单栏的清除无用嵌套资源的按钮.

转 flowcanvas的更多相关文章

  1. zz A list of open source C++ libraries

    A list of open source C++ libraries < cpp‎ | links http://en.cppreference.com/w/cpp/links/libs Th ...

随机推荐

  1. 剑指offer——python【第36题】两个链表的第一个公共结点

    题目描述 输入两个链表,找出它们的第一个公共结点 思路 注意,这里的公告结点的意思是相同的点,不仅值相同,next也相同,那么同理公共结点后面的点也是不仅值相同,而且next也相同,这样的话,就可以把 ...

  2. Linux在终端命令行模式下智能补全功能以及组合键

    linux命令行下也有很多热键(快捷键).先来看看tab键 1.如果想看看linux下以c开头的命令可直接在命令行下敲入c然后连续敲两次tab,再选择y,会显示所有以c开头的命令. 2.涉及到文件时, ...

  3. css学习_css清除浮动

    若元素没有设置宽高,那元素实际宽高是被内容撑起来, 若元素自己有设置宽高,那实际面积于自己的盒子模型有关 1.清除浮动的本质 清除浮动主要是为了解决父级元素因为子级浮动而引起的内部高度为0的问题. ( ...

  4. TypeError: object() takes no parameters

    1.定义了类,在类中实现函数功能,但是需要传参数,我在类中没有建立__init__(self,) 导致没法传参.

  5. [特征工程]-------使用sklearn做单机特征工程[转载]

    https://www.cnblogs.com/jasonfreak/p/5448385.html 使用sklearn做单机特征工程 目录 1 特征工程是什么?2 数据预处理 2.1 无量纲化 2.1 ...

  6. vue -about

    j基于webpack4 搭建vue 环境:https://juejin.im/post/5bc30d5fe51d450ea1328877

  7. 【UML】NO.55.EBook.8.UML.3.001-【UML和模式应用 第3版】

    1.0.0 Summary Tittle:[UML]NO.54.EBook.8.UML.3.001-[UML和模式应用 第3版] Style:DesignPattern Series:DesignPa ...

  8. 0004-20180422-自动化第五章-python基础学习笔记

    内容回顾:1.数据类型 2.for和while循环 continue break #如下循环将怎么打印结果? for i in range(1,10): print(i) for i in range ...

  9. http返回状态码含义

    http返回状态码 http状态码 200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了. 300 3开头的代表重定向,最常见的是302,把这个请求重定向 ...

  10. fpga板制作调试过程记录

    2010-09-11 22:49:00 昨天淘宝准备买块fpga核心板学习,为了练习焊接,我让老板给我散料及pcb板自己焊接. 一,在物料到之前的准备: 我先设计了一下焊接测试计划 1,检查电路板:特 ...