This is the main Save System class. More...
Public Member Functions | |
| delegate string | ValidateSceneNameDelegate (string sceneName, SceneValidationMode sceneValidationMode) | 
| delegate void | SceneLoadedDelegate (string sceneName, int sceneIndex) | 
| void | OnSceneLoaded (UnityEngine.SceneManagement.Scene scene, UnityEngine.SceneManagement.LoadSceneMode mode) | 
| void | SaveGameToSlot (int slotNumber) | 
| Saves a game into a slot using the storage provider on the Save System GameObject.   | |
| void | LoadGameFromSlot (int slotNumber) | 
| Loads a game from a slot using the storage provider on the Save System GameObject.   | |
| void | LoadSceneAtSpawnpoint (string sceneNameAndSpawnpoint) | 
| Loads a scene, optionally positioning the player at a specified spawnpoint.   | |
Static Public Member Functions | |
| static string | GetCurrentSceneName () | 
| static int | GetCurrentSceneIndex () | 
| static bool | IsSceneInBuildSettings (string sceneName) | 
| static IEnumerator | LoadAdditiveSceneInternal (string sceneName, SceneValidationMode sceneValidationMode) | 
| static void | UnloadAdditiveSceneInternal (string sceneName) | 
| static void | RecursivelyRecordSavers (Transform t, int sceneIndex) | 
| Records the data of all saver components on the transform and its children.   | |
| static void | RecursivelyApplySavers (Transform t) | 
| Tells all saver components on the transform and its children to retrieve their states from the current saved game data.   | |
| static void | RecursivelyInformBeforeSceneChange (Transform t) | 
| Calls BeforeSceneChange on all saver components on the transform and its children.   | |
| static bool | HasSavedGameInSlot (int slotNumber) | 
| Returns true if there is a saved game in the specified slot.   | |
| static void | DeleteSavedGameInSlot (int slotNumber) | 
| Deletes the saved game in the specified slot.   | |
| static void | SaveToSlot (int slotNumber) | 
| Saves the current game to a slot.   | |
| static void | SaveToSlotImmediate (int slotNumber) | 
| Saves the current game to a slot synchronously and immediately.   | |
| static void | LoadFromSlot (int slotNumber) | 
| Loads a game from a slot.   | |
| static void | RegisterSaver (Saver saver) | 
| static void | UnregisterSaver (Saver saver) | 
| static void | ClearSavedGameData () | 
| Clears the SaveSystem's internal saved game data cache.   | |
| static SavedGameData | RecordSavedGameData () | 
| Records the current scene's savers' data into the SaveSystem's internal saved game data cache.   | |
| static void | UpdateSaveData (Saver saver, string data) | 
| Updates the SaveSystem's internal saved game data cache with data for a specific saver.   | |
| static void | ApplySavedGameData (SavedGameData savedGameData) | 
| Applies the saved game data to the savers in the current scene.   | |
| static void | ApplySavedGameData () | 
| Applies the most recently recorded saved game data.   | |
| static void | BeforeSceneChange () | 
| If changing scenes manually, calls before changing scenes to inform components that listen for OnDestroy messages that they're being destroyed because of the scene change.   | |
| static void | LoadGame (SavedGameData savedGameData) | 
| Loads the scene recorded in the saved game data (if saveCurrentScene is true) and applies the saved game data to it.   | |
| static void | LoadScene (string sceneNameAndSpawnpoint) | 
| Loads a scene, optionally moving the player to a specified spawnpoint.   | |
| static void | LoadAdditiveScene (string sceneName) | 
| Additively loads another scene.   | |
| static void | UnloadAdditiveScene (string sceneName) | 
| Unloads a previously additively-loaded scene.   | |
| static void | UnloadAllAdditiveScenes () | 
| Unloads all previously additively-loaded scenes.   | |
| static void | RestartGame (string startingSceneName) | 
| Clears the SaveSystem's saved game data cache and loads a starting scene.   | |
| static void | ResetGameState () | 
| Clears the SaveSystem's saved game data cache.   | |
| static void | SaversRestartGame () | 
| Calls OnRestartGame on all savers.   | |
| static string | Serialize (object data) | 
| Returns a serialized version of an object using whatever serializer is assigned to the SaveSystem (JSON by default).   | |
| static T | Deserialize< T > (string s, T data=default(T)) | 
| Deserializes a previously-serialized string representation of an object back into an object.   | |
Static Public Attributes | |
| const int | NoSceneIndex = -1 | 
| const string | LastSavedGameSlotPlayerPrefsKey = "savedgame_lastSlotNum" | 
| Stores an int indicating the slot number of the most recently saved game.   | |
| static ValidateSceneNameDelegate | validateNameScene = null | 
| Invoked before loading a scene by name.   | |
Static Protected Member Functions | |
| static IEnumerator | DelayedSaveDataAppliedCoroutine (int frames) | 
Properties | |
| static int | version [get, set] | 
| Optional saved game version number of your choosing.   | |
| static bool | saveCurrentScene [get, set] | 
| When loading a game, load the scene that the game was saved in.   | |
| static int | maxSaveSlot [get, set] | 
| Highest save slot number allowed.   | |
| static int | framesToWaitBeforeApplyData [get, set] | 
| When loading a game/scene, wait this many frames before applying saved data to allow other scripts to initialize first.   | |
| static int | framesToWaitBeforeSaveDataAppliedEvent [get, set] | 
| If a saver requires additional frames after ApplyData() before the saveDataApplied() event should be called, set this property.   | |
| static bool | debug [get, set] | 
| static bool | hasInstance [get] | 
| Checks if an instance already exists, without also implicitly creating one.   | |
| static SaveSystem | instance [get] | 
| static DataSerializer | serializer [get] | 
| Reference to the DataSerializer in the SaveSystem's hierarchy.   | |
| static SavedGameDataStorer | storer [get] | 
| Reference to the SavedGameDataStorer in the SaveSystem's hierarchy.   | |
| static SceneTransitionManager | sceneTransitionManager [get] | 
| Reference to the SceneTransitionManager in the SaveSystem's hierarchy, if present.   | |
| bool | allowNegativeSlotNumbers [get, set] | 
| Allow the use of negative slot numbers.   | |
| static List< string > | addedScenes [get] | 
| Scenes that have been loaded additively.   | |
| static bool | autoUnloadAdditiveScenes [get, set] | 
| When changing scenes, automatically unload all additively-loaded scenes.   | |
| static AsyncOperation | currentAsyncOperation [get, set] | 
| Current asynchronous scene load operation, or null if none.   | |
| static SavedGameData | currentSavedGameData [get, set] | 
| The saved game data recorded by the last call to SaveToSlot, LoadScene, or RecordSavedGameData.   | |
| static GameObject | playerSpawnpoint [get, set] | 
| Where the player should spawn in the current scene.   | |
| static int | currentSceneIndex [get] | 
| Build index of the current scene.   | |
Events | |
| static SceneLoadedDelegate | sceneLoaded = delegate { } | 
| Invoked after a scene has been loaded.   | |
| static System.Action | saveStarted = delegate { } | 
| Invoked when starting to save a game.   | |
| static System.Action | saveEnded = delegate { } | 
| Invoked when finished saving a game.   | |
| static System.Action | loadStarted = delegate { } | 
| Invoked when starting to load a game.   | |
| static System.Action | loadEnded = delegate { } | 
| Invoked when finished loading a game.   | |
| static System.Action | saveDataApplied = delegate { } | 
| Invoked after ApplyData() has been called on all savers.   | |
This is the main Save System class.
It runs as a singleton MonoBehaviour and provides static methods to save and load games.
      
  | 
  inlinestatic | 
Applies the most recently recorded saved game data.
      
  | 
  inlinestatic | 
Applies the saved game data to the savers in the current scene.
| savedGameData | Saved game data. | 
      
  | 
  inlinestatic | 
If changing scenes manually, calls before changing scenes to inform components that listen for OnDestroy messages that they're being destroyed because of the scene change.
      
  | 
  inlinestatic | 
Clears the SaveSystem's internal saved game data cache.
      
  | 
  inlinestaticprotected | 
      
  | 
  inlinestatic | 
Deletes the saved game in the specified slot.
      
  | 
  inlinestatic | 
Deserializes a previously-serialized string representation of an object back into an object.
Uses whatever serializer is assigned to the SaveSystem (JSON by default).
| T | The type of the object. | 
| s | The object's serialized data. | 
| data | Optional preallocated object to serialize data into. | 
      
  | 
  inlinestatic | 
      
  | 
  inlinestatic | 
      
  | 
  inlinestatic | 
Returns true if there is a saved game in the specified slot.
      
  | 
  inlinestatic | 
      
  | 
  inlinestatic | 
Additively loads another scene.
| sceneName | Scene to additively load. | 
      
  | 
  inlinestatic | 
      
  | 
  inlinestatic | 
Loads a game from a slot.
      
  | 
  inlinestatic | 
Loads the scene recorded in the saved game data (if saveCurrentScene is true) and applies the saved game data to it.
| savedGameData | 
      
  | 
  inline | 
Loads a game from a slot using the storage provider on the Save System GameObject.
| slotNumber | 
      
  | 
  inlinestatic | 
Loads a scene, optionally moving the player to a specified spawnpoint.
If the scene name starts with "index:" followed by an index number, this method loads the scene by build index number.
| sceneNameAndSpawnpoint | Scene name, followed by an optional spawnpoint separated by '@'. | 
      
  | 
  inline | 
Loads a scene, optionally positioning the player at a specified spawnpoint.
| sceneNameAndSpawnpoint | A string containing the name of the scene to load, optionally followed by "@spawnpoint" where "spawnpoint" is the name of a GameObject in that scene. The player will be spawned at that GameObject's position. | 
      
  | 
  inline | 
      
  | 
  inlinestatic | 
Records the current scene's savers' data into the SaveSystem's internal saved game data cache.
      
  | 
  inlinestatic | 
Tells all saver components on the transform and its children to retrieve their states from the current saved game data.
| t | 
      
  | 
  inlinestatic | 
Calls BeforeSceneChange on all saver components on the transform and its children.
Used when unloading an additive scene.
| t | 
      
  | 
  inlinestatic | 
Records the data of all saver components on the transform and its children.
      
  | 
  inlinestatic | 
      
  | 
  inlinestatic | 
Clears the SaveSystem's saved game data cache.
Same as RestartGame except it doesn't load a scene after resetting.
| startingSceneName | 
      
  | 
  inlinestatic | 
Clears the SaveSystem's saved game data cache and loads a starting scene.
Same as ResetGameState except loads a starting scene.
| startingSceneName | 
      
  | 
  inline | 
Saves a game into a slot using the storage provider on the Save System GameObject.
| slotNumber | Slot in which to store saved game data. | 
      
  | 
  inlinestatic | 
Calls OnRestartGame on all savers.
      
  | 
  inlinestatic | 
Saves the current game to a slot.
      
  | 
  inlinestatic | 
Saves the current game to a slot synchronously and immediately.
| delegate void PixelCrushers.SaveSystem.SceneLoadedDelegate | ( | string | sceneName, | 
| int | sceneIndex | ||
| ) | 
      
  | 
  inlinestatic | 
Returns a serialized version of an object using whatever serializer is assigned to the SaveSystem (JSON by default).
      
  | 
  inlinestatic | 
Unloads a previously additively-loaded scene.
| sceneName | Scene to unload | 
      
  | 
  inlinestatic | 
      
  | 
  inlinestatic | 
Unloads all previously additively-loaded scenes.
      
  | 
  inlinestatic | 
      
  | 
  inlinestatic | 
Updates the SaveSystem's internal saved game data cache with data for a specific saver.
| saver | |
| data | 
| delegate string PixelCrushers.SaveSystem.ValidateSceneNameDelegate | ( | string | sceneName, | 
| SceneValidationMode | sceneValidationMode | ||
| ) | 
      
  | 
  static | 
Stores an int indicating the slot number of the most recently saved game.
      
  | 
  static | 
      
  | 
  static | 
Invoked before loading a scene by name.
Should return the sceneName, or a different scene if the sceneName isn't valid (e.g., was renamed or removed from build settings), or a blank string to not load any scene.
      
  | 
  staticget | 
Scenes that have been loaded additively.
      
  | 
  getset | 
Allow the use of negative slot numbers.
      
  | 
  staticgetset | 
When changing scenes, automatically unload all additively-loaded scenes.
      
  | 
  staticgetset | 
Current asynchronous scene load operation, or null if none.
Loading scenes can use this value to update a progress bar.
      
  | 
  staticgetset | 
The saved game data recorded by the last call to SaveToSlot, LoadScene, or RecordSavedGameData.
Note: This saved game data stays in memory until you clear it by using RestartGame() or ResetGameState(), or by loading a saved game.
      
  | 
  staticget | 
Build index of the current scene.
      
  | 
  staticgetset | 
      
  | 
  staticgetset | 
When loading a game/scene, wait this many frames before applying saved data to allow other scripts to initialize first.
      
  | 
  staticgetset | 
If a saver requires additional frames after ApplyData() before the saveDataApplied() event should be called, set this property.
Note: This value is reset to zero after every call to ApplySavedGameData.
      
  | 
  staticget | 
Checks if an instance already exists, without also implicitly creating one.
      
  | 
  staticget | 
      
  | 
  staticgetset | 
Highest save slot number allowed.
      
  | 
  staticgetset | 
Where the player should spawn in the current scene.
      
  | 
  staticgetset | 
When loading a game, load the scene that the game was saved in.
      
  | 
  staticget | 
Reference to the SceneTransitionManager in the SaveSystem's hierarchy, if present.
      
  | 
  staticget | 
Reference to the DataSerializer in the SaveSystem's hierarchy.
SaveSystem will use it to serialize and deserialize saved game data.
      
  | 
  staticget | 
Reference to the SavedGameDataStorer in the SaveSystem's hierarchy.
SaveSystem will use it to store and retrieve saved game data.
      
  | 
  staticgetset | 
Optional saved game version number of your choosing.
Version number is included in saved game files.
      
  | 
  static | 
Invoked when finished loading a game.
      
  | 
  static | 
Invoked when starting to load a game.
If assigned, waits one frame before starting the load to allow UIs to update.
      
  | 
  static | 
Invoked after ApplyData() has been called on all savers.
      
  | 
  static | 
Invoked when finished saving a game.
      
  | 
  static | 
Invoked when starting to save a game.
If assigned, waits one frame before starting the save to allow UIs to update.
      
  | 
  static | 
Invoked after a scene has been loaded.