lyh916

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  201 随笔 :: 0 文章 :: 12 评论 :: 21万 阅读

参考链接:

https://blog.csdn.net/linxinfa/article/details/72937709

https://blog.csdn.net/wanghaodiablo/article/details/52587364

https://blog.csdn.net/q414620221/article/details/78596732

 

0.节点

一般情况下,只需要扩展Conditional和Action这两种节点即可,Decorator和Composite节点只需要使用内置的就足够了。

对于Conditional节点,根据判断条件返回成功或者失败即可。

对于Action节点,除了成功或者失败之外,还有一种Running的状态,表示该节点还没执行完毕,下一帧继续执行该节点。

对于Composite节点,这里直接引用链接里的:

a.Sequence:

b.Selector:

c.Parallel

 这里对Parallel节点测试一下:

测试一:

测试二:

 

1.行为树的生命周期

一般来说,当一棵树没有可以继续执行的节点时,这棵树的生命周期也就结束了。

a.设置float变量num,值为0。下面的逻辑是如果num大于0,则输出"大于0",否则输出“小于等于0”。这棵树只执行一遍。

b.repeater节点勾选repeat forever,这棵树执行完一遍后就会继续执行了。

c.将num值改为1,增加Action节点,返回Running。这样这颗行为树就会卡在Action节点,不会继续执行其他节点了,生命周期也不会结束。

 d.因为Action节点返回Running,所以行为树一直未执行完毕,repeater节点不起作用,Conditional节点只执行了一遍。

posted on   艰苦奋斗中  阅读(1237)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示