开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

教程分享

关注:664

当前位置:游戏蛮牛 技术专区 教程分享

查看: 485|回复: 0

[基础知识] Unity中的行为树插件 Behavior Designer

[复制链接]  [移动端链接]
抢楼 抢楼 本帖为抢楼帖,欢迎抢楼! 
6蛮牛粉丝
1040/1500
排名
3470
昨日变化
2

365

主题

378

帖子

1040

积分

Rank: 6Rank: 6Rank: 6

UID
16254
好友
12
蛮牛币
2383
威望
0
注册时间
2014-3-3
在线时间
67 小时
最后登录
2016-11-10
发表于 2015-12-21 11:37:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
  行为树的概念出现已经很多年了,总的来说,就是使用各种经典的控制节点+行为节点进行组合,从而实现复杂的AI。目前在游戏中一般复杂的AI都可以看到行为树的身影,简单的AI可以使用状态机来实现。

  Behavior Designer插件里,主要有四种概念节点,都称之为Task。包括:

  (1) Composites  组合节点,包括经典的:Sequence,Selector,Parallel

  (2) Decorator 装饰节点,顾名思义,就是为仅有的一个子节点额外添加一些功能,比如让子task一直运行直到其返回某个运行状态值,或者将task的返回值取反等等

  (3) Actions     行为节点,行为节点是真正做事的节点,其为叶节点。Behavior Designer插件中自带了不少Action节点,如果不够用,也可以编写自己的Action。一般来说都要编写自己的Action,除非用户是一个不懂脚本的美术或者策划,只想简单地控制一些物件的属性。

  (4) Conditinals 条件节点 ,用于判断某条件是否成立。目前看来,是Behavior Designer为了贯彻职责单一的原则,将判断专门作为一个节点独立处理,比如判断某目标是否在视野内,其实在攻击的Action里面也可以写,但是这样Action就不单一了,不利于视野判断处理的复用。一般条件节点出现在Sequence控制节点中,其后紧跟条件成立后的Action节点。

  Behavior Designer对于变量的共享做了如下处理:

  在同一个Behavior Tree(一般一个GameObject有一个Behavior Tree)的Task间共享的局部变量可以直接在编辑器的Variables添加;另外也支持在不同Behavior Tree之间共享的全局变量;还支持Task与非Task(游戏系统中的其他脚本)之间进行变量传递,通过下面代码进行:

  behaviorTree.GetVariableName("MyVariableName");

  behaviorTree.SetVariableName("MyVariableName", value);

  看了下Behavior Tree官网的视频,感觉还是挺清晰的,就是Sample代码需要一个码才能下载,木有码只能不了了之了,毕竟目前只是用非正式渠道的插件。

unity 树;behavior designer unity;unity行为树;行为树unity;unity behavior designer

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表