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. 文文---Set,Map

    Set和Map Set:类似数组 成员的值是唯一的 下有 add(),has(),delete(),clear(),size 等方法 Map:类似于对象 成员的值是唯一的 下有 set(),has() ...

  2. VS调试时JSON格式文件加载不了

    在使用VS2012进行调试时发现加载数据为JSON格式的都加载不了,应该是MIME类型没有正确设置的问题. 直接通过浏览器地址栏访问时会收到提示,根据提示在IIS EXPRESS的安装目录下面执行一条 ...

  3. 终于解决 xUnit.net 测试中无法输出到控制台的问题

    2018-8-2 更新:今天发现在 git bash 中用 dotnet test 运行 xunit 测试可以正常输出到控制台,只是在 PowerShell 与 Windows 命令行中有这个问题. ...

  4. java学习笔记-集合set

    equals指内容(值)相等,== 指地址相等 ===============set类 set继承自collection,但set没有新增方法,只是set里的元素不重复,下面是set常用方法 ==== ...

  5. maven跳过单元测试-maven.test.skip和skipTests的区别

    1. 介绍 -DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下. -Dmaven.test.skip=true,不执行测试用例, ...

  6. 减小ipa包大小

    1.删除不用的文件和图片 2.打release模式 3.色调单一图片采用8-bit的,对32-bit的图片采用压缩 4.对音视频采用aac压缩

  7. Android Studio--》Gradle Scripts配置说明

    什么是Gradle? Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言. 安装 ...

  8. Spring 学习教程(一):浅谈对Spring IOC以及DI的理解

    一.个人对IoC(控制反转)和DI(依赖注入)的理解我们平时在开发java web程序的时候,每个对象在需要使用它的合作对象时,自己都要将它要合作对象创建出来(比如 new 对象),这个合作对象是由自 ...

  9. PowerBI新功能: PowerBI多报表共享一个数据集

    在PowerBI里面建模,来来回回摸了一遍之后,肯定不想在另外一个报表的时候重复一次建模--这样不利于复用和维护. 四月份的更新版提供了一个预览功能(如下),可以让多报表(pbix)共享同一个数据集. ...

  10. 如何相互转换逗号分隔的字符串和List【转】

    将逗号分隔的字符串转换为List 方法 1: 利用JDK的Arrays类 String str = "a,b,c"; List<String> result = Arr ...