- Home /
2D jumping raycast question
Heya!
Total n00b here. I'm making a 2D platformer by emulating Mega Man's jump mechanics to start. I'm using code I found here to draw a downward raycast of (1 * minimum distance) to determine if we're "in the air," to prevent double jump and play the jumping sprite. Works great.
Problem - the ray is cast from the center of my player cube. This means I can't get the cool "Mega Man standing with one toe on a platform" effect, because his center is casting a ray and telling him he's in midair. So, he's stuck on the platform, looking like he's jumping. Here's my raycast calc:
if (Physics.Raycast(transform.position, -transform.up,1 * JumpMin)) // cast a ray down to see if we are grounded {PlayerInAir = 1;} else // we are in air {PlayerInAir = 2;}
I know what I need to do, and that's effectively, "get player width /2", "offset two racasts by +- that amount," "if EITHER raycast is within the jump minimum, we are grounded." So, cast a ray from each side of the player, and if one OR the other is within (jumpmin), we aren't jumping.
How would I cast two rays and offset them by (player'swidth/2), then compare with an "OR" ?
Your answer
Follow this Question
Related Questions
2D platformer jumping that feels good 1 Answer
I am having issues with my Jumping Script. 2 Answers
Top-Down Jumping (2D) 1 Answer
2D Sidescroller enemy AI jump help! Picture Included! 3 Answers
How to jump in 2D? 1 Answer