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;
}
}