基于行为树的AI 与 Behavior Designer插件

Composites
这里的"组合" 全名应该被成为“组合节点控制(管理)类目”,顾名思义在此条目下若干个选项都被称之为“控制类节点”,用以从最高的纬度去规范行为树的流程。具体细分为如下几种
Parallel 并行节点 此节点下属所有节点将一起进行,其中某一个执行返回false 则Parallel节点返回false
Parallel Selector 并行选择节点 此节点下属所有节点只要有一个返回success,则Parallel Selector节点返回success
注意: 以上二节点都是并行的,也就是说同时执行所有下属节点
Priority Selector 优选选择节点 此节点下属所有节点依次执行直到返回success
Random Selector 随机选择节点 此节点下属所有节点随机执行直到其中某一个返回success
Ramdom Sequence 随机选择列队节点 此节点下属所有节点随机执行直到其中一个返回false
Selector 选择节点 此节点下属所有节点依次执行直到返回true
Selector Evaluator 计算选择节点(姑且这样叫把,这个名词翻译的优点拗口) 此节点下属所有节点依次执行直到返回success,有一种情况使其返回running状态并中断,就是有节点被打勾了
Sequence 顺序节点 此节点下属所有节点依次执行直到返回false

Decorators
装饰节点应为Composites的分支节点,而装饰节点一般用来修饰判断,比如这个修饰可以是 “直到...成功”,“直到...失败”

Conditional Evaluator 条件计算节点 此节点下属节点执行直到返回success,有一种情况使其返回running状态并中断,就是有节点被打勾了

Interrupt 中断(开关)节点 此节点第一次执行为true第二次为false
Inverter 逆变节点 此节点的子节点如返回success他可将结果改为false反之也可
Repeater 重复节点 此节点可设置该节点下子节点重复执行的次数
Return Failure / Return Success 我就不解释了
Task Guard Task意为任务Guard意为守卫,那么这个节点是告诉我们可以用他来限定该节点的子节点不能同时被两项或以上的任务访问,换而言之该节点可以设置它的子节点能同时被几个任务(其余的节点)访问,类似于多线程访问统一资源我们所使用的Lock。
Until Fuilure / Until Success 直到...返回false/知道...返回Success 这两项我想也没有必要说明了,但看字面上的意思足够说明一切了。
Actions
动作或行为,如“攻击” “追逐”
Action有三大类,第一类为基础的API,第二类为基本的Monobehavior操作 如Animator,Animation,Behavior 等等,第三类为辅助API 都是使用反射处理,当然这个大类隐含着性能的损耗要谨慎使用
此处仅选必要的API解释,其余的相信你可以看懂
Behavior Tree Reference 此节点允许此节点的脚本中重写GetExternalBehaviors方法,也就是你可以在运行时指定一个行为树在当前节点下运行!(动态指定行为树)
Preform Interuption 此节点允许用户中断在节点列表中添加的任务(可以有很多任务)
Restart Behavior Tree 重启行为树
Stop Behavior Tree 终止行为树
另外 Action 一般我们程序需要扩展给策划配置 后文将提到如何自行扩展Action。
Conditionals
用于条件对比,例如 “是否为空” “是否是处于某状态” “是否接收到消息” “是否等于某数值”

作为行为树组建中最容易理解的Conditionals,在其基本API中大多以 "Is has XXX" 开头,顾名思义即可
如何扩展(程序)
创建一个自定义行为(Action)或是节点

相关文档
http://www.opsive.com/assets/BehaviorDesigner/documentation.php?id=5
使用运行时(Runtime)设置的数值
在编辑器中设置的数值有两种一种是在使用功能性节点的时候节点中需要预设的数值,另一种是全局可访问到的数值
添加wait节点的暂停时间
添加全局可访问的数值
非运行时可以使用刚才设置的float数值
当然也可使用全局数值
说完了使用编辑器访问数值现在该使用运行时动态获取这些数值了,代码很简单
相关文档
http://www.opsive.com/assets/BehaviorDesigner/documentation.php?id=54
基于行为树的AI 与 Behavior Designer插件的更多相关文章
- 【转】利用Behavior Designer制作敌人AI
http://www.unity.5helpyou.com/3112.html 本篇unity3d教程,我们来学习下利用Behavior Designer行为树插件来制作敌人AI,下面开始! Beha ...
- 做游戏长知识------基于行为树与状态机的游戏AI(一)
孙广东 2014.6.30 AI. 我们的第一印象可能是机器人,如今主要说在游戏中的应用. 现代的计算机游戏中已经大量融入了AI元素,平时我们进行游戏时产生的交互都是由AI来完毕的.比方在RPG游戏中 ...
- Unity教程之-基于行为树与状态机的游戏AI
AI.我们的第一印象可能是机器人,现在主要说在游戏中的应用.关于AI的相关文章我们在前面也提到过,详细请戳这现代的计算机游戏中已经大量融入了AI元素,平时我们进行游戏时产生的交互都是由AI来完成的.比 ...
- Unity火爆插件Behavior Designer行为树插件学习
如果要让游戏里的角色或者NPC能执行预设的AI逻辑,最简单的用IF..ELSE...神器既可以实现, 但是再复杂的一般用经典的状态机来切换状态,但是写起来比较麻烦.相对的,行为树(Behavior T ...
- unity行为树制作AI简单例子(1)
用行为树来制作AI是非常方便的,今天就给大家简单介绍一下行为树的强大之处. 所用插件 Behavior Designer v1.421 最开始 我使用过Rain插件,不过用过Behavior Desi ...
- Behavior Designer中的内置消息机制
最近在用Behavior Designer,其中需要用到消息机制,看了一下其中自带了这套东西 注册 Owner.RegisterEvent<string>("Message&qu ...
- 基于trie树做一个ac自动机
基于trie树做一个ac自动机 #!/usr/bin/python # -*- coding: utf-8 -*- class Node: def __init__(self): self.value ...
- 查找(四)-------基于B树的查找和所谓的B树
关于B树,不想写太多了,因为花在基于树的查找上的时间已经特么有点多了,就简单写写算了,如果以后有需要,或者有时间,可以再深入写写 首先说一下,为什么要有B树,以及B树是什么,很多数据结构和算法的书上来 ...
- 基于R树索引的点面关系判断以及效率优化统计
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在之前的博客中,我分别介绍了基于网格的空间索引(http:// ...
随机推荐
- python多进程和多线程编程
17 多线程和多进程并发 The modules described in this chapter provide support for concurrent execution of code. ...
- 洛谷——P3373 【模板】线段树 2&& B 数据结构
P3373 [模板]线段树 2 题目描述 如题,已知一个数列,你需要进行下面三种操作: 1.将某区间每一个数乘上x 2.将某区间每一个数加上x 3.求出某区间每一个数的和 线段树维护区间乘法 1.如何 ...
- 洛谷——P2171 Hz吐泡泡
P2171 Hz吐泡泡 题目描述 这天,Hz大大心血来潮,吐了n个不同的泡泡玩(保证没有重复的泡泡).因为他还要写作业,所以他请你帮他把这些泡泡排序成树(左子树<=根<右子树).输出它的后 ...
- Python学习-字符串函数操作3
字符串函数操作 isprintable():判断一个字符串中所有字符是否都是可打印字符的. 与isspace()函数很相似 如果字符串中的所有字符都是可打印的字符或字符串为空返回 True,否则返回 ...
- 《Spring Boot 那些事》
<Spring Boot 那些事>----https://www.bysocket.com/?p=1124
- A + B Problem Too
Problem Description This problem is also a A + B problem,but it has a little difference,you should d ...
- Prim算法和Dijkstra算法的异同
Prim算法和Dijkstra算法的异同 之前一直觉得Prim和Dijkstra很相似,但是没有仔细对比: 今天看了下,主要有以下几点: 1: Prim是计算最小生成树的算法,比如为N个村庄修路,怎么 ...
- poj——1330 Nearest Common Ancestors
Nearest Common Ancestors Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 30082 Accept ...
- Screenshot: available via screen
在使用selenium+PhantomJS进行爬虫时候报错 selenium.common.exceptions.TimeoutException: Message: Screenshot: avai ...
- docker mysql 主从配置
docker安装运行单实例的MySQL参考另一篇文档 http://www.cnblogs.com/manger/p/7611309.html 1.首先在/data/script下创建两个文件my-m ...