Script on two objects only runs as a single instance?

The following script:

enter code hereIEnumerator observe ()
	{
		while (true)
		{
			yield return new WaitForSeconds (0.3f);
			Debug.Log ("Detecting");
			Collider[] colliders = Physics.OverlapSphere (transform.position, stasisRange);
			foreach (Collider collider in colliders)
			{
				if (collider.transform.position.magnitude <= awarenessRange)
				{
					AddSubscriber (collider.gameObject);
				}
				else 
				{
					RemoveSubscriber (collider.gameObject);
				}
			}
		}
	}

Runs correctly when on object A and not on object B.
Runs correctly when on object B and not on object A.
When on object A and B only runs as though it is on object A.

Why is this?

Thanks in advance.

Sean

Your comment is incorrect. To further help this question, there are plenty of things that could be included. The most obvious option here would be the context of invocation of the routines, as you are probably calling them in a weird way for this behavior to be happening.

@Tourist
@AjayKhara
@KMKxJOEY1

I apologize, ironically if I showed you all my code you could have told me that the reason it doesn’t work on two objects is because it is implemented within a class this is a singleton…

I’m an idiot and i am sorry.

Sincerely,
Sean