OnMouseButtonDown raycast

I’m currently working on a mobile game project on Unity. I have a problem while trying to get collided item and working mechanic of Ray. Here is the code:

void Update () {

int boxNumber = -1;

//Change with touch inputs
if(Input.GetMouseButtonDown(0)){
    mouseDownX = Input.mousePosition.x;
    mouseDownY = Input.mousePosition.y;
    xMove = true;
    RaycastHit hit = new RaycastHit ();
    Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
    if (Physics.Raycast (ray, out hit, 100)) {
        boxNumber = int.Parse (hit.collider.gameObject.name);
    }
}
if(Input.GetMouseButtonUp(0)){
    mouseUpX = Input.mousePosition.x;
    mouseUpY = Input.mousePosition.y;
    yMove = true;
}
if(yMove == true && boxNumber != -1){
    boxDecider (boxNumber,getDirection());
    Debug.Log (getDirection());
        yMove = false;
        xMove = false;
    }
}

getDirection() boxDecider() methods are created by me and are working well. When first if statement is activated(when mouse button down) it finds the collided object correctly but it calls the boxDecider() method WITHOUT releasing the mouse button but it should call the method after releasing the mouse button.

i m dead sure that yMove is already true before you are setting it in GetMouseButtonUp, let me know if this code worked for you

 void Update () {
 
 int boxNumber = -1;
 
 //Change with touch inputs
 if(Input.GetMouseButtonDown(0)){
     mouseDownX = Input.mousePosition.x;
     mouseDownY = Input.mousePosition.y;
     xMove = true;
     RaycastHit hit = new RaycastHit ();
     Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
     if (Physics.Raycast (ray, out hit, 100)) {
         boxNumber = int.Parse (hit.collider.gameObject.name);
     }
 }
 if(Input.GetMouseButtonUp(0)){
     mouseUpX = Input.mousePosition.x;
     mouseUpY = Input.mousePosition.y;
     yMove = true;
     if(boxNumber != -1){
         boxDecider (boxNumber,getDirection());
         Debug.Log (getDirection());
         yMove = false;
         xMove = false;
     }
 }
 }

You Can Use Timer to Wait in Your 3rd If Statement or You can OnMouseUp() and OnMouseDown() Methods.