- Home /
Unity2D: How to get an object to move along another objects shape?
Hi. I'm not sure if the question is understandable so i'll explain it. For example, if i had a "wall" that doesn't have a straight line, meaning its got its "up and down" like an S for example, and its an infinite scrolling wall, with a character "climbing" the wall. How do i get that character to follow along those dips and curves? I'm not exactly sure how to google this out but i haven't found much. I assume I'd have to use one of the colliders, either the edge or polygon? but other than that, i'm lost. Please help point me in the right direction.
Answer by Capricornum · Sep 14, 2020 at 07:35 AM
Hmm, fascinating idea.
How about each frame that you are moving up along your S wall, you shoot a ray from a point left of the wall and on the same height as your player. You can use Collider.Raycast (the collider being the wall collider) This method will only collide with the wall collider and ignore all the other ones.
Once you hit the wall you can get the point of intersection via the out parameter of the Raycast method. hitInfo.point. And the x value of this point should be your players x position plus an offset so your player doesn't sit in the middle of the wall.
hi @Capricornum thanks. finally something i can research on.
Answer by KreyZgr · Sep 14, 2020 at 12:59 PM
I am not sure how exactly you can do it, but using A* pathfinding could work. Basically you set the background or whatever is to the left and right of the wall to be an obstacle, and A* will scan it and make the player only to be able to walk on the wall. Then you write a script witch only enables movement when you press for example "w". You have to learn how to use "A star pathfinding" but there are many tutorials on YouTube
Your answer
Follow this Question
Related Questions
Can I create boundaries around my level without using box colliders? 3 Answers
Collider2D overlap with tiles in Tilemap and remove tiles 1 Answer
[Game like Pong] Trying to change direction with a boxcollider 0 Answers
Wall checking not working correctly 2 Answers
Unity 2D game: all colliders not working 3 Answers