public void SetLoopedState(BaseAnimState newState, string prefix = "", bool force = true)
        {
            if (state == newState)
            {
                return;
            }

            state = newState;
            PlayStateLoopedAnimation(BuildClipName(prefix, newState.ClipName));
        }
        // Only use variation suffix if nbVariation is defined
        public void PlayAnimOnce(BaseAnimState animState, string prefix, string speedParamName = "", float speedMult = 1f)
        {
            CancelCurrentPlayOnceAnim();

            if (speedParamName != "")
            {
                animator.SetFloat(speedParamName, speedMult);
            }

            currentPlayOnceAnim = Utils.PlayAnimatorClip(animator, BuildClipName(prefix, animState.ClipName, animState.NbVariations), () => {
                currentPlayOnceAnim = null;
                PlayStateLoopedAnimation(BuildClipName(prefix, state.ClipName));
            });
        }