建模测试
Mesh的碰撞盒是全包的碰撞盒
- 整个的游泳圈模型
- 半个的游泳圈模型
如果勾线convex选项,则:
都直接把顶点封死,就像打包装箱。
++++++++++++++++++++++++++++++++++
测试结果:
中间部分直接封闭,阻挡碰撞体通过!
碰撞测试 - convex=true
-
直接卡碰撞边缘
-
直接挡在外面
如果不勾选convex选项,则:
按照模型原型产生碰撞
可以正常通过中空区域
不添加MeshCollider 是没有碰撞效果的!
碰撞测试 - convex=false
碰撞限制 - 重点
使用网格碰撞器有一些限制条件:
- 两个网格碰撞器之间不会发生碰撞。
- 网格碰撞器可以和任何原型碰撞器碰撞。
- 网格标记为凸起(Convex),可以和其他网格碰撞器碰撞。
如果想和同类的碰撞器产生碰撞需要其中一方勾选convex,
如果是系统的原型碰撞器【BoxCollider、SphereCollider】这些原型碰撞器,并不关心网格碰撞器的convex状态,可以直接产生碰撞。
地面对象 - Plane:默认也使用网格碰撞器【convex=false】,所以cube掉落不会穿过plane,如果是导入的模型【非原型碰撞器】,不勾选convex肯定会掉下去,不会产生碰撞。
碰撞解决方案
1 加原型碰撞盒子、胶囊体、圆柱体碰撞器等原型碰撞器 - 模拟碰撞
2 如果是场景可以使用probuilder,多边形的场景方便使用原型碰撞器