public GPUAnimationState CrossFade(string animation, float fadeLength = 0.3f, PlayMode mode = PlayMode.StopSameLayer, WrapMode wrapMode = WrapMode.Default) { if (fadeLength > 0.0f) { ClearQueuedAnimation(); GPUAnimationState animState = GetAnimationState(animation); if (animState != null) { _crossFadedAnimation = new GPUAnimationState(this, animState.GetAnimation()) { Enabled = true, Weight = 0.0f, Speed = animState.Speed, WrapMode = wrapMode == WrapMode.Default ? animState.WrapMode : wrapMode }; _crossFadedAnimation.FadeWeightTo(1.0f, fadeLength); } else { _crossFadedAnimation = null; } } else { Play(animation, mode, wrapMode); } return(_crossFadedAnimation); }
public void Blend(string animation, float targetWeight = 1.0f, float fadeLength = 0.3f) { GPUAnimationState state = GetAnimationState(animation); if (state != null) { state.FadeWeightTo(targetWeight, fadeLength); } }