Behavior Tree 行为树的学习

1.创建巡逻的敌人

设置两个点的位置


地形要烘焙

添加Nav


2.控制主角的移动

player要NavMeshAgent组件移动,需要Targetposition


3.自己创建一个Seek脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using BehaviorDesigner.Runtime.Tasks;


//这个任务脚本的作用就是控制游戏物体到达的目标位置
public class Myseek : Action {//这个任务的调用behavior designer 行为控制的
    public float speed;
    public Transform target;  //这个是我们要到达的目标位置
    public float arriveDistance = 0.1f;
    private float sqrArriveDistance;
    public override void OnStart()
    {
        sqrArriveDistance = arriveDistance * arriveDistance;
    }
    //当进入到这个任务的时候,会一直调用这个方法,一直到任务结束,你返回一个成功或者失败的状态 那么任务结束
    //如果返回一个running的状态,那这个方法会继续调用
    public override TaskStatus OnUpdate()  //这个方法的调用频率,默认是跟Unity里面的帧保持一致的
    {
        if (target == null)
        {
            return TaskStatus.Failure;
        }
        transform.LookAt(target.position);  //直接朝向目标位置
        transform.position=Vector3.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
       if((target.position - transform.position).sqrMagnitude < sqrArriveDistance)  //没有开平方
        {
            return TaskStatus.Success;  //如果距离目标位置的距离比较小,认为到达了目标位置,直接return成功
        }
        return TaskStatus.Running;
    }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值