It looks like you're new here. If you want to get involved, click one of these buttons!
I'm working on an fps-parkour type game. Currently, I'm not very happy with my wall jumping action. It's clunky, and I don't have a whole lot of control over it. Here is the snippet of code which I currently employ:
Vector3 reflection = Vector3.Reflect(velocity, normal);
Vector3 projected = Vector3.ProjectOnPlane(reflection, Vector3.up);
groundedVelocity = projected.normalized * groundSpeed + normal * AerialSpeed;
where velocity is overall velocity vector, ground speed and aerial speed are floats.
If anyone could help me update this and add a wall-running mechanic, I'd be really grateful.