Touches not registering or raycasting not hitting normal?

I have an app where I have to touch moving objects and I create an instance of a particle when the touch phase = touch.began. I’m noticing that even though I am using enlarged sphere colliders for the touch areas, about 25% of my touches aren’t registering.

I have 5 moving objects to check against and have everything else set to “Ignore raycast” but still seem to miss many touches. I also have my filter mask set to a single layer with only the 5 objects in it. I’m doing the ray check in the Update() function only if touch.phase = iPhoneTouchPhase.Began.

Is it normal to “miss” so many touches or am I doing something wrong?

Are the objects that ignore touches the same ones each time (ie, an object either always works or never works)? If so, check each object has a collider, and I think they also need a rigidbody.

Otherwise, the most likely explanation is that the raycast is not being sent to exactly the right place. Can you post the code you are using to carry out the raycast?

I never change the ignore objects in code and the objects work most of the time, just not always.

var layerMask = 1 << 9;
var ray = Camera.main.ScreenPointToRay( fingerposition );

if( Physics.Raycast( ray, hit, Mathf.Infinity, layerMask))
{
    // hit
}

What I’ve noticed in my logging is that sometimes iPhoneInput.touches shows 0 even though I did touch the screen and that the ray call above doesn’t intersect objects.