ue3dUnity的导航网格移动Agents代理

Unity的导航网格移动Agents代理

分类:
ue3d - Unity的导航网格移动Agents代理

Nav Mesh Agent组件可以附加到游戏中的移动角色,以允许它使用NavMesh导航场景,只需要将组件附加到它,就可以进一步完成了。

如果你还不知道如何设置导航网格,可以参阅此篇文章:设置导航网格

ue3d - Unity的导航网格移动Agents代理

附加之后,接着咋们创建一个脚本,让agents在点击播放时随机移动到一个路径点。

如下所示:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;

public class AI : MonoBehaviour
{
    [SerializeField] private Transform[] _wayPoints;
    private NavMeshAgent _agent;
    // Start is called before the first frame update
    void Start()
    {
        _agent = GetComponent<NavMeshAgent>();
        _agent. destination = _wayPoints[Random.Range(0,_wayPoints.Length)].transform.position;
    }
}

在这里,只是获得对导航网格agents代理的引用,并将其目的地设置为数组中的六个转换之一。

别落下了上面代码中的ai using语句哦。

ue3d - Unity的导航网格移动Agents代理

但是,如果希望它移动到所有的导航路径点,尤其是按顺序移动怎么办?因此需要的是一个将存储当前点的变量和一个将检测是否在末尾的布尔值。

编写代码如下所示:

private void Update()
   {
       if ( _agent.remainingDistance<lf)
       {
            if (_currentPoint==_wayPoints.Length-1)
            {
                _reverse = true;
            }

            else if (_currentPoint==0)
            {
                _reverse = false;
            }
            if (_reverse==false)
            {
                _currentPoint++;
                _agent.SetDestination(_wayPoints[_currentPoint].position);
            }

            else if (_reverse==true)
            {
                _currentPoint--;
                _agent. SetDestination( _wayPoints[_currentPoint].position);
            }
        }
    }
}

到这里就可以测试该项目的结果了。

ue3d - Unity的导航网格移动Agents代理

以上是关于Nav Mesh Agent的全部内容,如果你有任何反馈,请随时在本页面下方留言。

相关信息

  • 类型:教程
  • 字数:251
  • 字符:1044
  • 适用软件:Unity
  • 说明:无
  • 编号:110199

热门内容

提示:3D天堂作为服务提供者,尊重网络版权及知识产权,对某些行为的发生不具备充分的监控能力,若无意间侵犯到您的权利,请 联系我们,我们会在收到信息后尽快给予处理。

本站文章版权归本站自创作者所有,未经允许不得转载!