I’ve noticed a strange behaviour of mecanim’s “trigger” animator parameter.
Let’s say I have an animator controller with multiple layers and a trigger parameter defined in this controller. This trigger is used to perform transitions on different layers. Moreover, this transitions can and should be performed simultaneously. E.g. when setting “walk” trigger character should stop suffering animation (which is on the layer with index, 2) and start walking (layer with index 1). So the problem is: transition on higher layer (i.e. with higher index) can never be fired. If the transition on lower layer is performed too fast, the trigger will be reset before higher layer even start its transition. This can happen if Time.timeScale value is big (I reproduced with timeScale equals 3), or if you set some triggers right after another.
I’ve implemented some sort of triggers queue to handle this strange behaviour in case of multiple triggers set one after another. But cannot think up anything to fight with timeScale.
Actually, I think, that some kind of triggers queue (synchronized with multiple layers) should be implemented internaly in Mecanim, it would be a much more intuitive for usage.
So the first question is: Why Unity implemented such behavoiur of triggers?
The second one: Any suggestions how to cope with timeScale issue.