您的位置:首页 > 移动开发 > Unity3D

unity第三方插件behavior designer心得

2015-08-06 14:43 337 查看

一.组合节点打断功能

1.参数AbortType介绍

(1.None 无其他作用



(2.Lower Priority 打断右边

组合节点,完成执行后,在未返回到组合节点的父节点中(即执行到右边分支的过程中),会循环执行到的条件子节点(只有第一层的条件子节点会循环),当条件结果变化时,正在执行的任务会终止,并重新评估执行组合节点



(3.Self 打断子节点

组合节点,执行中,在未返回退出组合节点中(即在组合节点执行过程中),会循环执行到的条件子节点,当条件结果变化时,正在执行的任务会终止,并重新评估执行组合节点



(4.Both (打断右边和子节点)

类似Self和Lower Priority,不同的是:循环执行条件的范围同时包含了两者.



2.多重组合打断的嵌套

组合节点的子组合节点有打断时,子组合节点下应该循环的条件节点继续循环













3.条件执行节点

ConditionalEvaluator装饰节点也可以打断,功能类似Both,不同的是,它有控制循环的参数reevaluate true:执行时循环判定条件,不满足时终止子节点,false:不循环.

4.并行节点与并行选择节点

这两者的关系好比顺序节点和选择节点,

共同点:同时处理多个分支

不同点:并行节点是当一个分支返回失败时,打断终止其它分支并返回失败;

并行选择节点是当一个分支返回成功时,打断终止其它分支并返回成功;

5.PerformInterruption与Interrupt

PerformInterruption与Interrupt,也可以打断,两者组合控制可以完成在不同分支上的打断

二.节点优先级.

任务节点的优先级由重载public virtual float GetPriority();方法实现

三.行为树与脚本之间的数据同步

使用VariableSynchronizer脚本来同步行为树与行为树,行为树与脚本之间的数据

四.自定义节点时相关标签的用法

1.[RequiredField]   强制要求选择参数

2.[TaskDescription("??")]    定义节点描述,在编辑器中选择到节点时在下方提示出

3.[TaskCategory("??/??")]    定义节点在编辑器工具栏中的查找路径

4.[Tooltip("??")] 定义对节点参数的描述

五.相关BUG

1.BehaviorTreeReference节点,关闭了,实际运行时还是会引用到行为树,并执行子树.

2.尽量减少SharedGameObjectList的定义,有时会引起数据异常,解决的方式也很神奇,尝试将变量在类中定义的顺序作调整,可以解决.

            欢迎大家加群(475453656)交流
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# unity