Tap deletes every object instead of the single one I want. How to prevent this?

I am making a tap game for android. The game consists of multiple circles which appear at a certain time and also automatically disappear after a certain time (for example: circle 1 appears at 6 second and disappears 2 seconds later, circle 2 appears after 7 seconds and disappears 2 seconds later).
The player’s task is to tap these circles before they disappear. When they do that they will get a certain amount of point. My problem at the moment is when a player taps a circle, all circles disappear. I have tried multiple things (normal touch, raycast etc) but i can’t seem to properly solve it so that only the one circle the player touches disappears, and not all the other circles as well. Also, if 2 circles overlap each other, one the one on top should be deleted with the first tap, and the one below at the second tap. At the moment they are simultaneously deleted when the upper one is tapped.

This is the code i’m using at the moment, but doesn’t work as i want it to work.

// Use this for initialization
void Start () {
renderer.enabled = false;
}

// Update is called once per frame
void Update () {	
if(Time.time > 6.00)
	{
		renderer.enabled = true;
	}
	if(Time.time > 8.00)
	{
		gameObject.SetActive(false);
	}
	
	if (Input.touchCount == 1)
	{
		if (Input.GetTouch(0).phase == TouchPhase.Began)
		{
			var ray = Camera.main.ScreenPointToRay (Input.GetTouch(0).position);
			if (Physics.Raycast (ray,1100))
			{
				OnMouseDown();
			}
		}
	}
}

void OnMouseDown()
{
	Debug.Log("Click");	
	gameObject.SetActive(false);
}

}

Does anybody have any hints as how to modify my code so that it works the way it is supposed to work?

Perhaps try this

http://docs.unity3d.com/Documentation/ScriptReference/Input.GetMouseButtonDown.html

Instead of OnMouseDown.

Use a version of Raycast that uses ‘hitinfo’ and use that info to return the actual collider that has been clicked on.