I’m making a train game, which has basically the same requirements.
Simplified I currently use Path3D
with a RemoteTransform3D
that points at a RigidBody3D
.
The RigidBody3D
is set to freeze = true
and freeze_mode = FREEZE_MODE_STATIC
. I manually calculate velocity and use that to update the progress
along the Path3D
.
To enable crashing I set the RigidBody3D
to freeze = false
and the RemoteTransform3D
update_position = false
. This let’s the physics engine take over and collide with everything.
This seems to be working pretty well so far.