Sure! I wish I had some resources that were more pointed for you. The closest thing that goes over detecting things above and below you (that has lots of resources) is a climbing system.
From a high level, there’s three main parts you have to break this down into.
- Edge Detection
- Handling the player’s location
- Animation Blending
Edge detection - you need to detect when a player is over a half pipe, which we will call an “edge” for the remainder of this explanation. Here is where you would decide if you are hand curating your pipes or detecting them automatically. For this explanation I will assume manual curation. Just like climbing and ledge grab systems, you will have to use a trace to check a collision matching a tag for your edges that you want to magnetize to, that your character can look for while it’s in the air.
You need a method of determining where the actual slope is, and how the player is intended to be angled. You can check the face normal of your downward trace and use that to determine which way your board should be angled as you come in.
Once the player detects that there is an edge below them, you can choose the criteria you want to be the decider if they begin to drop into it. My first thought is checking their horizontal and vertical speeds, if going up or too fast horizontally just ignore the detection, otherwise begin drop in.
Handling the Player’s Location - This part is a up to how you handle your player’s movement to begin with. My personal ethos when it comes to skating games, is that during actually skating, you don’t actually want to be using physics, but handling the movement yourself in a controllable way.
In any case, you would need to start nudging the player’s horizontal movement to make sure it’s at a location. Determining that location is the tricky part. You either have to hand curate each ramp/edge and leave a spline on the places you want to snap the player to, then get that when the player script confirms they are trying to drop in, or detect it automatically, which would be tracing to a valid face (based on where the face normal is pointed).
Once you know where you want the player to land, you can start either adding force/transforms each tick to nudge them the right way.
Animation Blending - I’m not super well versed in the art pipelines including animation, but the basic idea would be once the drop in is confirmed, you would start to blend whatever stance/tricks you were doing into a more appropriate stance for a skater to catch the landing in based on distance to the edge checked on tick from the trace. This includes using the trace from before to align the board/player correctly.