繁体   English   中英

如何检测Unity3d中的网格碰撞?

[英]How to detect mesh collision in Unity3d?

我们可以在 unity3d 中检测网格碰撞吗? 我想在碰撞时显示一些纹理,目前我正在使用盒对撞机,这就是为什么它的表面/边缘与物体网格不匹配,即使我在网格表面上获得了命中点,我也不知道如何将纹理放在网格上特定位置的网格上,是否有任何特定于同一类型要求的内置组件或在 unity3d 中的解决方法?

在此处输入图片说明

正如我们在图片中看到的,在游戏对象内部检测到了碰撞,因为盒子碰撞器在目标对象网格内注意:这里我用虚拟立方体网格替换了实际网格

但是有什么方法可以检测子弹对撞机/网格实际上何时穿过目标对象的网格,如下图所示在此处绘制纹理(网格上的命中点)。

在此处输入图片说明

简短回答:否

因为这不是它的工作方式。

长答案:

如果要将网格用作碰撞器,则应将网格设置为MeshCollider组件的目标。 但是,网格碰撞器非常昂贵:Unity 每次移动、缩放、旋转或以其他方式更改其边界时都需要重新计算它们。

但是, 此资产将针对渲染器网格执行光线投射,而无需对撞机,但我不知道会产生什么样的性能影响。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM