Exemple #1
0
    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;
    }
Exemple #2
0
    void Start()
    {
        hasFinishedSaving  = false;
        hasFinishedLoading = false;

        if (SaveLoadScene.SceneSaveExists(sceneName))
        {
            LoadSceneData();
        }
        else
        {
            hasFinishedLoading = true;
        }
    }