object move in three lanes

I am developing a game like Temple Run, Epic Knight, Subway Surfer style. My character has been restricted to run in three lanes like in Epic Knight. I am able to set the position of the player on a straight path in the beginning at x=0 for center lane, x=-0.46 for left lane and x=0.46 for right lane. As soon as i take a right or left turn i am unable to position my character to stay in the lanes i have mentioned earlier. When i take a right or left turn my character starts running in x direction instead of z direction.

Any help will be highly appreciated, i m new to 3d world.

You can do this in a general way (you need a bit of math here): use 2 lines on the borders of you path and move 2 points simultaneously on these lines. Then you can place the character anywhere between these moving points (simple interpolation: Vector3.Lerp).

Also another way to do it is to track the turns. When the player turns you need to change the axis which is used to switch lanes. For instance, if you go in the positive z direction, then you use the x axis to go right/left. When you turn right you will go in the positive x direction and you need to modify z value to change the lane.