Ejemplo n.º 1
0
                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);
                }
Ejemplo n.º 2
0
                public void Blend(string animation, float targetWeight = 1.0f, float fadeLength = 0.3f)
                {
                    GPUAnimationState state = GetAnimationState(animation);

                    if (state != null)
                    {
                        state.FadeWeightTo(targetWeight, fadeLength);
                    }
                }