I think what you're looking for is a way to "save" what objects have been deleted : you simply have to make your class inherit from MonoBehaviour and call DontDestroyOnLoad() so your object containing the script will exist between the scenes.
public static class DestroyedObject : MonoBehaviour { public static DestroyedObject Instance; private static List<GameObject> objs = new List<GameObject>(); private void Awake() { if (!Instance) { Instance = this; } else { DestroyImmediate(gameObject); } DontDestroyOnLoad(gameObject); } public static void Add(GameObject obj) { if(!objs.Contains(obj)) objs.Add(obj); } public static List<GameObject> GetDestroyedObjects() { return objs; } }
Then you simply access your script using DestroyedObject.Instance.Add() or DestroyedObject.Instance.GetDestroyedObjects() (some people don't like this kind of design pattern but it has proven to be very effective when using Unity).
Also as @Sergey asked, why creating objects (on scene loading) in order to delete them afterward : you could do the revers operation (only instantiate the needed ones).
Hope this helps,