BehaviorManager.instance.Tick(behaviorTree); 卸载update里u3d直接卡死 = =
SharedVariable直接赋值会改变他的引用关系,必须用XXX.Value赋值 = =

http://www.opsive.com/assets/BehaviorDesigner/documentation.php


两种自定义Task:  Task 和 Parent Tasks

基础task流程 ( Conditional Task  和   Action Task )


Parent Tasks
  1. // The maximum number of children a parent task can have. Will usually be 1 or int.MaxValue
  2. public virtual int MaxChildren();
  3. // Boolean value to determine if the current task is a parallel task
  4. public virtual bool CanRunParallelChildren();
  5. // The index of the currently active child
  6. public virtual int CurrentChildIndex();
  7. // Boolean value to determine if the current task can execute
  8. public virtual bool CanExecute();
  9. // Apply a decorator to the executed status
  10. public virtual TaskStatus Decorate(TaskStatus status);
  11. // Notifies the parent task that the child has been executed and has a status of childStatus
  12. public virtual void OnChildExecuted(TaskStatus childStatus);
  13. // Notifies the parent task that the child at index childIndex has been executed and has a status of childStatus
  14. public virtual void OnChildExecuted(int childIndex, TaskStatus childStatus);
  15. // Notifies the task that the child has started to run
  16. public virtual void OnChildStarted();
  17. // Notifies the parallel task that the child at index childIndex has started to run
  18. public virtual void OnChildStarted(int childIndex);
  19. // Some parent tasks need to be able to override the status, such as parallel tasks
  20. public virtual TaskStatus OverrideStatus(TaskStatus status);
  21. // The interrupt node will override the status if it has been interrupted.
  22. public virtual TaskStatus OverrideStatus();
  23. // Notifies the composite task that an conditional abort has been triggered and the child index should reset
  24. public virtual void OnConditionalAbort(int childIndex);

父节点基础类ParentTask派生出装饰节点Decorator
  1. // The maximum number of children a parent task can have. Will usually be 1 or int.MaxValue
  2. public virtual int MaxChildren();
  3. // Boolean value to determine if the current task is a parallel task
  4. public virtual bool CanRunParallelChildren();
  5. // The index of the currently active child
  6. public virtual int CurrentChildIndex();
  7. // Boolean value to determine if the current task can execute
  8. public virtual bool CanExecute();
  9. // Apply a decorator to the executed status
  10. public virtual TaskStatus Decorate(TaskStatus status);
  11. // Notifies the parent task that the child has been executed and has a status of childStatus
  12. public virtual void OnChildExecuted(TaskStatus childStatus);
  13. // Notifies the parent task that the child at index childIndex has been executed and has a status of childStatus
  14. public virtual void OnChildExecuted(int childIndex, TaskStatus childStatus);
  15. // Notifies the task that the child has started to run
  16. public virtual void OnChildStarted();
  17. // Notifies the parallel task that the child at index childIndex has started to run
  18. public virtual void OnChildStarted(int childIndex);
  19. // Some parent tasks need to be able to override the status, such as parallel tasks
  20. public virtual TaskStatus OverrideStatus(TaskStatus status);
  21. // The interrupt node will override the status if it has been interrupted.
  22. public virtual TaskStatus OverrideStatus();
  23. // Notifies the composite task that an conditional abort has been triggered and the child index should reset
  24. public virtual void OnConditionalAbort(int childIndex);



Behavior Designer扩展的更多相关文章

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

    优点:    0.行为逻辑和状态数据分离,任何节点都可以反复利用.    1.高度模块化状态,去掉状态中的跳转逻辑,使得状态变成一个"行为".    2."行为" ...

  2. Behavior Designer中的内置消息机制

    最近在用Behavior Designer,其中需要用到消息机制,看了一下其中自带了这套东西 注册 Owner.RegisterEvent<string>("Message&qu ...

  3. 【转】利用Behavior Designer制作敌人AI

    http://www.unity.5helpyou.com/3112.html 本篇unity3d教程,我们来学习下利用Behavior Designer行为树插件来制作敌人AI,下面开始! Beha ...

  4. Unity火爆插件Behavior Designer行为树插件学习

    如果要让游戏里的角色或者NPC能执行预设的AI逻辑,最简单的用IF..ELSE...神器既可以实现, 但是再复杂的一般用经典的状态机来切换状态,但是写起来比较麻烦.相对的,行为树(Behavior T ...

  5. Behavior Designer中Wait节点的坑

    某一组行为放在并行节点下,并且包含Wait节点动作.当等待时间不达到时它会返回Runing 造成整个行为树阻塞 应该考虑写一个CD时间装饰器来解决此类问题,当CD时间未到返回Failure

  6. Behavior Designer 学习

    http://www.opsive.com/ 简单Demo Sequence Selector Chase Enemy enemy:player:

  7. 【转】手动写一个Behavior Designer任务节点

    http://blog.csdn.net/qq_33747722/article/details/53539532 自己手写一个类似于CanSeeObject.Seek等任务节点并不是一件难事 下面我 ...

  8. 【Unity笔记】Behaviour Designer的使用方法

    Tasks列表 -- Composites选项 Sequence:图标是“箭头”,相当于And逻辑.下接多个子任务,它们从左到右依次执行.所有子任务执行成功,则Sequence返回成功:任一子任务执行 ...

  9. ThinkPHP框架设计与扩展总结

    详见:http://www.ucai.cn/blogdetail/7028?mid=1&f=5 可在线运行查看效果哦 导言:ThinkPHP框架是国内知名度很高应用很广泛的php框架,我们从一 ...

随机推荐

  1. 字符串系列——KMP模板整理

    KMP模板整理 KMP与扩展KMP: /*vs 2017/ vs code以外编译器,去掉windows.h头文件和system("pause");*/ #include<i ...

  2. 折线分割平面(hdoj 2050,动态规划递推)

    Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平面 ...

  3. Servlet过滤器的使用

    Servlet过滤器的使用 制作人:全心全意 Servlet过滤器:Servlet过滤器与Servlet十分相似,但它具有拦截客户端请求的功能,Servlet过滤器可以改变请求中的内容,来满足实际开发 ...

  4. 03 Python的那些事

    目录: 1) 创始人以及重要发展历程 2) Python语言的特点 3) TIOBE排名 4) 解释器 5) Python后缀名 6) 变量规则和约定 7) 常量 8) 注释 9) 缩进 10) Py ...

  5. plotting and saving over line in paraView

    probe -- provides the field values in a particular location in space To save plotoverline to csv fil ...

  6. sprintf用法

    函数简介 函数功能:把格式化的数据写入某个字符串 头文件:stdio.h 函数原型:int sprintf( char *buffer, const char *format [, argument] ...

  7. Codeforces 990D - Graph And Its Complement

    传送门:http://codeforces.com/contest/990/problem/D 这是一个构造问题. 构造一张n阶简单无向图G,使得其连通分支个数为a,且其补图的连通分支个数为b. 对于 ...

  8. codechef 营养题 第一弹

    第一弾が始まる! 定期更新しない! 来源:http://wenku.baidu.com/link?url=XOJLwfgMsZp_9nhAK15591XFRgZl7f7_x7wtZ5_3T2peHh5 ...

  9. JavaEE最新技术整理--新技术

    JavaEE最新技术整理-----https://blog.csdn.net/qq_21683643/article/details/79747922

  10. [luoguP2434] [SDOI2005]区间(贪心)

    传送门 简单贪心 ——代码 #include <cstdio> #include <iostream> #include <algorithm> int n, l, ...