public void registerForAll(T action, Action <Object> func, ActorSelector selector) { callbacks[action].Add(func); SelectorStore <T> .get._selectors[action].Add(func, selector); // Find all already existing gameobjects of this type UnityEngine.Object[] alreadyExistingActors = UnityEngine.Object.FindObjectsOfType(typeof(SubscribableActor <T, S>)); foreach (UnityEngine.Object obj in alreadyExistingActors) { var actor = (SubscribableActor <T, S>)obj; if (selector.registerCondition(actor.gameObject)) { actor.register(action, func); } } }