unity敌人的巡逻

 在unityunity游戏开发过程中,敌人、怪物的自动巡逻肯定是无法避免的,今天主要讲 给敌人和怪物设置定点巡逻。
在给怪物、敌人设置顶点巡逻的时候需要引入命名空间using UnityEngine.AI;

public class Spider : MonoBehaviour {
	private NavMeshAgent agent;//给怪物添加制动巡航组件
	private Animator an;//获取新动画
	public Transform[] waypoints;//创建一个对象数组,把需要导航的位置存入进去
	private int index = 0;
	private float timer = 0;
	private float times = 3;
	private Transform player;
	// Use this for initialization
	void Start () {
		agent = GetComponent<NavMeshAgent>();//
		an = GetComponent<Animator>();
		agent.destination = waypoints[index].position;
		player = GameObject.FindWithTag("Player").transform;
	}
	// Update is called once per frame
	void Update () {
		float dir = Vector3.Distance(player.position, transform.position);//获取玩家距离敌人的距离
		if(dir > 2 && dir < 5)//追踪
		{
			Track();
        }
		else if(dir <= 2)//攻击
		{
			Attack();
        }
		else
		{
			Patrol();
        }
	}
	void Track()
	{
		//transform.LookAt(play
要实现Unity敌人自动巡逻,可以按照以下步骤操作: 1.创建一个敌人游戏对象,并添加一个NavMeshAgent组件。NavMeshAgent组件可以让敌人在导航网格上移动。 2.在场景中创建一个空对象作为巡逻点,将其命名为“Waypoints”。将巡逻点放置在地图上,以便敌人可以沿着它们移动。可以在Waypoints对象上创建子对象,以便更好地组织巡逻点。 3.编写一个脚本来控制敌人巡逻行为。该脚本应该附加到敌人游戏对象上。在脚本中,可以使用NavMeshAgent组件来控制敌人的移动。 4.在脚本中定义一个数组来存储巡逻点。可以使用FindGameObjectsWithTag()函数来查找Waypoints对象,并获取其子对象作为巡逻点。 5.在脚本中定义一个变量来存储当前巡逻点的索引。在敌人接近一个巡逻点时,可以将索引增加1,以便敌人移动到下一个巡逻点。如果敌人已到达最后一个巡逻点,则应将索引重置为0,以便敌人开始从头再次巡逻。 6.在Update()函数中,可以检查敌人是否接近当前巡逻点。如果敌人已接近当前巡逻点,则应将索引增加1,并将敌人移动到下一个巡逻点。 7.在脚本中添加一些额外的逻辑,以便敌人可以在巡逻过程中检测并攻击玩家或其他敌人。 这些步骤可以帮助您实现Unity敌人自动巡逻。需要注意的是,在实现过程中可能会遇到一些问题,需要根据具体情况进行调整和修改。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值