Raycasting is running in two different objects with the same Tag when I touch just one of them

Hi guys.

I’m pretty sure this is a silly question, but I’ve been squeezing my brain all day without results.

I have two objects in my 3D scene with the same tag (“Pin”). They’re two simple spheres and everyone has the next .cs component:

public class Pin : MonoBehaviour {

	[SerializeField]
	private string sceneRelated;

	// Update is called once per frame
	void Update () 
	{
		if (Input.GetMouseButtonDown(0))
		{
			Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
			RaycastHit hit;

			if (Physics.Raycast(ray, out hit))
			{
				if (hit.collider.gameObject.tag == "Pin")
				{
					Debug.Log ("You hit a Pin SceneRelated: " + sceneRelated);
				}
			}
		}
	}
}

Now, when I touch one of the spheres, both of them run the event although they are in different positions.

I really appreciate any suggestions.

Oh my god. It’s bad to be exhausted. As I thought the answer was very simple. My first error was that I locate the Raycast analysis component inside Pin and that component was assigned to every Sphere. The Pin component should not made the Raycast analysis. So I removed all the Raycasts from the Pin component and create a new object (just one) to make the Pin Analysis. This new object include this component:

public class RaycastOnObjects : MonoBehaviour {

	// Update is called once per frame
	void Update () {
		if (Input.GetMouseButtonDown(0))
		{
			//			Debug.Log ("You're touching: " + sceneRelated);
			Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
			RaycastHit hit;

			if (Physics.Raycast(ray, out hit))
			{
				if (hit.collider.gameObject.tag == "Pin")
				{
					Pin pinObject = hit.collider.gameObject.GetComponent<Pin> ();
					if (pinObject != null)
					{
						Debug.Log ("You hit the object for Scene: " + pinObject.sceneRelated);
					}
					Debug.Log ("You hit a Pin FROM RAYCASTING ");
				}
			}
		}
	}
}

And, final version of the Pin component was like this:

public class Pin : MonoBehaviour {

	public string sceneRelated;

	// Update is called once per frame
	void Update () 
	{

	}

}

Which is basically nothing because all the logic is made inside RaycastOnObjects.