关闭

Unity 导航网格生成碰撞体

标签: unity导航编辑器
108人阅读 评论(0) 收藏 举报
分类:

原因

在使用 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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3444516次
    • 积分:35517
    • 等级:
    • 排名:第138名
    • 原创:399篇
    • 转载:88篇
    • 译文:5篇
    • 评论:3418条
    个人说明
    联系方式:
    文章存档
    最新评论