I'm trying to write some kind of global state handler that maintains the state of scenes when you switch between them. Essentially it needs to keep track of what has been removed from each scene, so that when you then reload that scene on a future occasion (having visited other scenes in the mean time) it can re-remove them. The problem I'm having is how you identify each item. The GetInstanceID method returns unique values that are different each time you load the scene. The objects also seem to load in an arbitrary order (or at least 'FindObjectsOfType' seems to return them in an arbitrary order) so I can't do it based on that. The names aren't necessarily unique (you may have two instances of the same thing). Any ideas?