如何检测Unity3d中的网格碰撞?
How to detect mesh collision in Unity3d?
我们可以在 unity3d 中检测网格碰撞吗?我想在碰撞时显示一些纹理,目前我正在使用盒子碰撞器,这就是为什么它 surface/edge 与物体主体网格不匹配,即使我在网格表面上得到命中点,我也不会不知道如何在网格上特定位置的网格上放置纹理,在 unity3d 中是否有任何 in-built 特定于同类要求或解决方法的组件?
正如我们在图片中看到的那样,在游戏对象内部检测到碰撞,因为盒子碰撞器在目标对象网格内部
注意:这里我用虚拟立方体网格替换了实际网格
但是有什么方法可以检测子弹 collider/mesh 何时真正穿过目标对象的网格,如下图所示,我已经显示了我想要检测目标对象网格和bullet mesh/collider 还有如何在这里绘制纹理(网格上的命中点)。
简答:否
因为事情不是这样的。
长答案:
如果要将网格用作碰撞体,应将网格设置为 MeshCollider
component 的目标。然而,网格碰撞体非常昂贵:每次移动、缩放、旋转或以其他方式改变边界时,Unity 都需要重新计算它们。
然而 this asset 将对 renderer 网格执行光线投射,而不需要对撞机,但我不知道什么样的性能会受到影响那会有。
我们可以在 unity3d 中检测网格碰撞吗?我想在碰撞时显示一些纹理,目前我正在使用盒子碰撞器,这就是为什么它 surface/edge 与物体主体网格不匹配,即使我在网格表面上得到命中点,我也不会不知道如何在网格上特定位置的网格上放置纹理,在 unity3d 中是否有任何 in-built 特定于同类要求或解决方法的组件?
正如我们在图片中看到的那样,在游戏对象内部检测到碰撞,因为盒子碰撞器在目标对象网格内部 注意:这里我用虚拟立方体网格替换了实际网格
但是有什么方法可以检测子弹 collider/mesh 何时真正穿过目标对象的网格,如下图所示,我已经显示了我想要检测目标对象网格和bullet mesh/collider 还有如何在这里绘制纹理(网格上的命中点)。
简答:否
因为事情不是这样的。
长答案:
如果要将网格用作碰撞体,应将网格设置为 MeshCollider
component 的目标。然而,网格碰撞体非常昂贵:每次移动、缩放、旋转或以其他方式改变边界时,Unity 都需要重新计算它们。
然而 this asset 将对 renderer 网格执行光线投射,而不需要对撞机,但我不知道什么样的性能会受到影响那会有。