Volt 1.2
Small changes with QOL changes, and we tried our best to make the code a little simpler and efficient.
This update have some breaking changes. Please check them out.
Added
Shared Animation Manager & Macros Have Been Overhauled
Now UVoltSubsystem
provides SharedAnimationManager
, that any slate can access and use to animate themselves without implementing additional animation manager.
This will help you to reduce the size of code and quickly start to animate slates.
Now you can use VOLT_....()
macros or inline functions without specifying any explicit animation manager, then it will use SharedAnimationManager
instead.
You can still use the old signature to specify specific animation manager to use.
If you use VOLT_STOP_ALL_ANIM()
often, we recommend you to use VOLT_STOP_ANIM()
instead in SharedAnimationManager because what VOLT_STOP_ALL_ANIM()
does is iterating each tracks to check the condition, which can be bad to the performance since SharedAnimationManager easily takes 200+ tracks at the same time.
If you really have to use VOLT_STOP_ALL_ANIM()
, then we recommend you to have independent animation manager to animate that slate.
Changed
Now volt animation manager's tracks are handled with TSet and hash table implementation. Checking whether it contains a specific track is much more efficient now.
VOLT_GET_ANIMATION
macro now doesn't take animation classname anymore; now you can VOLT_GET_ANIMATION()
instead of VOLT_GET_ANIMATION(UVoltAnimation)
.
Breaking Changes
All Pre-defined UVoltAnimations
Have Been Removed
We've thought it's not best to keep those code in the files, because it increases the code size but completely obsolete at this point.
If you need them, please bring them from the previous version manually.
SVoltAnimatedBorder
Has Been Removed
Simply, it doesn't have any purpose and obsolete at the moment.
UVoltAnimationManager::FlushTrackAt(...)
Has Been Removed
We changed the track related properties to TSet
from TArray
for performance aspects, which doesn't support index-based accessing. Please change your code to use FlushTrack()
instead.