zoukankan      html  css  js  c++  java
  • Unity中的行为树插件:Behavior Designer

         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);
  • 相关阅读:
    电磁学讲义3:电场
    电磁学讲义2:库仑定律
    电磁学讲义1:静电的基本现象
    安卓(Android)手机如何安装APK?
    理论物理极础9:相空间流体和吉布斯-刘维尔定理
    物理学家的LOGO
    Zhulina 的高分子刷理论
    一步一步学Silverlight 2系列(5):实现简单的拖放功能
    地图上显示X,Y 坐标代码
    一步一步学Silverlight 2系列(4):鼠标事件处理
  • 原文地址:https://www.cnblogs.com/yuanyifei/p/4255849.html
Copyright © 2011-2022 走看看