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. ASP返回JQuery EasyUI树形要求的JSON格式

    根据http://blog.csdn.net/apollokk/article/details/41382479中提供的数据将结果格式化为JQuery EasyUI树形要求的JSON格式 <% ...

  2. HTML5 - Canvas【申明:来源于网络】

    HTML5 - Canvas 地址:http://hwaphon.site/

  3. Python----Windous下安装python

    一.  python 安装 1. 下载安装包 https://www.python.org/ftp/python/2.7.14/python-2.7.14.amd64.msi # 2.7安装包 htt ...

  4. (function(){…})(); 与 (function(){…}());

    从结果上来说,个人的意见是:他们是一样的.

  5. Rob Pike

    罗布·派克_百度百科 https://baike.baidu.com/item/罗布·派克   1. 你无法断定程序会在什么地方耗费运行时间.瓶颈经常出现在想不到的地方,所以别急于胡乱找个地方改代码, ...

  6. java之threadlocal的使用

    基本介绍 ThreadLocal很多地方叫线程本地变量,或者叫线程本地存储.ThreadLocal为每一个使用该变量的线程都提供一个变量值的副本,是每一个线程都可以独立地改变自己的副本,而不会和其它线 ...

  7. Ext 修改内容之后 不做任何动作 再次修改时的数据是原来第一次修改前的数据

    转自  http://blog.csdn.net/jaune161/article/details/18220257 在项目开发中遇到这样一个问题,点击Grid中的一条记录并修改,修改完后保存并且刷新 ...

  8. java框架之Hibernate(2)-持久化类&主键生成策略&缓存&事务&查询

    持久化类 概述 持久化:将内存中的对象持久化到数据库中的过程就是持久化.Hibernate 就是用来进行持久化的框架. 持久化类:一个 Java 对象与数据库的表建立了映射关系,那么这个类在 Hibe ...

  9. Linux平台 Oracle 18c RAC安装Part2:GI配置

    三.GI(Grid Infrastructure)安装 3.1 解压GI的安装包 3.2 安装配置Xmanager软件 3.3 共享存储LUN的赋权 3.4 使用Xmanager图形化界面配置GI 3 ...

  10. SpringBoot项目启动时链接数据库很慢

    SpringBoot项目启动时链接数据库很慢 springboot项目在启动时候,如下图所示,链接数据库很慢 解决方法:在mysql 的配置文件中 配置 skip-name-resolve