I'm trying to add the ability to smoothly run along wall in my game without being limited by only falling along specific axis, and although there is get_floor_normal, it doesn't work for faces that are considered walls. There're aren't any other things that do the same but with walls, so is there any work around?

  • You would have to use a ray cast. You can either spawn them in code, or place a few inside your character (like one facing left, right, forward, or at different angles depending on how your game works). The ray cast can get a collision normal, which will be the wall normal. You might have to do some logic to make sure the normal is within a certain angle (you can use the dot product for this), for example so you don't run on the floor or the ceiling.

You would have to use a ray cast. You can either spawn them in code, or place a few inside your character (like one facing left, right, forward, or at different angles depending on how your game works). The ray cast can get a collision normal, which will be the wall normal. You might have to do some logic to make sure the normal is within a certain angle (you can use the dot product for this), for example so you don't run on the floor or the ceiling.

    cybereality Thanks! I was thinking of using raycasts before, but I didn't know they could detect normals as well as kinematic bodies, so I scrapped the idea.