Unity 导航网格生成碰撞体

原因

在使用 Unity 导航网格进行点击行路的时候,需要提供碰撞体以让鼠标进行射线检测,来得到目的地的坐标点。但是,当遇到比较复杂的地面时,简单的 Box 碰撞体是不够贴合地面的,使用 Mesh 碰撞体又会更耗费资源,所以需要一种简单快速的铺设 Box 碰撞体方案。

优点

通过导航网格来生成地面的碰撞体,减少手动铺设碰撞体的工作量。

实现过程

通过导航网格的获取三角形顶点接口,将顶点显示出来,点选顶点来进行构建 Box 碰撞体。如下导航网格,黑色的点即 Unity 导航系统自动显示的顶点:


提供一个红色矩形框,来进行限制显示顶点,否则绘制太多导致卡顿。矩形范围选择完毕,则可以"Show Verticies from Selected Region"来显示区域里的顶点,以蓝色来显示,如下所示:


鼠标点选要构建 Box 碰撞体的顶点(以绿色来表示选中),选择完毕点击"Create Box from Selected Verticies"来创建盒子,它会以最先选择的三个点构建一个平面,再在这个平面上计算出最小的包围盒,如下所示:


黄色的 Box 碰撞体表示当前选中,可以通过点击"Remove Box from Selected Collider"来进行移除。当编辑完毕,就可以点击"Finish"来进行移除组件。

源码地址

https://github.com/akof1314/UnityNavToCollider


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值