v0.0.3 - 2025-XX-XX
GameManager.TryDeserializeValue,GameManager.TrySerializeValue,GameManager.TryDeserializeStreamandGameManager.TrySerializeStreammethods, these can be used to serialize and deserialize data using internalGameManagerserialization utilities. You can customize this viaISerializerinterface (seeCreateSerializermethod onGameManager).GameManager.DeleteDataAsyncwhich can be used to delete data asynchronously.GameManager.ReadResourceAsyncandGameManager.ReadResourceStreamAsyncmethods which can be used to retrieve resources from StreamingAssets directory.GameManager.ReadDataStreamandGameManager.ReadDataStreamAsyncmethods which can be used to read aStreamfrom a file on disk.GameManager.SaveDataStreamandGameManager.SaveDataStreamAsyncmethods which can be used to persist aStreamto disk.GameManager.IsDebuggingEnabledflag which can be used to turn on if debug mode is on for the game manager.GameManager.IsApplicationQuittingflag which can be used to check if app is quitting (works in Editor as well).DebuggingChangedMessagewhich can be used to check ifGameManager.IsDebuggingEnabledchanges.ApplicationQuittingMessagewhich can be used to detect if application is quitting (works in Editor as well).asyncmessage support viaGameManager.PublishAsyncand newGameManager.AddListenerandGameManager.RemoveListeneroverloads.- Logging API which formats log messages in a consistent format which can be accessed via
GameManager.LogWith(). OnStartedcallback toGameManagerwhich can be used to hook into theStart()method.- Caching to
DefaultEntityManager.
- Renamed some
IResourceLoadermethods to useGet*prefix instead ofLoad*so its more consistent with other methods. Methods which read from StreamingAssets directory will useRead*prefix. - Renamed
IGameStoragetoIStorage. - Cancellation tokens can now be used in all async methods.
- Renamed
IStoragemethods to useRead*andSave*prefixes to emphasise that these methods interact with data on dist. - Project directory name will be used for editor storage keys, this should prevent editor key conflict issues with Parallel sync and similar plugins.
- UniTask is now optional and is no longer pre-packaged. To enable it, define
UNITASK_INSTALLEDscripting define symbol. - Unity Lifecycle methods to use
protectedinstead ofprivateinGameManager.
GameStorage.GetValueAsync(nowGameStorage.ReadValueAsync) not switching back to main thread when no value is found.- Message bus not handling abstract and interface listeners.
- Message bus iteration breaking when listener would remove itself during
Raisecall. - Missing
usingwhen making web requests.
v0.0.2 - 2023-10-06
GameManagerSettingsProfilewhich can be used to load a specificGameManagerconfiguration viaGameManagerSettings.- Better logging with a custom log message format.
- Property Drawer for
GameManagerSettingsProfile, this way it's easier to manage lists of profiles.
GameManagerSettingswill now be automatically created atAssets/Settings/GameManagerSettings.assetand added to preloaded asset list (you can move it later). This is needed to support automatic instantiation as previously usingResources.FindObjectsOfTypeAllwas not working in builds.GameManagerSettingsclass visibility is nowprivate.GameManagerstatic methods will now throw anExceptionif it's not initialized instead of just logging an error and pausing.- Automatic
GameManagerinstantiation now only supports loading before and after scene load. - Menu item order to use
150instead of-1000. This wayCHARKwon't dominate existing entries.
GameManager.GetGameManagerSettingsmethod as a new profile system will be used instead. Overriding this doesn't make sense anymore.
v0.0.1 - 2023-10-04
Initial preview version.
- Core Game Management logic.
- System adding, removal and retrieval.
- Messaging solution.
- Storage solution with built-in json support.
- Documentation.