【学习笔记】Unity3d中的自动寻路入门

来源:互联网 发布:大数据整改总结怎么写 编辑:程序博客网 时间:2024/06/02 16:22

  unity3d中提供给我们一个内置组件Navigation,此组件帮我们完成强大的自动寻路的功能。由于内容比较多,我们需要慢慢深入去了解。今天就实现一个简单的鼠标点击地面,物体到达点击点的寻路实例。

  首先,建立一个Plane作为地面,然后选中Plane点击Window->Navifation,此时Navigation面板会显示出来。


  选中Navigation Static后,点击右下角的Bake按钮对Panle进行烘焙,稍等片刻会发现Scene视图中的Plane变为蓝色


   此区域就是自动寻路的区域。

  接下来,创建我们的主角Cube,对其进行同Plane一样的烘焙操作,然后点击Componet->Navigation->Nav Mesh Agent为角色添加NavMeshAgent组件下面还是需要为主角添加脚本进行控制。

    脚本如下:

   public class PlayerController : MonoBehaviour{private NavMeshAgent agent;void Start(){//获取组件agent = GetComponent<NavMeshAgent>();}void Update(){//鼠标左键点击if (Input.GetMouseButtonDown(0)){//摄像机到点击位置的的射线Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit hit;if (Physics.Raycast(ray, out hit)){//判断点击的是否地形if (!hit.collider.name.Equals("Plane")){return;}//点击位置坐标Vector3 point = hit.point;//转向transform.LookAt(new Vector3(point.x, transform.position.y, point.z));//设置寻路的目标点agent.SetDestination(point);}}}}


  完成以后,我们点击Plane平面位置,Cube就会自动的移动到此点。

  

     今天就写到这里吧,我要潜水了。。。。。。。。。。

  

0 0
原创粉丝点击