Released 2020-03-27
Features
- Mixer Transitions now have a
Speed
field for the whole mixer as well as the individual animations. - Mixers now show dropdown menus as the headdings of each column instead of using context menus so that the available functions are much more obvious.
Improvements
- Added
AnimancerPlayable.StateDictionary.ReferenceKeysOnly
so that the dictionary comparer can be set to useReferenceEquals
for better efficiency if you aren't using value types. - The Inspector now locks event times for looping animations into the 0-1 normalized time range since values outside that range are not supported.
- Added
LinearMixerState.SortByThresholds
. LinearMixerTransition
now displays an error in the Inspector if the thresholds are out of order and you can click it to sort them.EventSequenceDrawer
now overridesCanCacheInspectorGUI
to returnfalse
so that it can draw theTimeRuler
properly when no custom editor is present.- Removed
DummyObjectEditor
since it is now unnecessary.
- Removed
MixerState.AppendDetails
now includes the child synchronization flags.MixerState<TParameter>.AppendDetails
now includes the thresholds.- Improved various assertions:
AnimancerNode.Weight
does not allow Negative, Infinity, or NaN.AnimancerNode.Speed
andAnimancerState.Time
do not allow Infinity, or NaN.- Added similar assertions to
MixerState.ApplySynchroniseChildren
. - Added various assertions to verify the correct initialization of the Playables.
Fixes
- Fixed Animation Events to work properly on Generic Rigs.
- Changed the default
AnimancerNode.Index
toint.MinValue
becausePlayableGraph.Connect
with an index of-1
causes it to allocate and connect to a new port instead of throwing an exception. #33 - Fixed
MixerState.Speed
to work properly when using synchronization. #34 LinearMixerState
now defers its call toAssertThresholdsSorted
so that you can actually set thresholds individually without immediately triggering the assertion.- Reordering a Mixer Transition in the Inspector will now properly reorder their sync flags as well.
- Fixed
MixerState.ApplySynchroniseChildren
to properly handle child states with 0 length (generally nested mixers that have all their children at 0 weight).