I sorted it out by adding an FSM to each object which adds an object to array OnVisible, and removes it on OnBecameInvisible.
If you want to put all objects in scene to array, visible or not, just add them to array on level loaded, iterate the array and remove objects that don't match the wanted tag.