private void AnimateState(CharacterState state) { try { spriteAnimator.Sequences = state.GetSpriteAnimationSequences(); } catch (SpriteAnimationNotAvailableException) { return; } try { spriteAnimator.TransitionSequence = state.GetTransitionAnimationSequence(lastStateAnimation); } catch (SpriteAnimationNotAvailableException) { spriteAnimator.TransitionSequence = null; } spriteAnimator.Settings = state.SpriteAnimationSettings; spriteAnimator.OnAnimationSequenceComplete -= AnimationSequenceCompleteEventHandler; spriteAnimator.OnAnimationSequenceComplete += AnimationSequenceCompleteEventHandler; spriteAnimator.Animate(); }