the game doesn't enter play mode,it just gets stuck

i’ve made a script for this game i’m trying to make.i’ve been wanting to try out this script but it just doesn’t seem to enter play mode.here’s a copy of the script
any feedback on the script would be appreciated

using UnityEngine;
using System.Collections;

public class androloco : MonoBehaviour {

// Use this for initialization
public Vector2 fp;
public Vector2 lp;
public float diff;
public int lane=1;
public int movementSpeed=10;
public float jump;
void Start () {

}

// Update is called once per frame
void Update () {
	transform.Translate(Vector3.forward * Time.deltaTime * movementSpeed);
	if (Input.touchCount > 0) {
					if (Input.GetTouch (0).phase == TouchPhase.Began) {
							fp = Input.GetTouch (0).position;
					}
					if (Input.GetTouch (1).phase == TouchPhase.Moved && Input.GetTouch (1).phase == TouchPhase.Ended) {
							lp = Input.GetTouch (1).position;
					}
			}
	diff = lp.x - fp.x;
	jump = lp.y - fp.y;
	while (lane>=0&&lane<3) {
					if (lane == 1) {
							if (diff > 50) {
									lane++;
									transform.Translate (new Vector3 (5, 0, 0));
							} else if (diff <= -50) {
									lane--;
									transform.Translate (new Vector3 (-5, 0, 0));
							}
					} else if (lane == 0) {
							if (diff > 50) {
									lane++;
									transform.Translate (new Vector3 (5, 0, 0));
							}
					} else {
							if (diff <= -50) {
									lane--;
									transform.Translate (new Vector3 (-5, 0, 0));
							}
					}
			}


}

}

As a rule of thumb avoid while loop if you do not have a 100% certainty of getting out of it.

I would guess, your loop starts and the condition is always met so it remains there.

In this case it is better to use either a for loop which will leave after a certain amount of loop but you may not get the result you are expecting, or use coroutine which will return each frame to let the rest of the program go and will process back next frame.

Still, if that loop never ends, you are probably doing something wrong in it.