public void SaveSceneData() { SaveableSceneData newSceneData = new SaveableSceneData(); List <SceneObject> sceneObjectsToSave = new List <SceneObject>(); if (SaveLoadScene.SceneSaveExists(sceneName)) { sceneObjectsToSave = SaveLoadScene.loadedScene.sceneObjects; } object[] allObjects = GameObject.FindObjectsOfType(typeof(GameObject)); // Debug.Log("All Scene GOs: " + allObjects.Length); for (int i = 0; i < allObjects.Length; i++) { GameObject currentObj = (GameObject)allObjects[i]; ObjectIdentity idScript = currentObj.GetComponent <ObjectIdentity>(); if (idScript != null) { // Debug.Log("Found Object With ID: " + idScript.id); SceneObject newSceneObject = new SceneObject(); newSceneObject.name = currentObj.name; newSceneObject.id = idScript.id; newSceneObject.dontLoad = idScript.dontLoad; newSceneObject.posX = currentObj.transform.position.x; newSceneObject.posY = currentObj.transform.position.y; newSceneObject.posZ = currentObj.transform.position.z; newSceneObject.rotX = currentObj.transform.rotation.x; newSceneObject.rotY = currentObj.transform.rotation.y; newSceneObject.rotZ = currentObj.transform.rotation.z; newSceneObject.rotW = currentObj.transform.rotation.w; SceneObject matchingObj = sceneObjectsToSave.Where(obj => obj.id == newSceneObject.id).SingleOrDefault(); if (matchingObj == null) { sceneObjectsToSave.Add(newSceneObject); } else { sceneObjectsToSave.Remove(matchingObj); sceneObjectsToSave.Add(newSceneObject); } } } // Debug.Log("Scene Objects to Save: " + sceneObjectsToSave.Count); newSceneData.sceneName = sceneName; newSceneData.sceneObjects = sceneObjectsToSave; SaveLoadScene.Save(newSceneData); // Debug.Log("Finished Scene Save (Save Handler)"); hasFinishedSaving = true; }
void Start() { hasFinishedSaving = false; hasFinishedLoading = false; if (SaveLoadScene.SceneSaveExists(sceneName)) { LoadSceneData(); } else { hasFinishedLoading = true; } }