Navigation(自动寻路系统)与Nav Mesh Agent

Nav Mesh Agent组件可以实现对指定对象寻路的代理,该组件自带了许多参数,可以通过修改Nav Mesh Agent组件的参数来实现对代理器大小,速度,加速度的控制,

参数有

Agent Type 代理类型

Base Offset 代理器相对导航网络的高度偏移

Speed 代理器移动速度

Angular Speed 代理器角速度

Acceleration 代理器加速度

Stopping Distance  代理器到达时与目的地的路线

Auto Braking 是否自动停止无法到达目的地的路线

Radius  代理器半径

AutoTraverse OffMEsh Link  是否穿过自定义路线

Height 代理器高度

Quality  障碍物躲避质量

Priority 代理器回避优先等级

Auto Traverse Off Mesh Link 是否自动移动Off Mesh Link

Auto Repath  原有路径发现变化时是否重新寻路

Area Mask  代理在寻路径是将考虑的区域类型

Nav Mesh  Agent 由直立圆柱体定义,其大小由半径和高度决定;

一个简单的案例

这是要将物体的Nav Mesh Agent 放入脚本的事件中,且选定NavMeshAgent中的destion

using UnityEngine.Events;[System.Serializable]     //使事件可视化
public class EventVector3 : UnityEvent {}  //将物体的Nav Mesh Agent 导入其中;private void Update(){SetCursorTexture();MouseControl();}void SetCursorTexture(){Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);if(Physics.Raycast(ray,out hitInfo))  {}}void MouseControl(){if (Input.GetMouseButtonDown(1) && hitInfo.collider != null)  //鼠标按下左键且鼠标选中物体不为空{if(hitInfo.collider.gameObject.CompareTag("Ground")){OnMouseClicked?.Invoke(hitInfo.point);  //问号表示不为空就执行}}}

如代码传入OnMouseClicked方法一个坐标点,物体就会向坐标点移动,这就是一个简单的寻路

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部