How to bind a physics object to a path?

I have a ball which I want to roll on a circuit bound to a path. So the ball can just move forward but not left or right. But the ball should behave physically correct up and down, like a marble run. So its a bit like 2D physics in a 3D environment. Does anyone have an idea how to do that?

Hope you can help me :slight_smile:

  • Build a halfpipe or a tube or a set of rails as a mesh and then just roll the ball.
  • Simulate the movement using something like iTween. Having the ball move along the path with iTween would be easy. Having the ball roll at the right rate and in the right direction will involve some work.
  • You might be able to adjust the velocity vector at every FixedUpdate() to move the ball towards a specified path in the x and z direction.
  • You might be able to just zero out the x and z values of the velocity vector and use Rigidbody.MovePosition() at each FixedUpdate() to place the ball on the path…would have to play some games to see how far to move the ball along the path.