touch accuracy

I am trying to make a simple game for mobiles where when i touch a gameobject , this looses its gravity.
I have tested only in android devices and the problem is , that sometimes i have to touch it many times in order something to happen.
The touch code i am using goes like this :
<<if (Input.touchCount > 0 Input.GetTouch(0).phase == TouchPhase.Began) {

var ray = Camera.main.ScreenPointToRay (Input.GetTouch(0).position);
if (Physics.Raycast (ray, hit)) {
if (hit.transform.gameObject == GameObject.Find(“Helicopter”))
hit.transform.gameObject.Find(“Cube”).rigidbody.useGravity = true;

Is there a more accurate way to use ?

That depends on the size of your physics objects in the scene. The larger they are the easier it is to touch them. Another way to get more accuracy might be to try using SphereCast() instead of Raycast(). SphereCast does the same thing as ray cast except the ray has a ‘thickness’ meaning it will more likely intersect objects near where you’re touching.