Стоп. Как мне найти через другой скрипт все объекты, которые существуют ( спрайты ) и раздать всем по sceneReloads++ перед Application.LoadLevel("RestartUroven'");? Вот допустим, что я пихнул в префаб скрипт с переменной int sceneReloads. Первая проблема - как понять, что настал момент начисления? Вторая - можно ли как-то проверять sceneReloads не через Update? (Если это не будет нагружать как-то заметно устройство, то можно и через Update)
Кажется не поняли мой код.
У класса SceneManager есть событие которое вызывается когда загружается новый уровень. Если подписать какой-то метод на это событие, то этот метод будет вызываться как только новый уровень загружен. И получается, объект находится в DontDestroyOnLoad, перешли на другую сцену, вызывается метод на спрайте, в котором проверяется кол-во пережитых сцен, и если их больше X - удаляем себя. Ничего не надо прописывать, и Update тут нет вообще.
Как-то так.
Но я прочитал ваш ответ и наверное лучше хранить static лист с элементами в которых хранятся номер сцены, и информация о спрайтах на этой сцене, т.е. позиция и кол-во пережитых сцен. И когда меняем сцену, смотреть есть ли в листе что-нибудь для текущей сцены. Так будет лучше правильнее, ИМХО.