Decorators:对单个任务进行操作
Composites:复合任务
Conditionals:做判断
Actions:做行为
Flee远离目标
Inverter:取反
创建全局变量:OffenseSpeed,AngularSpeed。
原理:是否看到敌人,没看到取反去找旗帜,看到敌人远离敌人,Sequence的中断类型选Self
找旗帜行为树样板
添加行为树
添加注释
创建全局变量
可以切换行为树
拿到旗帜去终点,未拿到旗帜,追旗帜
脚本判断是否拿到旗帜,运行成功失败。
public class IsHasFlag :Conditional {
private Offense offense;
public override void OnAwake()
{
offense = this.GetComponent<Offense>();
}
public override TaskStatus OnUpdate()
{
if (offense.hasFlag)
{
return TaskStatus.Success;
}
return TaskStatus.Failure;
}
}
旗帜上面添加脚本,判断是否与tag为玩家的发生碰撞,发生碰撞给一个boll值,并让旗子碰撞玩家坐标相等,做出带着旗子走的样子
private Offense owner;
public void OnTriggerEnter(Collider other)
{
if (other.tag == "Offense")
{
if (owner != null)
{
owner.hasFlag = false;
}
other.GetComponent<Offense>().hasFlag = true;
transform.parent = other.transform;
owner = other.GetComponent<Offense>();
}
}
}
Unity进阶:行为树 02 夺旗战搭建场景,AI脚本,旗子拿起
原文:https://www.cnblogs.com/raymondking123/p/11416296.html