public void revert() { for (int i = 0; i < placedObjects.Count; i++) { placedObjects[i].SetActive(true); placedObjects[i].transform.position = staticPlacedObjects[i].transform.position + (new Vector3(0f, LevelManager.SCREEN_GAP, 0f)); specialRevertLogic(placedObjects[i], staticPlacedObjects[i]); } for (int i = 0; i < backgroundPlacedObjects.Count; i++) { backgroundPlacedObjects[i].SetActive(true); backgroundPlacedObjects[i].transform.position = staticBackgroundPlacedObjects[i].transform.position + (new Vector3(0f, LevelManager.SCREEN_GAP, 0f)); specialRevertLogic(backgroundPlacedObjects[i], staticBackgroundPlacedObjects[i]); } for (int i = 0; i < spawnedObjects.Count; i++) { GameObject.DestroyImmediate(spawnedObjects[i]); } spawnedObjects.Clear(); for (int i = 0; i < resetListeners.Count; i++) { ICanReset r = resetListeners[i]; if (((MonoBehaviour)r) != null) { r.reset(); } else { resetListeners.Remove(r); i--; } } }
public void addResetListener(ICanReset r) { resetListeners.Add(r); }