参考链接:

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:

[Unity插件]AI行为树使用总结

b.Selector:

[Unity插件]AI行为树使用总结

c.Parallel

[Unity插件]AI行为树使用总结

 这里对Parallel节点测试一下:

测试一:

[Unity插件]AI行为树使用总结

[Unity插件]AI行为树使用总结

测试二:

[Unity插件]AI行为树使用总结

[Unity插件]AI行为树使用总结

 

1.行为树的生命周期

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

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

[Unity插件]AI行为树使用总结

[Unity插件]AI行为树使用总结

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

[Unity插件]AI行为树使用总结

[Unity插件]AI行为树使用总结

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

[Unity插件]AI行为树使用总结

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

[Unity插件]AI行为树使用总结

[Unity插件]AI行为树使用总结

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-19
  • 2021-06-18
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-05-26
  • 2021-05-14
  • 2021-07-23
  • 2022-01-22
  • 2021-05-12
  • 2022-12-23
相关资源
相似解决方案