转 flowcanvas-程序员宅基地

技术标签: lua  json  游戏  

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

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

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

强大的可视化编程插件

Flowcanvas + Nodecanvas 组合(深度修改版)

 

这是一个结合了 

仿虚幻4蓝图(基于事件驱动的可视化编程工具)

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

           Playmaker 有限状态机

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

           Behavior tree  AI行为树

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

三者功能为一体的强大可视化编程工具.  

 

我在原版插件的基础上,增加修改了一些功能特性: 括号”改” 表示有修改功能 ,括号”新” 表示是新的功能.

-------------------------------------------------------------------------------------------------

绚丽的UI皮肤,按颜色区分不同类型的节点.()

红色: 事件Event节点

橙色:flowcontrol节点  控制逻辑走向

蓝色:普通方法 action

绿色:函数方法  function

酒红色: 嵌套节点  Nested Graph Node (FSM BehaviorTree,Flowscript, macro组节点)

黑色:变量节点

灰色:反射方法节点

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


三者可相互无限深度绑定嵌套,互为节点(状态机,或行为节点)()  

 

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

无需编译,随写随测.  

逻辑即是资源,适用热更新.

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


可视化调试.  实时数据和逻辑走向追踪.  自动定位出错节点.

Unity <wbr>强大的可视化编程插件,Flowcanvas <wbr>+ <wbr>Nodecanvas <wbr>组合(深度修改版)FSM <wbr>BehaviorTr
打钩后, 会自动锁定出错的节点图和节点。

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

按F (focus selected nodes)对中显示选中的节点;   如果未选择节点,按F,可选中和对中显示出错的节点. (Focus error Node) (新)
 
增加快捷键 ctrl+A  全选节点     按键 i : 反选节点 (新)
 
ctrl +左键框选: 增加框选节点:  shift+左键框选: 减去框选节点;     原先的ctrl +左键 创建组,改成 ctrl+shift+左键.

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

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

Unity <wbr>强大的可视化编程插件,Flowcanvas <wbr>+ <wbr>Nodecanvas <wbr>组合(深度修改版)FSM <wbr>BehaviorTr
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  打开组。

  点击播放 gifUnity <wbr>强大的可视化编程插件,Flowcanvas <wbr>+ <wbr>Nodecanvas <wbr>组合(深度修改版)FSM <wbr>BehaviorTr


源码开放,自主定制. 反射调用其他脚本方法属性.

    点击播放 gifUnity <wbr>强大的可视化编程插件,Flowcanvas <wbr>+ <wbr>Nodecanvas <wbr>组合(深度修改版)FSM <wbr>BehaviorTr


自定义函数节点. (新)  弥补flowscript 发送事件没有返回值的缺点.

Functions节点栏中的 Function组: 三个节点  Function, CallFunction, FunctionReturn.

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

 

  丰富的功能节点库. 常用Unity API无需反射().

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

方便搜寻和定位节点  FindNode节点
Unity <wbr>强大的可视化编程插件,Flowcanvas <wbr>+ <wbr>Nodecanvas <wbr>组合(深度修改版)FSM <wbr>BehaviorTr

右键点击新建变量按钮,可搜索变量类型。方便查找。 中键是创建List 变量类型。(新)

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

在FSM和Behavior Tree 节点图里创建FlowScript节点图,默认创建 Awake,OnEnable,OnUpdate,OnDisable和Finish节点(代表了状态的初始化,进入,更新,退出和 控制退出的状态(Finish success or Failure))(新)

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

增加对ToLua的支持.  可以在节点中直接写入lua语句,执行并返回结果.(新)

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

 

易学上手适用策划美术.  

 

支持发布多个平台.

 

集成DOTween插件和节点.  (改) 增加了tweener 单个float数值和vector3 数值的节点

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

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的绑定方法文件.

 

Unity <wbr>强大的可视化编程插件,Flowcanvas <wbr>+ <wbr>Nodecanvas <wbr>组合(深度修改版)FSM <wbr>BehaviorTr,下载导入lua节点文件,在节点栏中找到并生成lua节点Unity <wbr>强大的可视化编程插件,Flowcanvas <wbr>+ <wbr>Nodecanvas <wbr>组合(深度修改版)FSM <wbr>BehaviorTr


在节点面板中可自定义参数,写入lua语句:
Unity <wbr>强大的可视化编程插件,Flowcanvas <wbr>+ <wbr>Nodecanvas <wbr>组合(深度修改版)FSM <wbr>BehaviorTr
点击showLuaExample有介绍lua语言的语法知识的说明.

 

Dotween&插件节点:

http://pan.baidu.com/s/1hs6E4te

 

 

graph和nested graph 图表和嵌套资源的本地保存和引用问题:

针对几种情况说明

1:非prefab实例物体的graph和嵌套资源保存:

这种情况比较简单,使用Save To Asset 把绑定的资源(flowscriptcontroller的绑定资源和Nested的绑定资源)一起保存到本地, 所有的嵌套资源都是主资源的子物体。

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

如果嵌套资源不是绑定生成,而是使用asset资源。那么情况会稍微复杂一些:
如图Sphere球体 的嵌套Behaviour Tree 使用的是 Cube的Nested BT资源,
Unity <wbr>强大的可视化编程插件,Flowcanvas <wbr>+ <wbr>Nodecanvas <wbr>组合(深度修改版)FSM <wbr>BehaviorTr
SaveToAsset后,会自动把所有外部引用的嵌套资源 复制到了 Sphere球体的主资源下面,但是球体的嵌套BehaviourTree的引用仍然指向Cube的Nested BT资源。  此时系统会log提示你要调整引用的资源名称。

由于资源间互相引用在资源数量多的时候会比较复杂,因此只好手动调整。   
Unity <wbr>强大的可视化编程插件,Flowcanvas <wbr>+ <wbr>Nodecanvas <wbr>组合(深度修改版)FSM <wbr>BehaviorTr

   避免这种情况发生,一个主graph内的嵌套资源,尽量使用绑定生成,而避免引用其他物体生成嵌套资源,否则比较混乱。   
   如果要加载其他嵌套的graph资源,可以使用菜单栏 File下的import json和export json,把其他嵌套的graph以Json的方式加载导入.
 
2  Prefab 的模式的资源保存方式:
  普通物体在变成prefab物体,或在Inspector栏按下Apply按钮后,会把它和子物体所有的嵌套资源都保存在prefab的资源物体下(注意,如果有引用其他嵌套资源的话是不会把它复制过来的).  
 
Unity <wbr>强大的可视化编程插件,Flowcanvas <wbr>+ <wbr>Nodecanvas <wbr>组合(深度修改版)FSM <wbr>BehaviorTr
 
选prefab实例或选择prefab本体的导出的 Asset和嵌套资源时,只要没有引用其他外部嵌套Asset, 那么Save to Asset 保存后引用关系都会正常.   否则得重新手动对资源的引用进行调整.


新的功能 11.2更新:
 
支持Asset模式,所有嵌套资源都保存在主asset下,同时支持把绑定的资源和其嵌套资源保存到一个Asset资源下. 如图所示, Cube绑定的资源 在使用菜单栏的Save To Asset功能后,全部保存到一个flowscript资源下. (新)

Unity <wbr>强大的可视化编程插件,Flowcanvas <wbr>+ <wbr>Nodecanvas <wbr>组合(深度修改版)FSM <wbr>BehaviorTr
增加菜单栏的清除无用嵌套资源的按钮.   

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

 

转载于:https://www.cnblogs.com/rexzhao/p/8426713.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30478619/article/details/95628473

智能推荐

Android IPC机制-程序员宅基地

文章浏览阅读917次,点赞18次,收藏11次。为了方便有学习需要的朋友,我把资料都整理成了视频教程(实际上比预期多花了不少精力)当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,这四个字就是我的建议!!我希望每一个努力生活的IT工程师,都会得到自己想要的,因为我们很辛苦,我们应得的。

利用ode45求解含控制量并且控制量为离散点的动力学方程_ode函数离散-程序员宅基地

文章浏览阅读2k次,点赞5次,收藏14次。1、写出微分方程函数2、求解function dy=rigid(t,y)dy=zeros(3,1);dy(1)=y(2)*y(3);dy(2)=-y(1)*y(3);dy(3)=-0.51*y(1)*y(2);end%将微分方程写成函数形式,待调用options=odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e-5]);[T Y]=ode45(@rigid,[0 12],[0 1 1],options);plot(T,Y(:,1),'-',T,Y_ode函数离散

Java中==和equals的区别-程序员宅基地

文章浏览阅读3.8w次,点赞41次,收藏180次。==操作符与equals方法的区别_java中==和equals的区别

flask-login-程序员宅基地

文章浏览阅读170次。创建扩展对象实例from flask_login import LoginManagerlogin_manager = LoginManager()login_manager.login_view = 'auth.login'# 上面这一句是设置登录视图的名称,如果一个未登录用户请求一个只有登录用户才能访问的视图,# 则闪现一条错误消息,并重定向到这里设置的登录视图。# 如果未设置..._python flask please log in to access this page

html怎么控制top值为0,关于vue滚动scrollTop 赋值一直为0问题-程序员宅基地

文章浏览阅读428次。Vue中document.body.scrollTop的值总为零的解决办法最近在做vue的时候监听页面滚动发现document.body.scrollTop一直为0但是发现document.body.scrollTop一直是0。查资料发现是DTD的问题。页面指定了DTD,即指定了DOCTYPE时,使用document.documentElement。页面没有DTD,即没指定DOCTYPE时,使用d..._滚动给scrolltop赋值

kingbase数据库安装教程(初步使用)(人大金仓)-程序员宅基地

文章浏览阅读2.1k次,点赞25次,收藏21次。人大金仓数据库管理系统KingbaseES(简称:金仓数据库或KingbaseES)是北京人大金仓信息技术股份有限公司自主研制开发的具有自主知识产权的通用关系型数据库管理系统。_kingbase

随便推点

Linux 命令【6】:cut_cut使用特殊字符为分隔符-程序员宅基地

文章浏览阅读141次。Linux 命令【6】:cut文章目录一、简介二、命令详解三、实例演示一、简介cut 命令是一个将文本按列进行切分的小工具,它可以指定分隔每列的定界符。二、命令详解命令格式:cut {选项} {文件名}选项:-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。-c :以字符为单位进行分割。-d :自定义分隔符,默认为制表符。-f :与-d一起使用,指定显示哪个区域。-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一._cut使用特殊字符为分隔符

音频进度条设置_audiotrack可以设置进度吗-程序员宅基地

文章浏览阅读2.4k次。/** * 播放audio标签视频控制 * */ //等待音频加载完毕 点击每一段录音进行播放 $('.lis').click(function(){ $('.j_voiceCont').show(); var src = $(this).attr("src"); $(this).addClass('c_audiotrack可以设置进度吗

大批量数据分批式导出文件解决,避免OOM(多次查询多次导出形成一个文件)_bufferedwriter避免oom-程序员宅基地

文章浏览阅读2k次。大批量数据的导出,当数据量达到一定的量会导致内存被撑爆,出现 oom异常,基于问题实大批量数据分批的方式进行查询和导出代码实现package com.ly.service;import com.ly.helper.BatchWriteFileUtils;import com.ly.helper.BeanUtils;import com.ly.vo.rs..._bufferedwriter避免oom

如何生成HLS协议的M3U8文件-程序员宅基地

文章浏览阅读5次。什么是HLS协议:HLS(HttpLiveStreaming)是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件。HLS协议应用:由于传输层协议只需要标准的HTTP协议, HLS可以方便的透过防火墙或者代理服务器,而且可以很方便的利用CDN进行分发加速,这样就可以很方便的解决大规模应用的瓶颈。并...

Oracle游标:处理查询结果集的好工具_oracle查询游标结果集-程序员宅基地

文章浏览阅读273次。通过显式游标和隐式游标,我们可以方便地在数据库程序中处理查询结果集,实现复杂的业务逻辑。_oracle查询游标结果集