
与在Unity中使用3D物理引擎时不同,没有内置方法可以在2D中应用爆炸力。那么如果你想创建影响周围物体的2D爆炸,将不得不自己移动它们。
这与3D方法的工作方式类似,在3D方法中,需要首先获得对要受影响的碰撞器的引用,通常是使用重叠方法,例如Overlap Circle。
例如:

然后需要计算自己的爆炸力,这是2D和3D方法不同的地方,因为没有现有的函数来计算需要施加的力的方向和滚降。
相反…
这可以通过获取爆炸源和对象位置之间的方向来完成。
例如:

然后,通过计算Distance Modifier(距离修改器),它是一个介于0和1之间的值,表示对象从爆炸中心 (1) 到边缘 (0) 的位置,您将能够缩放应用于每个对象的力物体取决于它离爆炸有多远。
例如:

将值限制在爆炸半径的限制范围内可以防止当对象接触影响区域但实际上距离最大半径更远时出现负值。
然后可以将力施加在物体上的某个位置,而不是其中心。

这样做的目的是创造更自然的运动和扭矩应用,使物体在被爆炸时旋转。这是通过传入对撞机上最接近爆炸源的点来实现的。
例如:

…
以上是关于在Unity中实现2D物理爆炸的全部内容,如果你有任何反馈,请随时在本页面下方留言。