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

参考链接:

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节点只执行了一遍。

原文地址:https://www.cnblogs.com/lyh916/p/8905989.html

时间: 2024-10-09 18:22:46

[Unity插件]AI行为树使用总结的相关文章

[Unity插件]Lua行为树(四):条件节点和行为节点

条件节点和行为节点,这两种节点本身的设计比较简单,项目中编写行为树节点一般就是扩展这两种节点,而Decorator和Composite节点只需要使用内置的就足够了. 它们的继承关系如下: Conditional->Task Action->Task 代码如下: BTAction.lua 1 BTAction = BTTask:New(); 2 3 local this = BTAction; 4 5 function this:New() 6 local o = {}; 7 setmetata

[Unity插件]Lua行为树(十):通用行为和通用条件节点

在行为树中,需要扩展的主要是行为节点和条件节点.一般来说,每当要创建一个节点时,就要新建一个节点文件.而对于一些简单的行为节点和条件节点,为了去掉新建文件的过程,可以写一个通用版本的行为节点和条件节点,以传入方法的方式来避免新建文件. BTActionUniversal.lua 1 --[[ 2 通用Action节点 3 --]] 4 BTActionUniversal = BTAction:New(); 5 6 local this = BTActionUniversal; 7 this.na

Unity插件之NGUI学习(4)—— 创建UI2DSprite动画

创建一个新的Scene,并按 Unity插件之NGUI学习(2)创建UI Root,并在UI Root的Camera下创建一个Panel. 然后在选中Panel,在菜单中选择NGUI->Create->Unity 2D Sprite 查看Inspector窗口 接着是在Unity中制作Sprite: 在Project窗口创建Textures文件夹,并从外部拖入一些图片素材,然后选中需要转成Sprite的图片,然后在Inspector窗口进行转变Sprite的操作,如图. 选择Sprite(2D

利用jstree插件轻松构建树应用

利用jstree插件轻松构建树应用 最近完成了项目中的一个树状应用,第一次接触了jstree这个插件,总的来说它的官方文档还是比较详细的,但是在使用过程中还是出现了一些问题,下面我就来谈谈这款插件的使用和心得. 首先项目需要构建一棵树,利用jstree插件我们先在页面上静态的把这棵树渲染出来,参照官方文档(http://www.jstree.com/),代码如下: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head&g

Unity插件之NGUI学习(9)—— Tween和世界坐标系尺寸转换为NGUI尺寸

在游戏中,有一种比较常见的动画效果,就是产生得分后,分数会在游戏中显示,并快速移动到总分的位置并使之相加.今天我就打算使用NGUI的Tween来制作这种分数动画效果. 根据 Unity插件之NGUI学习(2),创建一个UI Root,然后使用NGUI创建一个Label和一个Button. 在Project窗口中,在Resources/Prefabs文件夹中创建一个Prefab,该Prefab就是一个NGUI的Label,然后在菜单中选择NGUI->Tween->Rotation和NGUI-&g

【VR】Leap Motion 官网文档 Unity插件概述

前言: Leap Motion的官网文档已经有不少的热心网友参与了翻译,但没有覆盖官网文档的全部. 为迎合Unity VR的热潮与大家的学习需要,本博客将推出针对Unity方向的官方文档翻译系列. 本篇主要对Leap Motion的Unity插件及坐标系系统进行简述. 英文原文网址:https://developer.leapmotion.com/documentation/unity/unity/Unity_Overview.html 译文首发&持续更新:http://blog.csdn.ne

Unity插件之NGUI学习(7)—— ScrollView(Panel)

今天介绍的ScrollView,參考的是NGUI(3.6.8)中的Example项目:Scroll View(Panel). 先依照Unity插件之NGUI学习(2)创建一个UI Root.然后在UI Root以下创建一个Scroll View,选择菜单NGUI->Create->Scroll View 然后在Inspector窗体做一些參数设置 Movement设置滚动Vertical纵向或者horizontal横向. Scroll Bars能够加入纵向或者横向的滚动栏控件(在这个项目中暂且

Unity 初级AI躲避障碍物

1.引言 阅读<Unity Game AI programming >第6章后,感觉躲避障碍物算法不是很给力.为了研究和学习Unity,自己改良躲避障碍物的算法.当然,代码没有优化,不过没关系,抛砖引玉,记录思想,学习交流. 2.与原书算法相比变化: 1.启用物理引擎,使用速度和力解决问题.而不是使用的角度和位置 2.加入沿着障碍物行走,即使障碍物宽度很大或物体向障碍物前进的速度过快,也不会发生穿墙而过现象. 3.为配合沿着障碍物行走,并且显得更自然,引入三个速度与障碍物的交互分区. 3.分享

【学习中】Unity插件之NGUI 完整视频教程

课程 章节 内容 签到 Unity插件之NGUI 完整视频教程 第一章 NGUI基础控件和基础功能学习 1.NGUI介绍和插件的导入 6月29日 2.创建UIRoot 6月29日 3.学习Label控件,显示文字 6月29日 4.学习Sprite创建精灵,显示图片 5.学习Panel面板,控件容器 6.创建Button按钮,使用脚本监听按下 7.创建图集Atlas 8.切图SlicedSprite九宫切图 9.dynamicFont动态字体制作和显示 10.widget属性,pivot,dept