1.9.0
This update is a rather big one but as always backwards compatible.
Most relevant changes:
- 47d08f2 Added interface to expose the access to the parent store from each sliced store
- 438f12d Splitting extension method collection for redux store and adding new methods for SubState class
- 352edc1 Further simplifications for substate ui logic
- b56a92a Error improvements if prefab is not found
- 816af7d More UI extensions for substates
- fda8f71 Added a substate AddStateChangeListener that allows to register a listener for the entire substate
- 848e847 Added some helper methods for the virtualized scroll rect
- 5936fa6 #108 Added a TextMesh PRO based Default Input v2 that is as close as possible to the original one
- 9e9d901 #108 Now for all InputField extension methods there are also the same ones for the TMP_InputField
- 15357d8 Now the new DefaultInputV2 has a nice second placeholder that shows while the primary placeholder is not visible
- 1238f17 Added a default text using TMP similar to the default input
- 8e42a05 Smaller improvements to screen navigation and ui loading
- a17a3cf Added a first draft of a generic UnityEcsPresenter that can take an pure c# ecs and generate game objects from it that are the views of the underlying ecs and keep up to date with the model
- a109b8d Added a few helper methods for Poses of the ecs elements
- 8c189c2 Interface improvements for the ecs unity presenters
- 932fb1c Added helper method to set sprite renderer width based on its texture aspect ratio
- be3bb77 Smaller optional features added to the Billboard component (lerping and only rotating around the y axis)
- 7439956 Enforcing that AddComponent needs to create a usable view (Unity component) for an input component data
- e76d272 allowing read access to the mapping to the entity and component views
- e7221cf Renaming Pose to Pose3d to avoid clash with Unity class with same name
- 2cc54a6 Disabling memory collection in StopWatch by default since its not accurate and consumes a lot of time
- 36d99b4 do the callback as the very last thing to avoid strange effects if in the callback another state change triggers the same listener again
- 5118ee5 Bugfixes for all variants of CalcEntryChangesToOldState, introduced a new CalcEntryChangesToOldState and deprecated the old one
- c63c35a Bugfixes in state compare logic for dictionaries
- 8e3730a Switching to new entry change calculation
- 306708b If there are both world and screen space root canvases prefer the screen space ones for the automatic main root canvas selection
- e970eb6 Added new default button that uses TMP
- 1393f35 Added Unity helper methods to allow copying of transform values from one GameObject to another via Ctrl + Shift + C and V
- cea654d Smaller fixes in UI benchmark example 7
- 32c675a Simplified main thread implementation since it had random bugs from time to time
- 66e566e Changed Pose3d to be a class so that Pose3d = default does make sense (now is null, before was not identity pose)
- 2aada29 Added another move method that is usable on immutable lists
- cdafe02 Reevaluated that 2 enumerables (eg lists) that have the same sequence with the same objects should be considered unchanged even if their pointers changed to allow using Linq etc in Redux listeners
- 1b2c8b5 Improving logging output when using Log.MethodDoneWith(..)
- c57546c Added method to switch an ientity to active/inactive
- b5a6aab Added a few more helper methods for Matrix4x4
- 3bd7f2c Added a helper method that converts a global pose to a local pose in the context of a target entity
- 762a1d4 Extracted an interface from the datastore that can be used more generically if the component using it only always needs to dispatch but never needs to access the actual model/state in the store
- 221cd6f Added a pure C# implementation of Quaternion.LookRotation
- f5c2d7a Improved the LookAt Billboard to by default not use the forward approach and instead a look at target approach so that when the user rotates the camera the object does not rotate, looks more natural in most cases
- 4c2dbf1 Made a more generic version of the DisposerMono to also use it for unsubscribing from the EventBus on destroy of Unity objects
- a80ff0b The Redux data store now remembers the last dispatched action so that listeners can typically perform the same actions as middlewares
- 1c72fe7 Added a new version of the key value store that uses google sheets as a datasource that uses the CSV approach
- dfa91d0 Moved relevant method from feature flag system up to interface
- 5685145 Bugfix to not store arbitrary args in app flow event jsons
- 56f13cb Deprecated the old LocalAnalytics and introduced a new one that uses an input directory instead
- 0a8e3f6 Switched everywhere to the new LocalAnalyticsV2 but kept previous test coverage of old version to ensure also backwards compatibility
- 9901149 Bugfix if Toast.Show is triggered during edit mode
- 5009554 Switched to new approach to access the google sheet via the csv url
- e106acd Improvements to the news manager UX example
- c5b02ec Added thread lock in new local analytics system to avoid creating a store for the same category twice
- f1f3191 Added another helper method for UI presenters that uses the main view stack to show the newly loaded UI prefab
- b4bc80e Bugfix for missing logic when root of chain is reached in ecsEntity.ToLocalPose(globalPose)
- 474a30d Added another helper method to check if an ecs entity has a component of a certain type
- 11687fa Added helper methods to calculate mean and median of lists of Vector3s
- b838b30 Added a DiffV2 method that cleans up the diff if some invalid diff findings are reported (seems to happen for float numbers especially)
- 84cd1e4 Finished improvements to the json diffing logic to produce less diffs if numbers in the diff are below a certain threshold
- beea2aa Introduced a UnityEventV2 that allows to ask it if it has any listeners set (including runtime listeners)
- b011d2b Added https://gist.github.com/yasirkula/06edc780beaa4d8705b3564d60886fa6 - Right click anywhere in Scene view to show a context menu displaying the UI objects under the cursor
- 0c589fe Added method to ask user for location permission including an explanation why the app needs to use GPS
- 7980ee1 Added helper function that makes it easier to discover how to convert a world position to a local position
- 571902b Added [ MAIN THREAD ] to default unity logger to signat which things happen on the Unity rendering thread
- 8311119 Introduced new version of GetSubStateForUnity on the IDataStore
- 4f784f3 Added assertions that the poses of loaded prefabs should normally be identity
- 5e73154 Added a helper function to change the time scaling of an animation curve
- 5f434ce Saving template io changes now with retry if it fails for any reason
- 8588860 Improved logging of IgnoreRootCanvas logic
- 51a6774 Analog to viewStack.SwitchToView there is now also a viewstack.ShowView method that takes in only the prefab name
- 32620cb Added a UI aspect ratio fitter that will make sure a transform keeps its original relative size to a reference transform (normally its parent)
- 788810f Added a DestroyGoWhenViewStackDestroyed. Can be used to monitor the viewstack in the children of this gameobject and destroy this gameobject when the viewstack is destroyed. This is useful e.g. for cleanups of a parent GO structure placed in 3d space that should disappear when the viewstack is destroyed.
- 754e643 Added backwards compatible fix to destroy the entire view stack and not only the last view so that the behavior is the same for the back button listener and for viewstack.SwitchBackToLastView
- 6041088 Improved logging output from potentially unsuccessful REST requests
- 054bad8 Removed all usage of AssertV2 (Switched to v3)
- 51317c5 Cleanups in static ApplicationV2.is.. methods
- df6cccf Made showing Toasts usable from background threads
- db4bb2a The Confirm/Cancel dialog now has simpler access to set a custom text for the cancel text
- b2e3527 Added error wrapper in one of the singleton assertions since it will always fail in Unity when used from a background thread
- 3d9e098 Helper methods for DateTimeOffset added
- 4221445 Introduced a new version of the LocalAnalytics system, that uses zip based key value stores instead of real folders to increase performance
- 58b2787 Improved dragging component to be better usable for world space UIs
- fa2fdb6 Improvements to adding views to the right view stack
- 59d013a SliderAnimated: Added a simple replacement for Slider that can be swapped in to animate a UI slider when a new Slider.value is set
- 2660218 Making elements involved in progression system all DisposableV2
- c7892df Changed that the injectors GetAll logic automatically filters out disposed objects (but logs an error if it finds any to warn about missing cleanup)
- adccd3a Changed cleanup logic of progression system and related actors so that the used resources underneeth are properly released
- 0ca48a4 Introduced restRequest.AddStreamViaForm method
- 699e20d Added helper method to find out if a GameObject is with any of its parts in the field of view of a camera
- 48022fe Added easing function animation curve templates from https://github.com/qwe321qwe321qwe321/Unity-EasingAnimationCurve
- 4def42d If ResourcesV2.LoadV2 is called this method loads a Texture2d and returns it as a Sprite now
- 2d58faf Made virtualized scroll rect more robust
- b2b97a0 In the list.AddOrCreate method assert by default now that the entry is not yet contained in the target list (check will only be done in debug mode)
- b3aeba9 Some ecs refactorings to be able to control when the template variants apply the template changes to themselves and when not
- f4b769f Added simple object pooling + an example scene in the Demo Scenes that demonstrates its API and performance difference to creating objects without pooling
- 8b2a3e5 Added a version of queue and stack that ensures the elements have to be unique. Use these classes in the tree traversal logic to detect and prevent loops
- 44a359d Made UniqueQueue and UniqueStack concurrent
- baf4426 Added a running mean math version for quaternions
- 7f463ac Updated Zio lib from 0.16.2 to 0.17.0
All changes can be seen here:
v1.8.12...v1.9.0