原因

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

Unity 导航网格生成碰撞体相关推荐

  1. Unity 物理系统 -- 碰撞体简介(碰撞、触发条件)

    Unity 物理系统 -- 碰撞体简介(碰撞.触发条件) 几个常用的碰撞体: Box Collider:盒碰撞体,盒碰撞体是一个立方体外形的基本碰撞体,该碰撞体可以调整为不同大小的长方体,可用作门.墙 ...

  2. 【Unity】Unity中获得碰撞体碰撞的位置

    有时间的直接看sprite slicer这个插件的代码,原理也是发射线检测,代码逻辑什么的比下面的文章来的好的多,如果有空我也可以整理一下. 在纯物理环境中,为了获得碰撞体碰撞的位置,我们可以使用Co ...

  3. Unity 碰撞体 composite

    unity中盒型碰撞体与多边形碰撞体有used by composite这一选项,如果勾选这一选项代表该碰撞体可以被之后添加的composite 复合碰撞体使用,复合碰撞体会将该碰撞体的box与pol ...

  4. Unity实用小工具或脚本——智能包住任意多个物体的碰撞体

    一.前言 有些模型是我们在Unity中进行组合得到的一个模块,这个时候不可能再让美术给加碰撞体,需要用代码智能给其加碰撞体,如图1所示:任意的多个物体组成的一个综合物体最后都可以给它加上合适的碰撞体, ...

  5. Unity自动化碰撞体生成方法-Normal Collider 和 碰撞体代理

    如何在Unity中对角色快速创建碰撞体(Normal Collider)和碰撞体代理(Fake Collider) 前言 快速给Humanoid人形角色添加碰撞体,使用Unity 的Collider系 ...

  6. Unity物理系统中碰撞体、刚体、isKinematic、isTrigger的关系(附动画演示)

    Unity物理系统中碰撞体.刚体.isKinematic.isTrigger的关系 写在前面 产生碰撞的条件 产生触发的条件 实验一:蓝块(碰撞体).红块(碰撞体) 实验二:蓝块(碰撞体).红块(碰撞 ...

  7. unity 根据模型生成碰撞体_Unity之碰撞体组件

    3D物理组件中碰撞体组件添加与设置 碰撞体是物理组件中的一类,3D物理组件和2D物理组件有独特的碰撞体组件,它要与刚体一起添加到游戏对象上才能触发碰撞.如果两个刚体相互撞在一起,除非两个对象有碰撞体时 ...

  8. Unity 之刚体,碰撞体,触碰器

    Unity中文官方文档https://docs.unity.cn/cn/current/Manual/class-Rigidbody2D.html Rigidbody 刚体 是赋予物体力的的作用效果的 ...

  9. unity 根据模型生成碰撞体_快速准确立体碰撞体自动生成器Unity游戏素材资源

    本游戏资料是快速准确立体碰撞体自动生成器Unity游戏素材资源,大小:5 MB ,格式:unitypackage,使用软件:unity5.6.4或更高,资产版本:Version 1.1(current ...

  10. 【Unity】11.3 基本碰撞体(箱体、球形、胶囊、网格)

    分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 碰撞组件(Collider) 是另一种必须随刚体 (Rigidbody) 添加的组件,以便允许它和其他组件发生碰撞.或者 ...

最新文章

  1. mysql 不同分区 同时insert_一文看懂mysql数据库分区表概念、类型、适用场景、优缺点及原理...
  2. Python 笔试集:什么时候 i = i + 1 并不等于 i += 1?
  3. 【Python】Python3中的str和bytes
  4. Web前端开发标准规范
  5. StringTokenizer类的使用方法
  6. 爱要大声“手”出来!一个程序猿的七夕表白应用!
  7. Maven命令行使用:mvn clean package(打包)
  8. Apache Lucene拼写检查器的“您是不是要”功能
  9. 万彩录屏服务器不稳定,万彩录屏 云服务器
  10. C++ Builder 启动时不显示主窗体
  11. 吴恩达斯坦福大学机器学习 CS229 课程学习笔记(二)
  12. Linux笔记-bash中解决if语句中command not found问题
  13. python 实例化方法_Python中__new__()方法的使用和实例化
  14. 中兴的芯片,到底什么水平?
  15. Shell脚本编程之(七)Shell脚本的追踪与debug
  16. linux 日文 字体,安装Fedora 11的程序用的竟然是日文字体?!
  17. 读后感系列-2.《看见》柴静(二)
  18. 计算机sci二区期刊,SCI二区期刊汇总表
  19. MySQL 8.0+版本 导入.csv文件错误,出错号:1148 The used command is not allowed with this MySQL version问题
  20. 姿态估计1-02:FSA-Net(头部姿态估算)-源码训练测试-报错解决

热门文章

  1. 深入浅出WPF之我件2
  2. Bash 编程易犯的错误大全
  3. 汇编原理6:opcode
  4. rubyinstaller官网无法访问的解决办法
  5. 教你破资深加密工具lockdir.exe加密后的文件
  6. 通信与协议Netty+Protobuf-游戏设计与开发(1)
  7. powerbuilder防止反编译: pbkiller无法解析的部分公布
  8. mysql毫秒丢失_MySQL JDBC 更新数据丢失毫秒精度
  9. 游戏计算机重要参数,这真的很重要吗 游戏鼠标三大参数之谜
  10. 3d游戏建模都需要准备些什么