1

我有一个为游戏对象创建的自定义网格。当它触及自己时,我想做一些动作。我尝试将对撞机和脚本附加到网格上。但是,只有在与其他对象发生碰撞时才会调用该脚本。如何检测与自身的碰撞?

4

1 回答 1

2

在诸如 PhysX 之类的游戏物理引擎中:对撞机可以与自身发生碰撞是没有意义的。

请注意,在游戏和 3D 工程中,“事物”几乎总是有多个collider

例如,一只小狗可能由,哦,七个左右的对撞机组成(你可以想象一个用于躯干(可能是一个球体),四条腿(可能是胶囊或只是矩形),一个用于头部(又是一个球体),如果在游戏中与尾部相关(可能只是一个矩形 - 或者可能是两个小球体)。对于汽车,您可能会说三个框来表示车身的整体形状,并且您可能有单独的对撞机来表示“哪里你需要知道是什么撞击”......例如,保险杠,如果你希望它在那里被撞的话,也许是门,等等。

现在,

关于你的问题,看起来你有 - 例如 - 一个人形机器人,它会有许多对撞机,如上一段所述。

例如,手臂对撞机可能会撞到腿部对撞机,而您想知道这一点。

除非您笼统地解释您的场景是什么,否则无法帮助您解决问题...

--

如果你正在制作一条蛇或绳索,请按照 Gunnar 所说的去做。最简单的解决方案是多个球体对撞机。

很简单地说,你的蛇有 10 厘米厚。假设你的蛇有 2 米长。很简单,有大约 9-10 厘米大小的球形对撞机。将它们分开,这样它们就不会相互接触,而是有点间隔。因此,对于 2m,您可能有大约 15 个。这里的所有都是它的。

请注意,工程绳索/蛇绝非易事。

我鼓励您浏览一下AssetStore并查看可用的优秀绳索/蛇包。

意识到开发一个完美的绳索系统可能需要多年的工程设计。

了解 Unity(或一般的游戏工程)的日常方面是,您必须使用现有的、通常众所周知的解决方案来解决手头的问题。祝你好运。

于 2016-03-17T13:50:49.083 回答