Touching Falling Objects

Hi, here’s my problem.
I have cubes spawned at the top of the screen and falling down because of gravity.
Touching a cube makes it disappear and increase the score.
it works pretty good but as the speed gets higher the touch seems not working.

I’ve already tried editing the timestep values and other time settings in the Edit>project settings>Time tab, without any good result.

here’s my code, any help is appreciated.

foreach (Touch t in Input.touches) {
					if (t.phase != TouchPhase.Moved && t.phase != TouchPhase.Stationary) {
						RaycastHit hit;
						Ray ray = Camera.main.ScreenPointToRay (t.position);
						if (Physics.Raycast (ray, out hit, 100f)) {
							if (hit.collider.gameObject.tag == "cube") {
                           	//SCORE UPDATE AND DESTROY() HERE							
							}
						}
					}
}

Sometimes when I deal with something like this I will end up casting a sphere and not a ray. This kind of allows you do hit a “broader” spectrum of world space then a ray.

I find lots of touch input to be pretty imprecise. Think about it when you put your finger down you are touching WAY more then 1 screen coordinate location. I often find the circle or sphere casts/checks to be a better representation of a players actual touch then a ray is.