我正在研究一个2D物理游戏,它涉及物体之间的碰撞,目前使用复杂的多边形对撞机。
当物体碰撞时,我用otherObject.contacts.normal得到接触点的法线,然后用Rigidbody2D.AddForceAtPosition把物体按相等但相反的方向撞开,力是法向乘以一个常数。
大多数情况下,这是完美无缺的,但是我发现,当碰撞发生在多边形对撞机中的凹面部分(也就是向内的“倾角”)时,正常的会被翻转,相反,物体会被推向对方。
或者,我还有其他方法可以解决这个问题吗?

蓝色的圆圈区域是一个有问题的凹区的例子。
发布于 2016-03-23 16:57:16
或者,我还有其他方法可以解决这个问题吗?
是的,vid游戏中的标准内容是大多数东西都有--许多小型简单对撞机,而不是一个大型复杂对撞机。
这是游戏工程的基础。
(对于业余爱好者和这一领域的新人来说,这可能是非常令人惊讶的。)
所以,想象一辆车在任何普通的3D游戏中。你会有一个对撞机的后保险杠,一个前,也许一个为“左门”,等等。非常典型的情况是,每个人都必须以不同的方式做出反应,你需要知道哪个区域被触摸了。
在你的情况下,如果2D多边形有12条边,只要让12“小”,因为它是对撞机的每一个边缘。
我们不知道你的设置,因为没有截图,但这可能是可行的。
但是请注意,联合的2D聚光对撞机,实际上已经知道将物体分割成更小的三角形形状,如果它是凹形的话,我会超过它,dinnae为你工作。
更进一步:现在我们可以看到你的形象了。
在地球上的任何电子游戏中,你用方形对撞机做头盔的方式就像用橙色对撞机一样:

如果(出于某种原因)。为什么?为了什么目的?多么?哪里?(可能有什么原因?)你在一个全新的工程平面上制作了最精确的电子游戏,它是人类创造出来的,用来制造一些虚拟的带有量子翘曲空间核的新硬件。那样的话..。你可以加两个额外的对撞机来盖住喇叭。但没人会注意到这个区别。
我很感激你可能在做一些不同寻常的事情,比如“封闭游戏”(“你是中世纪斯堪的纳维亚半岛的一个原子,弹出头盔”等等),在这种情况下会有其他的解决方案。
很简单的答案是你偶然发现了游戏技术中最令人惊讶的事情之一.我们使用糟糕的,简单的,对撞机,你在你玩的每一个标题中都被骗了一辈子!
https://stackoverflow.com/questions/36183911
复制相似问题