[SOLVED] When touch and drag objects fast (in android), leave dragging.

When touch and drag objects in android fast, leave dragging.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class codigoBola : MonoBehaviour {

	public Text debug; // <- aqui arrastro un texto que tengo dentro de un canvas para usarlo a modo de console.log().
	GameObject objeto = null; // <- usare esta variable para saber a objeto se esta haciendo click en ese momento.
	
	// Para el drag:
	Plane plane;
	Vector3 Offset;

	void Start() {	
		//Screen.orientation = ScreenOrientation.Landscape;
	}
	
	Ray generateMouseRay(Vector3 touchPosition){

		Vector3 touchNear = new Vector3 (touchPosition.x, touchPosition.y, Camera.main.nearClipPlane);
		Vector3 touchFar = new Vector3 (touchPosition.x, touchPosition.y, Camera.main.farClipPlane);
		
		Vector3 tnear = Camera.main.ScreenToWorldPoint (touchNear);
		Vector3 tfar = Camera.main.ScreenToWorldPoint (touchFar);

		Ray mr = new Ray ( tnear, tfar - tnear );
		return mr;
	}

	void FixedUpdate() {
		if (Input.touchCount > 0) {
			Touch touch = Input.GetTouch(0);
			
			// Ray ray = Camera.main.ScreenPointToRay(touch.position);
			Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
			RaycastHit hit = new RaycastHit();

			// Ray mouseRay = generateMouseRay(touch.position);
			// if(Physics.Raycast(mouseRay.origin, mouseRay.direction, out hit, Mathf.Infinity) && hit.collider.tag == "Draggable" ){
			if(Physics.Raycast(ray, out hit, Mathf.Infinity) && hit.collider.tag == "Draggable" ){
				objeto =  hit.collider.gameObject;

				ray = Camera.main.ScreenPointToRay(touch.position);
				float rayDistance;
				plane = new Plane (Camera.main.transform.forward * -1, objeto.transform.position);
				plane.Raycast(ray, out rayDistance); 

				if (touch.phase == TouchPhase.Began) {
					
					debug.text = "Touched " + objeto.name;
					plane.Raycast(ray, out rayDistance); 
					Offset = objeto.transform.position - ray.GetPoint(rayDistance);
				
				} else if (touch.phase == TouchPhase.Moved){
					
					if (plane.Raycast (ray, out rayDistance)){
						objeto.transform.position = ray.GetPoint(rayDistance) + Offset;
						debug.text = "Dragging... " + objeto.name + " " + objeto.transform.position;
					}

				} else if (touch.phase == TouchPhase.Ended){
					debug.text = "Ended!";
				}

			}// end physiscs.raycast

		} // end if > 0
			
	} // end update





} // end class

Solved, this is my new code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class codigoBola : MonoBehaviour {

	public Text debug; // <- aqui arrastro un texto que tengo dentro de un canvas para usarlo a modo de console.log().
	
	// Para el drag:
    GameObject objeto = null;
    Ray ray;
	Plane plane;
    float rayDistance;
	Vector3 Offset;
    bool mouseOver = false;
    bool mousePressed = false;

	void Start() {	
		//Screen.orientation = ScreenOrientation.Landscape;
	}
	
	void FixedUpdate() {
        
        if (Input.touchCount > 0) {
            mousePressed = true;
        } else {
            mousePressed = false;
            objeto = null;
            debug.text = "";
        }
        
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit = new RaycastHit();        

        if ( Physics.Raycast(ray, out hit, Mathf.Infinity) && hit.collider.tag == "Draggable" ){
            mouseOver = true;
            if (Input.GetTouch(0).phase != TouchPhase.Moved){ // <- con esto evito mover otros objetos mientras muevo el actual.
                objeto =  hit.collider.gameObject;    
            }
        } else {
            if (mousePressed == false){
                mouseOver = false;
            }
        }
        if (mouseOver){
            if (mousePressed){
                plane = new Plane (Camera.main.transform.forward * -1, objeto.transform.position);
                plane.Raycast(ray, out rayDistance); 
                objeto.transform.position = ray.GetPoint(rayDistance) + Offset;
                debug.text = "Arrastrando... " + objeto.name + " " + objeto.transform.position;
            }
        }
			
	} // end update


} // end class