Some Fixes & Abstract OnUpdate
As there havent been many descriptions on the updates in the 3.x.x cycle I just wanted to dump a few of them in here:
Abstract OnUpdate
One of the problems with supporting multiple platforms and frameworks is being able to depend on native code but without having a hard dependency on it, so as part of this there is now an IObservableScheduler
which exposes an OnUpdate
observable. This is an opt-in thing and you can still keep using your UniRx EveryUpdate
or your GameScheduler.OnUpdate
on monogame, but under the hood the OnUpdate
in this new object will implement the platform specific update loop notifier so plugins can be made cross platform while still depending upon the same update loop as everything else.
ReactToGroupExSystem
This was added to the EcsRx.Plugins.ReactiveSystems
plugin which acts the same as the normal ReactToGroupSystem
but also provides the ability to run code BeforeProcessing
and AfterProcessing
which can help with scenario where you want to setup something before processing everything and cleaning up afterwards.
Batched Systems Plugin Changes
There have been a few minor improvements to the batched systems so you can now override the behaviour of group change notifications, i.e rather than reacting to each one, throttle the changes for a period. There is also a fix for entities changing while rebuilding where it will break out of the rebuild and attempt to rebuild on the next cycle.
General Fixes
Thanks to @floatW0lf there have been a some great fixes added which caused some pretty rubbish problems around component notifications and group changing, these were in previous releases but still wanted to say thanks to the community for assisting with notifying us of issues and assisting with PRs.
Namespace Changes
Some of the previous releases in this cycle have moved some namespaces around, but hopefully this is all internal classes and wont effect many people.