Godot Version
4.6
Question
My scene is a bunch of “Rooms”, connected together (subclassing Area3D), containing 1 child static StaticBody3D with a bunch of collision shapes, defining static geometry, as well as some RigidBody3Ds defining various interactive objects.
These rooms are turned on and off as player walks through the connecting doorways. When player enters or leaves the room and the door animation finishes, the room (Area3D) is made visible/invisible, and its process_mode is set to PROCESS_MODE_PAUSABLE if the room is visible and PROCESS_MODE_DISABLED otherwise.
I found out that despite child objects process_mode being PROCESS_MODE_INHERIT, the physics simulation is not affected, and they continue moving and colliding (unintuitive but ok).
So, I’m trying to disable or freeze these child RigidBodies when the room changes its state - but when I call propagate_call(“room_enabled”, [ e ], false) literally nothing happens.
room_enabled method is defined and takes a boolean, and nothing is called. I tried other method names, and 0 parameters - same.
Anyone knows what the heck?