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

  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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值