Exemplo n.º 1
0
    private void applyRotation(float progress)
    {
        Quaternion quaternion;
        float      valueAt;

        if (this.m_animation != null)
        {
            valueAt = AnimationCurveExtensions.GetValueAt(this.m_animation, progress);
        }
        else
        {
            valueAt = Easing.Apply(progress, this.m_rotation.easing);
        }
        if (this.m_rotation.lazy)
        {
            quaternion = Quaternion.Lerp(this.m_rotation.start, this.m_rotation.target, valueAt);
        }
        else
        {
            quaternion = Quaternion.Euler(this.m_rotation.start.eulerAngles + ((Vector3)(this.m_rotation.rotateBy * valueAt)));
        }
        Vector3 eulerAngles = quaternion.eulerAngles;

        if (this.m_rotation.local)
        {
            Vector3 vector2 = this.m_transform.localRotation.eulerAngles;
            this.m_transform.localRotation = Quaternion.Euler(new Vector3(!this.m_rotation.axis[0] ? vector2.x : eulerAngles.x, !this.m_rotation.axis[1] ? vector2.y : eulerAngles.y, !this.m_rotation.axis[2] ? vector2.z : eulerAngles.z));
        }
        else
        {
            Vector3 vector3 = this.m_transform.rotation.eulerAngles;
            this.m_transform.rotation = Quaternion.Euler(new Vector3(!this.m_rotation.axis[0] ? vector3.x : eulerAngles.x, !this.m_rotation.axis[1] ? vector3.y : eulerAngles.y, !this.m_rotation.axis[2] ? vector3.z : eulerAngles.z));
        }
    }
 protected void Update()
 {
     for (int i = this.m_activeResourceAnimations.Count - 1; i >= 0; i--)
     {
         ResourceAnimation item = this.m_activeResourceAnimations[i];
         bool   flag            = true;
         int    num2            = 0;
         double num3            = 0.0;
         for (int j = 0; j < item.NumSprites; j++)
         {
             if (!item.CleanupFlag[j])
             {
                 Vector3 vector2;
                 item.ElapsedTime[j] += Time.unscaledDeltaTime;
                 float   v           = Mathf.Clamp01(item.ElapsedTime[j] / item.Lifetime[j]);
                 float   t           = Easing.Apply(v, item.TranslationEasingFunction);
                 Vector2 screenPoint = Vector2.Lerp(item.SourceScreenPos[j], item.TargetScreenPos[j], t) + ((Vector2)(item.OffsetScreen[j] * Mathf.Sin(v * 3.141593f)));
                 RectTransformUtility.ScreenPointToWorldPointInRectangle(this.RootTm, screenPoint, this.m_canvasCam, out vector2);
                 item.ImageTm[j].position = vector2;
                 if (item.ElapsedTime[j] > item.Lifetime[j])
                 {
                     item.CleanupFlag[j] = true;
                     Binder.ResourceGainImagePool.returnObject(item.Image[j]);
                     item.Image[j] = null;
                     num2++;
                     num3 += item.ResourceChunks[item.ResourceChunkIndex++];
                 }
                 else
                 {
                     flag = false;
                 }
             }
         }
         if ((num2 > 0) && (item.EndCallback != null))
         {
             item.EndCallback(num2, item.NumSprites, num3, item.FromMenu);
         }
         if (flag)
         {
             this.m_activeResourceAnimations.Remove(item);
             this.m_resourceAnimationPool.returnObject(item);
         }
     }
 }
Exemplo n.º 3
0
    private void applyTranslationToAnchoredPos(float progress)
    {
        float   valueAt;
        Vector2 zero = Vector2.zero;

        if (this.m_animation != null)
        {
            valueAt = AnimationCurveExtensions.GetValueAt(this.m_animation, progress);
        }
        else
        {
            valueAt = Easing.Apply(progress, this.m_translationAnchoredPosition.easing);
        }
        if (this.m_translationAnchoredPosition.algorithm == TranslationAlgorithm.LINEAR)
        {
            zero = this.m_translationAnchoredPosition.start + ((Vector2)((this.m_translationAnchoredPosition.target - this.m_translationAnchoredPosition.start) * valueAt));
        }
        this.m_rectTransform.anchoredPosition = new Vector2(zero.x, zero.y);
    }
Exemplo n.º 4
0
    private void applyTranslation(float progress)
    {
        float   valueAt;
        Vector3 zero = Vector3.zero;

        if (this.m_animation != null)
        {
            valueAt = AnimationCurveExtensions.GetValueAt(this.m_animation, progress);
        }
        else
        {
            valueAt = Easing.Apply(progress, this.m_translation.easing);
        }
        if (this.m_translation.algorithm == TranslationAlgorithm.LINEAR)
        {
            zero = this.m_translation.start + ((Vector3)((this.m_translation.target - this.m_translation.start) * valueAt));
        }
        else if (this.m_translation.algorithm == TranslationAlgorithm.CATMULL_ROM)
        {
            zero = MathUtil.CatmullRom(valueAt, this.m_translation.start + this.m_translation.cp0, this.m_translation.start, this.m_translation.target, this.m_translation.target + this.m_translation.cp1);
        }
        else if (this.m_translation.algorithm == TranslationAlgorithm.QUADRATIC_BEZIER)
        {
            zero = MathUtil.QuadraticBezier(valueAt, this.m_translation.start, this.m_translation.cp0, this.m_translation.target);
        }
        else if (this.m_translation.algorithm == TranslationAlgorithm.CUBIC_BEZIER)
        {
            zero = MathUtil.CubicBezier(valueAt, this.m_translation.start, this.m_translation.cp0, this.m_translation.cp1, this.m_translation.target);
        }
        else if (this.m_translation.algorithm == TranslationAlgorithm.QUARTIC_BEZIER)
        {
            zero = MathUtil.QuarticBezier(valueAt, this.m_translation.start, this.m_translation.cp0, this.m_translation.cp1, this.m_translation.cp2, this.m_translation.target);
        }
        if (this.m_translation.local)
        {
            this.m_transform.localPosition = new Vector3(!this.m_translation.axis[0] ? this.m_transform.localPosition.x : zero.x, !this.m_translation.axis[1] ? this.m_transform.localPosition.y : zero.y, !this.m_translation.axis[2] ? this.m_transform.localPosition.z : zero.z);
        }
        else
        {
            this.m_transform.position = new Vector3(!this.m_translation.axis[0] ? this.m_transform.position.x : zero.x, !this.m_translation.axis[1] ? this.m_transform.position.y : zero.y, !this.m_translation.axis[2] ? this.m_transform.position.z : zero.z);
        }
    }
Exemplo n.º 5
0
        // ********************************************************************
        // Function:	LateUpdate()
        // Purpose:		Called once per frame, after other objects have
        //				updated.
        // ********************************************************************
        void LateUpdate()
        {
            if (!m_lerp && m_player.GetAxis(m_scrollAxis) < 0)
            {
                PreviousScreen();
            }
            if (!m_lerp && m_player.GetAxis(m_scrollAxis) > 0)
            {
                NextScreen();
            }

            if (m_lerp)
            {
                float xPos = m_lerpTarget.x;
                if (Time.time - m_lerpStartTime < m_lerpCurrentDuration)
                {
                    xPos = Easing.Apply(EasingFunction.QuadEaseOut,
                                        Time.time - m_lerpStartTime,
                                        m_lerpStartPos.x,
                                        m_lerpTarget.x - m_lerpStartPos.x,
                                        m_lerpCurrentDuration);
                    m_screensContainer.localPosition = new Vector3(xPos, m_screensContainer.localPosition.y, m_screensContainer.localPosition.z);
                }
                else
                {
                    m_lerp = false;
                    m_momentumEffectivelyStopped     = true;
                    m_screensContainer.localPosition = new Vector3(xPos, m_screensContainer.localPosition.y, m_screensContainer.localPosition.z);
                    m_contentsStartPoint             = m_screensContainer.localPosition; // to keep current drag in right place
                }
            }
            else if (!m_dragScrollControlScheme.Contains(InputManager.controlScheme) || (m_allowDragOff && !m_allowingThisDrag && m_currentlyDragging))
            {
                m_screensContainer.localPosition = m_contentsStartPoint;
            }
            m_centerItem = GetCenterItemIndex();
        }
Exemplo n.º 6
0
    private void applyScaling(float progress)
    {
        float valueAt;

        if (this.m_animation != null)
        {
            valueAt = AnimationCurveExtensions.GetValueAt(this.m_animation, progress);
        }
        else
        {
            valueAt = Easing.Apply(progress, this.m_scaling.easing);
        }
        Vector3 scale = this.m_scaling.start + ((Vector3)((this.m_scaling.target - this.m_scaling.start) * valueAt));

        if (this.m_scaling.local)
        {
            this.m_transform.localScale = new Vector3(!this.m_scaling.axis[0] ? this.m_transform.localScale.x : scale.x, !this.m_scaling.axis[1] ? this.m_transform.localScale.y : scale.y, !this.m_scaling.axis[2] ? this.m_transform.localScale.z : scale.z);
        }
        else
        {
            scale = new Vector3(!this.m_scaling.axis[0] ? this.m_transform.lossyScale.x : scale.x, !this.m_scaling.axis[1] ? this.m_transform.lossyScale.y : scale.y, !this.m_scaling.axis[2] ? this.m_transform.lossyScale.z : scale.z);
            TransformExtensions.SetWorldScale(this.m_transform, scale);
        }
    }
Exemplo n.º 7
0
 protected override bool onGetTargetAnimationState(out AbstractCharacterAnimator.State state, out float speed)
 {
     speed = 1f;
     state = AbstractCharacterAnimator.State.IDLE;
     if (base.CharacterView.Character.isAttacking())
     {
         return(false);
     }
     if (base.CharacterView.Character.isExecutingSkill(SkillType.Whirlwind) || base.CharacterView.Character.isExecutingSkill(SkillType.Dash))
     {
         return(false);
     }
     if ((base.CharacterView.Character.TargetCharacter == null) && (base.CharacterView.Character.ManualTargetPos == Vector3.zero))
     {
         state = AbstractCharacterAnimator.State.IDLE;
         return(true);
     }
     if (base.CharacterView.Character.ExternallyControlled)
     {
         if (base.CharacterView.Character.SpinningAround)
         {
             state = AbstractCharacterAnimator.State.RUN;
             speed = 2f;
             return(true);
         }
         state = AbstractCharacterAnimator.State.IDLE;
         return(true);
     }
     if (base.CharacterView.Character.Velocity != Vector3.zero)
     {
         speed = Mathf.Clamp(1.15f + ((base.CharacterView.Character.MovementSpeed(true) * 0.05f) * Easing.Apply(base.CharacterView.Character.RunAccelerationTimer.normalizedProgress(), ConfigGameplay.CHARACTER_FULLSPEED_ACCELERATION_EASING)), 0.1f, float.MaxValue);
         state = AbstractCharacterAnimator.State.RUN;
         return(true);
     }
     return(base.onGetTargetAnimationState(out state, out speed));
 }