Changelog
Note
The changelog follows Semantic Versioning specifications.
Note
Make sure to Backup your project before updating and also remove the Save System before importing (if you've modified Default settings inside the plugin folder, then make sure to move them out before deleting or importing too)
1.21.3
⭐ New Features ⭐
- ⭐ Added Prefab saving and loading using Auto Save Prefab and ISavablePrefab interface, there is a new Prefab Reference Resolver too.
⚙️ Fixed Bugs ⚙️
- ✔️ Fixed TransformConverter error for serializing parent
- ✔️ Fixed TransformConverter problem with deserializing parent and overriding the childrens positions
- ✔️ Fixed GameObjectConverter problem with deserializing children, so now it sets their parent using
SetParent
method instead ofparent
property - ✔️ Fixed SceneReferenceResolver.Get error for retrieving a reference for object
1.20.5
⚙️ Fixed Bugs ⚙️
- ✔️ Fixed SerializableDictionary error when using HDRP and getting NullReferenceException for
VolumeComponent.GetHashCode
1.20.4
⚙️ Fixed Bugs ⚙️
- ✔️ Fixed LoadInto error when encryption is enabled
1.20.3
⚙️ Fixed Bugs ⚙️
- ✔️ Fixed File.SetAttributes error for iOS builds
1.20.2
⚡ Improvements & Changes ⚡
- ⚡ Removed the .NET API compatibility upgrade prompt
1.20.1
⚡ Improvements & Changes ⚡
- ⚡ Added DelegateConverter to ignore the serialization / deserialization of delegates to prevent errors
- ⚡ Updated Google Play Games integration to Google Play Games plugin v11.01
1.20.0
⚡ Improvements & Changes ⚡
- ⚡ Replaced Auto Save Manager Event Types with a single enum definition that is the combination of them, so make sure to re-check the Auto Save Manager component on the scenes that you've used to reflect the change and set the Event Type accordingly.
- ⚡ In conjunction with the above change, there is a new event type field called Fetch Event Type that calls the FetchAutoSaves method underneath once the event is invoked, so this way you can have persistent Auto Save components between scenes and have them save and load using individual Auto Save Managers on different scenes.
- ⚡ Modified the Auto Save Manager FetchAutoSaves method to merge the auto saves instead of completely replacing the list and also Sorts the auto saves once fetch operation is done.
1.19.9
⭐ New Features ⭐
- ⭐ Added Memory Storage
⚙️ Fixed Bugs ⚙️
- ✔️ Fixed Texture2D deserialization bug
- ✔️ Fixed deserialization of System.Object as property bug
1.19.6
⭐ New Features ⭐
- ⭐ Added Supported Data Types article to manual
⚙️ Fixed Bugs ⚙️
- ✔️ Fixed ShaderConverter deserialization bug
1.19.5
⭐ New Features ⭐
- ⭐ Added Delete method to Auto Save Manager
- ⭐ Added Events to the Auto Save Manager such as Saved, Saving, Loaded, Loading, Deleted, Deleting both as Unity events and C# events
- ⭐ Added Auto Save demo and guide
⚡ Improvements & Changes ⚡
- ⚡ The Auto Save Manager now provides public properties for getting and setting them at runtime
- ⚡ Updated the Demos with more detailed description
1.19.2
⚙️ Fixed Bugs ⚙️
- ✔️ Updated Editor Icons folder so they are stripped from the build
- ✔️ Updated MaterialConverter backward compatibility for Unity 2018.4
1.19.0
⭐ New Features ⭐
- ⭐ Added Xbox Live integration: https://docs.bayat.io/save-system/manual/integrations/xbox-live.html
- ⭐ Added Google Play Games integration: https://docs.bayat.io/save-system/manual/integrations/google-play-games.html
- ⭐ Added Trace Writer to the Json settings that allows you to get debug information about the serialization / deserialization process and specify a filter level for the logs
⚡ Improvements & Changes ⚡
- ⚡ The Auto Save Manager now sorts the Auto Saves based on the hierarchy order, from parent to children, so this way there won't be any more issues with having missing objects from hierarchy
- ⚡ The Material Properties Resolver now uses the material asset GUID for lookup, so there won't be name collisions during serialization
- ⚡ The Material Properties Resolver now ignores material instances, and their properties are dynamically fetched
- ⚡ The MaterialConverter retrieves the properties of a material dynamically through the Shader API instead of using the cached properties in the Material Properties Resolver for Material instances, the referenced Materials are still fetched through the resolver
⚙️ Fixed Bugs ⚙️
- ✔️ Fixed Material Properties Resolver name collision bug when having materials with the same name
- ✔️ Fixed MeshConverter bug when serializing or deserializing read-only meshes
- ✔️ Fixed ObjectJsonConverter bug when iterating through properties near the end of the object token
1.18.6
⚡ Improvements & Changes ⚡
- ⚡ The Auto Save Manager now logs the exceptions thrown during save or load process
- ⚡ Added About Window to check version and changelog information
⚙️ Fixed Bugs ⚙️
- ✔️ Fixed Unity Object Null Check during serialization that caused many save process end up with a temp file because of the NullReferenceException thrown
- ✔️ Fixed Serialize Scriptable Objects option being ignored for certain objects
1.18.2
⚙️ Fixed Bugs ⚙️
- ✔️ Fixed RemoveInvalidReferences build error
- ✔️ Fixed Save System Editor Icons being included in the build
1.18.0
⚡ Improvements & Changes ⚡
- ⚡ Added Ignore Static option for Scene Reference Resolver and Asset Reference Resolver to have the ability to ignore static objects from being referenced.
- ⚡ Added Ignored Tags option for Scene Reference Resolver and Asset Reference to ignore GameObjects with certain tags on them.
1.16.9
⚡ Improvements & Changes ⚡
- ⚡ Added Show Editor Assemblies option to Create Object Converter window.
- ⚡ Added AnimatorConverter to support serialization of Animator component.
- ⚡ The Material Properties Resolver now is able to resolve material instances.
- ⚡ The RectTransformConverter now uses SetParent instead of parent property to prevent warnings and issues.
- ⚡ The TextMeshProConverter is now included in addons that supports serialization of TextMeshPro components.
⚙️ Fixed Bugs ⚙️
- ✔️ Fixed Color32 serialization bug
- ✔️ Fixed Add Scene/Asset Reference menu name issue
1.15.5
⚙️ Fixed Bugs ⚙️
- ✔️ Fixed AddReferenceWindow validate method warning
1.15.4
⭐ New Features ⭐
- ⭐ Added a new utility window called Add Reference that allows you to add references through an easy user interface and choose which dependencies to include.
- ⭐ Added Invalid GameObject Tags option to Scene Reference Resolver and Asset Reference Resolver that will allow you to prevent GameObjects with invalid tags from being referenced.
⚡ Improvements & Changes ⚡
- ⚡ The Add Scene Reference(s) and Add Asset Reference(s) menu items will now open the new Add Reference utility window that will allow you to select which dependencies to reference
- ⚡ Implemented basic Multi-scene capability for Scene Reference Resolver
- ⚡ Added new API methods to Scene Reference Resolver for retrieving scene-specific references.
⚙️ Fixed Bugs ⚙️
- ✔️ Fixed Serialize Scriptable Objects option causing serialization bug
1.13.0
⭐ New Features ⭐
- ⭐ Added Serialize Scriptable Objects option to Json Serializer Settings that allows you to enable the ability to serialize the ScriptableObjects data alongside its reference, if disabled, only the reference will be serialized
1.12.30
⚙️ Fixed Bugs ⚙️
- ✔️ Fixed Connection String Factories not being initialized on AOT/IL2CPP platforms (Now they're using RuntimeInitializeOnLoadMethod to register themselves, third-party storage providers should implement the same method)
- ✔️ Updated all official integration packages to reflect the Connection String Factory patch (e.g. Steamworks .NET, PlayFab, Firebase, Facepunch Steamworks, ...)
- ✔️ Fixed 'ScriptableObject' being serialized more than once for the subsequent references
1.12.28
⚙️ Fixed Bugs ⚙️
- ✔️ Fixed 'JsonSerializerSettings.cs' Compile Error on AOT and IL2CPP platforms
1.12.27
✏️ Notes ✏️
- ✏️ Use the newly added Database Migration window to migrate all reference databases to the new version in your scenes
⭐ New Features ⭐
- ⭐ Updated the reference resolving database by using Dictionaries instead of Lists that improved the performance by 30x faster reference resolving (Asset Reference Resolver and Scene Reference Resolver) that means both of the reference resolvers now use an optimized fast database
- ⭐ Added Database Migration Window which allows you to migrate old scene and asset reference databases to the new fast and optimized database available at Window > Bayat > Core > Database Migration
- ⭐ Added Add Asset Reference(s) menu item for adding a reference to assets using the project window and scene hierarchy context menu
- ⭐ Added Add Scene Reference(s) menu item for adding a reference to scene objects using the scene hierarchy context menu
- ⭐ Added Steamworks .NET integration: https://docs.bayat.io/save-system/manual/integrations/steamworksdotnet.html
- ⭐ Added Facepunch Steamworks integration: https://docs.bayat.io/save-system/manual/integrations/facepunch-steamworks.html
⚙️ Fixed Bugs ⚙️
- ✔️ Fixed Asset Reference Resolver, Material Properties Resolver, and Scene Reference Resolver not being serialized cause of not being marked as dirty after modification by collecting dependencies with using EditorUtility.SetDirty inside all API methods
- ✔️ Fixed Scene Reference Manager window and Asset Reference Manager window zero item issue
- ✔️ Fixed the Save System Manager and Auto Save Manager menu items creating again while the instance is available in the scene
⚡ Improvements & Changes ⚡
- ⚡ Added Remove Unused References to Asset Reference Resolver, Material Properties Resolver, and Scene Reference Resolver to remove unused references to assets and objects
- ⚡ Added ReferenceResolverMode which allows you to control how the reference management behave, automatically or manually (the default mode is Auto)
- ⚡ Added GuidToReferenceDictionary class for handling GUID to reference queries in the database dictionary
- ⚡ Added ReferenceToGuidDictionary class for handling reference to GUID queries in the database dictionary
- ⚡ The Reference Checker Window now displays the corresponding Asset Path without being referenced by Asset Reference Resolver
- ⚡ The Asset Reference Resolver now uses the build scenes to fetch new dependencies and check for unused assets, so if you're referencing something outside of your scenes, make sure to not use RemoveUnusedReferences
- ⚡ Added Remove GameObject Serialization Handler button to the GameObject Serialization Handler Manager Window
- ⚡ Added Remove Auto Save button to the Auto Save Manager Window
1.0.24
⚡ New Features ⚡
- ⚡ Added Auto Save Manager window
- ⚡ Added GameObject Serialization Manager window
- ⚡ Added Remove On Disable option to the Auto Save component to allow you to choose whether to remove the auto save from auto save manager on OnDisable event or not
- ⚡ Added Update On Scene Saving to Scene Reference Resolver which lets the Scene Reference Resolver to update and collect dependencies when you're saving the scene (you can disable it anytime on the Scene Reference Resolver component)
- ⚡ Added Update On Entering Play Mode to Scene Reference Resolver which lets the Scene Reference Resolver to update and collect dependencies when you're entering the play mode (you can disable it anytime on the Scene Reference Resolver component)
- ⚡ Added CustomSettings property to JsonSerializerSettingsPreset
- ⚡ Added support for serialization of ScriptableObjects by both reference and value instead of just reference
⚙️ Fixed Bugs ⚙️
- ✔️ Fixed Auto Save Manager referencing same Auto Save component multiple times
- ✔️ Fixed Vector2Int and Vector3Int properties being saved as floats instead of int
- ✔️ Fixed GetFriendlyName issue
- ✔️ Fixed PlayFab integration issues
- ✔️ Fixed Firebase Realtime Database integration issues
- ✔️ Fixed Firebase Cloud Storage integration issues
- ✔️ Fixed Default settings preset configuration not reflecting on - SaveSystemSettings.DefaultSettings
- ✔️ Fixed Asset Reference Resolver referencing assets with invalid Hide Flags and - causing build errors
- ✔️ Fixed Asset Reference Resolver error on import or reset
- ✔️ Fixed PlayerPrefs Storage not storing data without Base64 encoding
⚠️ Known Bugs ⚠️
- ⚠️ It looks sometimes the Asset Reference Resolver resets its data as reported by a few users, if anyone has more information on it, please let us know, we didn't see this behavior on our side yet
- ⚠️ There are some issues around saving Unity objects with additive scenes (multi-scene) with reference
- ⚠️ We're working on to improve performance for working with larger projects especially on reference resolvers which is currently an issue
- ⚠️ The Rigidbody2D type requires the 'bodyType' property to be set at last so after generating a converter for it, make sure to re-arrange its WriteProperties method to match the
bodyType
order - ⚠️ Serializing Dictionary with object key type requires the object to implement TypeConverter in order to deserialize it
- ⚠️ There are no built-in converters included for Unity types, cause Unity is constantly updating and changing their API, so it also allows you to generate them whenever you want too and modify them to your desire, so if you run into any issues with serializing them, just generate a custom converter and modify it to fit your requirements
- ⚠️ It looks there is an issue with loading a runtime instantiated object which was previously referenced by Scene Reference Resolver after exiting and entering play mode again, if you have found any more information or you had the same issue, please let us know
1.0.0
Initial release