检测与自身碰撞的物体 - 蛇或绳索的例子

时间:2016-03-17 13:36:29

标签: c# unity3d collision-detection collider

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

1 个答案:

答案 0 :(得分:2)

在游戏物理引擎中,例如PhysX:没有任何有意义的感觉,碰撞器可以与自身发生碰撞。

请注意,在游戏和3D工程中,"事物"几乎总是有 多个对撞机

例如,小狗可能是由七个左右的碰撞器组成的(你可以想象一个用于躯干(也许是一个球体),四个腿(可能是胶囊或只是矩形),一个用于头部(spehere)再次),如果在游戏中有一个用于尾部(可能只是一个矩形 - 或者可能是两个小球体)。对于一辆汽车,你可能会说三个盒子用于整体身体形状,你可能有单独的碰撞器对于"你需要知道什么击中... ...例如,保险杠,如果您希望它被打在那里,可能是门,等等。

现在,

关于你的问题,看起来你有 - 例如 - 一个类人生物,它会有许多碰撞器,如前一段所述。

可能是,例如,手臂对撞机可以击中腿部对撞机,你想知道。

除非你用一般的术语解释你的场景,否则无法帮助你解决问题......

-

如果您正在制作蛇或绳索,请执行Gunnar所说的话。最简单的解决方案是许多球体碰撞器。

很简单地说你的蛇是10厘米厚。说你的蛇长2米。相当简单的是大约9-10厘米的球形碰撞器。将它们分开,使它们不会相互接触,而是间隔一点。所以对于2米你可能有大约15个。这就是它的全部内容。

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

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

意识到可以花费 man-years 来开发完美的绳索系统。

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