Unity - A计划(一年有效期) 扫二维码继续学习 二维码时效为半小时

(61评价)
价格: 2208.00元
秘密行动控制机器人巡逻只会移动到第一个目的地然后就不动了是怎么回事
猫懒发起了问答2018-10-30
3
回复
351
浏览
public class EnemyMoveAI : MonoBehaviour {

    public Transform[] wayPoints;
    public float patrolTime = 3f;
    private int index = 0;
    private float patrolTimer = 0;
    private NavMeshAgent navAgent;

    void Awake()
    {
        navAgent = GetComponent<NavMeshAgent>();
        navAgent.destination = wayPoints[index].position;
    }
	
	// Update is called once per frame
	void Update () {
        Patrolling();
	}

    private void Patrolling()
    {
        if (navAgent.remainingDistance < 0.5f)
        {
            navAgent.isStopped = true;
            patrolTimer += Time.deltaTime;
            if (patrolTimer > patrolTime)
            {
                index++;
                index %= 4;
                navAgent.destination = wayPoints[index].position;
                patrolTimer = 0;
            }
        }
    }
}

这边目的地也赋值了

所有回复
  • 老师_Trigger 2018-11-01

    同学你好,单看这一个脚本是没问题的,老师感觉只寻找第一个点之后不去寻找应该是满足了移动条件或者停止了,同学可以下载一下老师的源码对比看一下,也可以自己Debug一下,看看我们代码哪里出了问题。

    • 猫懒 2018-11-01

      试了试把代码里的navAgent.isStopped设为false。就可以都移动到四个点了 这是怎么回事呢

      (0) 回复
    • 风客 2018-11-22

      回复 @ 猫懒: 估计是方法问题,旧版本的Stop方法只停止当前的节点的运动,到下个节点会继续运动,新版本的isStopped设置为true后整个Nav的运动都会停止,直到isStopped设置为false后再开始运动

      (0) 回复
    还有-3条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!