Hello fellow Godotians,
I recently stumbled across this wonderful demo scene from ic3bug:
https://github.com/ic3bug/strafer
I have never seen something like this before. The player is implemented using a Character3D node, and the geometry of the player is defined by a CylinderShape3D in $Collision, which is a CollisionShape3D node - so far so good.
But it is also using another CollisionShape3D named $Ground, which contains a SeparationShape3D. And there is even a third CylinderShape3D inside a ShapeCast3D node called $Ceiling.
I have been looking at the script for hours now, and I just can't wrap my head around it. I mean I get it - at least how it "should" work. But I just don't understand how these 3 parts are working together.
And neither Google nor the official docs were really helpful.
Do you know any sources or tutorials about SeparationRayShape3D?
Or even better: Can anyone of you explain in a few sentences how exactly this character works?
Thankful for any help
Technipion