Ejemplo n.º 1
0
        private void SendDataToScene(SingleLevelData levelData, bool restoringSaveFile, SubScene subScene = null)
        {
            SceneSettings  sceneSettings  = (subScene == null) ? KickStarter.sceneSettings : subScene.SceneSettings;
            LocalVariables localVariables = (subScene == null) ? KickStarter.localVariables : subScene.LocalVariables;

            KickStarter.actionListManager.LoadData(levelData.activeLists, subScene);

            UnloadCutsceneOnLoad(levelData.onLoadCutscene, sceneSettings);
            UnloadCutsceneOnStart(levelData.onStartCutscene, sceneSettings);
            UnloadNavMesh(levelData.navMesh, sceneSettings);
            UnloadPlayerStart(levelData.playerStart, sceneSettings);
            UnloadSortingMap(levelData.sortingMap, sceneSettings);
            UnloadTintMap(levelData.tintMap, sceneSettings);

            UnloadTransformData(levelData.allTransformData, subScene);

            foreach (ScriptData _scriptData in levelData.allScriptData)
            {
                if (_scriptData.data != null && _scriptData.data.Length > 0)
                {
                    // Get objects in active scene, and "DontDestroyOnLoad" scene
                    Remember[] saveObjects = Serializer.returnComponents <Remember> (_scriptData.objectID);

                    foreach (Remember saveObject in saveObjects)
                    {
                        if (saveObject != null && UnityVersionHandler.ObjectIsInActiveScene(saveObject.gameObject))
                        {
                            // May have more than one Remember script on the same object, so check all
                            Remember[] saveScripts = saveObject.gameObject.GetComponents <Remember>();
                            foreach (Remember saveScript in saveScripts)
                            {
                                saveScript.LoadData(_scriptData.data, restoringSaveFile);
                            }
                        }
                    }
                }

                /*Remember saveObject = Serializer.returnComponent <Remember> (_scriptData.objectID, sceneSettings.gameObject);
                 * if (saveObject != null && _scriptData.data != null && _scriptData.data.Length > 0)
                 * {
                 *      // May have more than one Remember script on the same object, so check all
                 *      Remember[] saveScripts = saveObject.gameObject.GetComponents <Remember>();
                 *      foreach (Remember saveScript in saveScripts)
                 *      {
                 *              saveScript.LoadData (_scriptData.data, restoringSaveFile);
                 *      }
                 * }*/
            }

            UnloadVariablesData(levelData.localVariablesData, localVariables);
            KickStarter.sceneSettings.UpdateAllSortingMaps();
        }
Ejemplo n.º 2
0
        /**
         * <summary>Returns the currently-loaded scene's save data to the appropriate Remember components, provided they are on the Player.</summary>
         */
        public void ReturnCurrentLevelPlayerData()
        {
            SingleLevelData levelData = GetLevelData();

            if (levelData == null)
            {
                return;
            }

            foreach (ScriptData _scriptData in levelData.allScriptData)
            {
                if (_scriptData.data != null && _scriptData.data.Length > 0)
                {
                    // Get objects in active scene, and "DontDestroyOnLoad" scene
                    Remember[] saveObjects = Serializer.returnComponents <Remember> (_scriptData.objectID);

                    foreach (Remember saveObject in saveObjects)
                    {
                        if (saveObject != null)
                        {
                            if ((saveObject.transform.parent == null && saveObject.tag == Tags.player) ||
                                (saveObject.transform.parent != null && saveObject.transform.root != null && saveObject.transform.root.tag == Tags.player))
                            {
                                // May have more than one Remember script on the same object, so check all
                                Remember[] saveScripts = saveObject.gameObject.GetComponents <Remember>();
                                foreach (Remember saveScript in saveScripts)
                                {
                                    saveScript.LoadData(_scriptData.data, true);
                                }
                            }
                        }
                    }
                }
            }

            AssetLoader.UnloadAssets();
        }