为什么所有物体都在滑动? Godot 3中的凹多边形碰撞形状

Why all objects are sliding? Concave polygon collision shape in godot 3

我有一个平面网格。我只是点击 mesh -> create trimesh collision sibling
然后,我有一个碰撞形状(凹多边形),如果我添加 kinematicBody3d、StaticBody3d 或 RigidBody3d 等。这些对象在表面上滑动(移动)(或不滑动)

添加对象:

几秒后

但如果我更改碰撞形状模式,它将正常工作

刚体受物理影响。为了控制这一点,有几个参数。我认为您可能正在寻找的是 linear damp 属性

https://docs.godotengine.org/en/stable/classes/class_projectsettings.html#class-projectsettings-property-physics-3d-default-linear-damp

如果设置为60,应该在一帧内停止对象

如果你不想让树移动。曾经。让他们 StaticBody.

如果你想让它们受重力影响并让其他东西推动它们,那么使用RigidBody

既然您使用的是 RigidBody,我想这就是您想要的。这就引出了一个问题:如何制作一个 RigidBody 在有东西推动它之前不会移动的东西?添加它睡觉。 RigidBody 有一个 sleeping 布尔值 属性,您可以将其设置为 true 以禁用其模拟。


顺便说一句,您还可以更改RigidBodygravity_scale。这意味着您可以使用 gravity_scale set to 0, and on the "body_entered" 信号添加它们,将 gravity_scale 设置为 1.

而当我们这样做时,如果使用 "body_entered" 信号是可行的,另一种设置 mode of the RigidBody to static, and change it o rigid on the "body_entered" signal. By the way, you would need to change mode using set_deferred or call_deferred 的替代方法是因为您无法在 Godot 进行物理解析时更改 mode (这也是 Godot 发送 "body_entered" 信号的时候。

是的,我知道 RigidBody modes 令人困惑。