public static void FadeInActiveFades(float dur, EaseStyle ease = EaseStyle.LinearEaseIn)
 {
     foreach(var f in _fades)
     {
         f.FadeIn(dur, ease);
     }
 }
 public static void FadeInActiveFades(float dur, EaseStyle ease = EaseStyle.LinearEaseIn)
 {
     foreach(var f in _fades)
     {
         f.FadeIn(dur, ease);
     }
 }
Ejemplo n.º 3
0
    public static IEnumerator To(float start, float end, float dur, EaseStyle ease, Action <float> OnUpdate, Action OnComplete = null)
    {
        float t = 0f;

        while (t < dur)
        {
            float sc = EasedLerp(start, end, t / dur, ease);
            OnUpdate?.Invoke(sc);
            yield return(null);

            t += Time.deltaTime;
        }
        OnUpdate.Invoke(end);
        OnComplete?.Invoke();
    }
        public void FadeIn(float dur, EaseStyle ease = EaseStyle.LinearEaseIn, bool destroyOnComplete = true)
        {
            if (!_active) throw new System.InvalidOperationException("Cannot FadeIn a CameraFade that isnot currently faded out.");

            if (_tween != null)
            {
                _tween.Stop();
                _tween = null;
            }
            _totalDuration = dur;
            _direction = -1;

            _tween = SPTween.Tween(this.OnTweenStep, dur)
                            .Use(_timeSupplier ?? SPTime.Real)
                            .OnFinish(this.OnFadeInComplete)
                            .Play(false);
        }
        public void FadeOut(float dur, EaseStyle ease = EaseStyle.LinearEaseOut)
        {
            _active = true;
            _fades.Add(this);

            if (_tween != null)
            {
                _tween.Stop();
                _tween = null;
            }
            _totalDuration = dur;
            _direction = 1;
            if(dur <= 0f)
            {
                this.OnFadeOutComplete(null, null);
            }
            else
            {
                _tween = SPTween.Tween(this.OnTweenStep, dur)
                                .Use(_timeSupplier ?? SPTime.Real)
                                .OnFinish(this.OnFadeOutComplete)
                                .Play(false);
            }
        }
        public void FadeOut(float dur, EaseStyle ease = EaseStyle.LinearEaseOut)
        {
            _active = true;
            _fades.Add(this);

            if (_tween != null)
            {
                _tween.Stop();
                _tween = null;
            }
            _totalDuration = dur;
            _direction = 1;
            if(dur <= 0f)
            {
                this.OnFadeOutComplete(null, null);
            }
            else
            {
                _tween = SPTween.Tween(this.OnTweenStep, dur)
                                .Use(_timeSupplier ?? SPTime.Real)
                                .OnFinish(this.OnFadeOutComplete)
                                .Play();
            }
        }
Ejemplo n.º 7
0
    IEnumerator Shaking(Transform _transform, Vector3 magnetude, float duration, float motion, bool isSexy = false, bool isIgnoreTimeScale = false, EaseStyle easeStyle = EaseStyle.QuadEaseOut)
    {
        float   lifeTime    = duration;
        float   age         = lifeTime;
        Vector3 offset      = Vector3.zero;
        Vector2 seedX       = Vector2Extension.RandomInSqaure * 10f;
        Vector2 seedY       = Vector2Extension.RandomInSqaure * 10f;
        Vector2 seedZ       = Vector2Extension.RandomInSqaure * 10f;
        Vector2 motionVectX = Vector2Extension.RandomOnCircle * motion;
        Vector2 motionVectY = Vector2Extension.RandomOnCircle * motion;
        Vector2 motionVectZ = Vector2Extension.RandomOnCircle * motion;

        while (_transform != null & age > 0)
        {
            _transform.position -= offset;

            float deltaTime = (isIgnoreTimeScale) ? Time.unscaledDeltaTime : Time.deltaTime;
            age -= deltaTime;
            float power = (age / lifeTime);

            power *= EaseUtility.EasedLerp(0f, 1f, power, easeStyle);

            seedX += ((isSexy) ? motionVectX * power : motionVectX) * deltaTime;
            seedY += ((isSexy) ? motionVectY * power : motionVectY) * deltaTime;
            seedZ += ((isSexy) ? motionVectZ * power : motionVectZ) * deltaTime;

            offset = new Vector3(
                Mathf.PerlinNoise(seedX.x, seedX.y),
                Mathf.PerlinNoise(seedY.x, seedY.y),
                Mathf.PerlinNoise(seedZ.x, seedZ.y));

            //***** Center the noise signal *****
            offset -= Vector3.one * 0.5f;
            offset *= 2f;
            offset *= power;
            offset  = new Vector3(
                offset.x * magnetude.x,
                offset.y * magnetude.y,
                offset.z * magnetude.z);
            //***** Center the noise signal *****

            _transform.position += offset;
            yield return(null);
        }
        if (_transform != null)
        {
            _transform.position -= offset;
        }
        yield break;
    }
Ejemplo n.º 8
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="transform"></param>
 /// <param name="magnetude"></param>
 /// <param name="duration"></param>
 /// <param name="motion"> Perlin 在 Sameple 時遊走的速度。白話文:震度速率。 </param>
 /// <param name="isSexy"> Motion 會不會隨著時間遞減/削弱!白話文:會不會漸緩。 </param>
 /// <param name="isIgnoreTimeScale"></param>
 /// <param name="easeStyle"></param>
 /// <returns></returns>
 public static Coroutine ShakePosition(Transform transform, Vector3 magnetude, float duration, float motion, bool isSexy = false, bool isIgnoreTimeScale = false, EaseStyle easeStyle = EaseStyle.QuadEaseOut)
 {
     return(Instance.StartCoroutine(Instance.Shaking(transform, magnetude, duration, motion, isSexy, isIgnoreTimeScale)));
 }
Ejemplo n.º 9
0
 /// <summary>
 /// 回傳一個可被 yield return 的協程,做一個由 0 至 1 的 tween 並每個 update 去執行 action,float 則是 progress
 /// </summary>
 /// <param name="duration"></param>
 /// <param name="progressAction"></param>
 /// <param name="easeType"></param>
 /// <returns></returns>
 public static YieldInstruction ProgressionTask(float duration, System.Action <float> progressAction, EaseStyle easeType = EaseStyle.Linear)
 {
     return(CoroutineManager.instance.StartCoroutine(EaseUtility.To(0, 1, duration, easeType, progressAction, null)));
 }
Ejemplo n.º 10
0
        IEnumerator ChangeTextAnimation(string text, Vector3 startScale, float animationDuration, EaseStyle animationEaseType)
        {
            SetTextInstant(text);
            textComponent.color = new Color(textComponent.color.r, textComponent.color.g, textComponent.color.b, 0);
            if (scaleTarget == ScaleTarget.Self)
            {
                textComponent.transform.localScale = startScale;
            }
            else
            {
                textComponent.transform.parent.localScale = startScale;
            }

            float progress = 0;

            while (progress < animationDuration)
            {
                progress += Time.deltaTime;
                float param = progress / animationDuration;
                SetTextLerpView(param);
                yield return(null);
            }
            SetTextLerpView(1);
        }
Ejemplo n.º 11
0
 public static Vector2 EasedLerp(Vector2 from, Vector2 to, float t, EaseStyle easeStyle)
 {
     return(new Vector2(EasedLerp(from.x, to.x, t, easeStyle), EasedLerp(from.y, to.y, t, easeStyle)));
 }
Ejemplo n.º 12
0
 public static Vector3 EasedLerp(Vector3 from, Vector3 to, float t, EaseStyle easeStyle)
 {
     return(new Vector3(EasedLerp(from.x, to.x, t, easeStyle), EasedLerp(from.y, to.y, t, easeStyle), EasedLerp(from.z, to.z, t, easeStyle)));
 }
Ejemplo n.º 13
0
    public static float EasedLerp(float from, float to, float t, EaseStyle easeStyle)
    {
        var f = Get(easeStyle);

        return(f(t, from, to - from, 1f));
    }
Ejemplo n.º 14
0
        public void FadeIn(float dur, EaseStyle ease = EaseStyle.LinearEaseIn, bool destroyOnComplete = true)
        {
            if (!_active) throw new System.InvalidOperationException("Cannot FadeIn a CameraFade that isnot currently faded out.");

            if (_tween != null)
            {
                _tween.Stop();
                _tween = null;
            }
            _totalDuration = dur;
            _direction = -1;

            _tween = SPTween.Tween(this.OnTweenStep, dur)
                            .Use(_timeSupplier ?? SPTime.Real)
                            .OnFinish(this.OnFadeInComplete)
                            .Play();
        }
Ejemplo n.º 15
0
 public Coroutine PlayAnimation(Vector3 startScale, float animationDuration, EaseStyle animationEaseType, bool isPlayParticle = true)
 {
     return(SetTextAnimation(textComponent.text, startScale, animationDuration, animationEaseType, isPlayParticle));
 }
Ejemplo n.º 16
0
        public Coroutine SetTextAnimation(string text, Vector3 startScale, float animationDuration, EaseStyle animationEaseType, bool isPlayParticle)
        {
            if (currentTextCoroutine != null)
            {
                StopCoroutine(currentTextCoroutine);
            }

            if (_particleToPlay != null)
            {
                _particleToPlay.Play();
            }
            // if (_sfxToPlay != null)
            //     AudioManager.PlaySFX(_sfxToPlay);

            currentTextCoroutine = CoroutineManager.Instance.StartCoroutine(ChangeTextAnimation(text, startScale, animationDuration, animationEaseType));
            return(currentTextCoroutine);
        }
Ejemplo n.º 17
0
    static EaseDelegate Get(EaseStyle style)
    {
        switch (style)
        {
        case EaseStyle.Linear: return(LinearEaseNone);

        case EaseStyle.LinearEaseIn: return(LinearEaseIn);

        case EaseStyle.LinearEaseOut: return(LinearEaseOut);

        case EaseStyle.LinearEaseInOut: return(LinearEaseInOut);

        case EaseStyle.BackEaseIn: return(BackEaseIn);

        case EaseStyle.BackEaseOut: return(BackEaseOut);

        case EaseStyle.BackEaseInOut: return(BackEaseInOut);

        case EaseStyle.BounceEaseIn: return(BounceEaseIn);

        case EaseStyle.BounceEaseOut: return(BounceEaseOut);

        case EaseStyle.BounceEaseInOut: return(BounceEaseInOut);

        case EaseStyle.CircleEaseIn: return(CircleEaseIn);

        case EaseStyle.CircleEaseOut: return(CircleEaseOut);

        case EaseStyle.CircleEaseInOut: return(CircleEaseInOut);

        case EaseStyle.CubicEaseIn: return(CubicEaseIn);

        case EaseStyle.CubicEaseOut: return(CubicEaseOut);

        case EaseStyle.CubicEaseInOut: return(CubicEaseInOut);

        case EaseStyle.ElasticEaseIn: return(ElasticEaseIn);

        case EaseStyle.ElasticEaseOut: return(ElasticEaseOut);

        case EaseStyle.ElasticEaseInOut: return(ElasticEaseInOut);

        case EaseStyle.ExpoEaseIn: return(ExpoEaseIn);

        case EaseStyle.ExpoEaseOut: return(ExpoEaseOut);

        case EaseStyle.ExpoEaseInOut: return(ExpoEaseInOut);

        case EaseStyle.QuadEaseIn: return(QuadEaseIn);

        case EaseStyle.QuadEaseOut: return(QuadEaseOut);

        case EaseStyle.QuadEaseInOut: return(QuadEaseInOut);

        case EaseStyle.QuartEaseIn: return(QuartEaseIn);

        case EaseStyle.QuartEaseOut: return(QuartEaseOut);

        case EaseStyle.QuartEaseInOut: return(QuartEaseInOut);

        case EaseStyle.QuintEaseIn: return(QuintEaseIn);

        case EaseStyle.QuintEaseOut: return(QuintEaseOut);

        case EaseStyle.QuintEaseInOut: return(QuintEaseInOut);

        case EaseStyle.SineEaseIn: return(SineEaseIn);

        case EaseStyle.SineEaseOut: return(SineEaseOut);

        case EaseStyle.SineEaseInOut: return(SineEaseInOut);

        case EaseStyle.StrongEaseIn: return(StrongEaseIn);

        case EaseStyle.StrongEaseOut: return(StrongEaseOut);

        case EaseStyle.StrongEaseInOut: return(StrongEaseInOut);
        }

        return(null);
    }
        public static Ease GetEase(EaseStyle style)
        {
            switch (style)
            {
            case EaseStyle.Linear: return(EaseMethods.LinearEaseNone);

            case EaseStyle.LinearEaseIn: return(EaseMethods.LinearEaseIn);

            case EaseStyle.LinearEaseOut: return(EaseMethods.LinearEaseOut);

            case EaseStyle.LinearEaseInOut: return(EaseMethods.LinearEaseInOut);

            case EaseStyle.BackEaseIn: return(EaseMethods.BackEaseIn);

            case EaseStyle.BackEaseOut: return(EaseMethods.BackEaseOut);

            case EaseStyle.BackEaseInOut: return(EaseMethods.BackEaseInOut);

            case EaseStyle.BounceEaseIn: return(EaseMethods.BounceEaseIn);

            case EaseStyle.BounceEaseOut: return(EaseMethods.BounceEaseOut);

            case EaseStyle.BounceEaseInOut: return(EaseMethods.BounceEaseInOut);

            case EaseStyle.CircleEaseIn: return(EaseMethods.CircleEaseIn);

            case EaseStyle.CircleEaseOut: return(EaseMethods.CircleEaseOut);

            case EaseStyle.CircleEaseInOut: return(EaseMethods.CircleEaseInOut);

            case EaseStyle.CubicEaseIn: return(EaseMethods.CubicEaseIn);

            case EaseStyle.CubicEaseOut: return(EaseMethods.CubicEaseOut);

            case EaseStyle.CubicEaseInOut: return(EaseMethods.CubicEaseInOut);

            case EaseStyle.ElasticEaseIn: return(EaseMethods.ElasticEaseIn);

            case EaseStyle.ElasticEaseOut: return(EaseMethods.ElasticEaseOut);

            case EaseStyle.ElasticEaseInOut: return(EaseMethods.ElasticEaseInOut);

            case EaseStyle.ExpoEaseIn: return(EaseMethods.ExpoEaseIn);

            case EaseStyle.ExpoEaseOut: return(EaseMethods.ExpoEaseOut);

            case EaseStyle.ExpoEaseInOut: return(EaseMethods.ExpoEaseInOut);

            case EaseStyle.QuadEaseIn: return(EaseMethods.QuadEaseIn);

            case EaseStyle.QuadEaseOut: return(EaseMethods.QuadEaseOut);

            case EaseStyle.QuadEaseInOut: return(EaseMethods.QuadEaseInOut);

            case EaseStyle.QuartEaseIn: return(EaseMethods.QuartEaseIn);

            case EaseStyle.QuartEaseOut: return(EaseMethods.QuartEaseOut);

            case EaseStyle.QuartEaseInOut: return(EaseMethods.QuartEaseInOut);

            case EaseStyle.QuintEaseIn: return(EaseMethods.QuintEaseIn);

            case EaseStyle.QuintEaseOut: return(EaseMethods.QuintEaseOut);

            case EaseStyle.QuintEaseInOut: return(EaseMethods.QuintEaseInOut);

            case EaseStyle.SineEaseIn: return(EaseMethods.SineEaseIn);

            case EaseStyle.SineEaseOut: return(EaseMethods.SineEaseOut);

            case EaseStyle.SineEaseInOut: return(EaseMethods.SineEaseInOut);

            case EaseStyle.StrongEaseIn: return(EaseMethods.StrongEaseIn);

            case EaseStyle.StrongEaseOut: return(EaseMethods.StrongEaseOut);

            case EaseStyle.StrongEaseInOut: return(EaseMethods.StrongEaseInOut);
            }

            return(null);
        }
Ejemplo n.º 19
0
        public static Ease GetEase(EaseStyle style)
        {
            switch (style)
            {
                case EaseStyle.Linear: return EaseMethods.LinearEaseNone;
                case EaseStyle.LinearEaseIn: return EaseMethods.LinearEaseIn;
                case EaseStyle.LinearEaseOut: return EaseMethods.LinearEaseOut;
                case EaseStyle.LinearEaseInOut: return EaseMethods.LinearEaseInOut;

                case EaseStyle.BackEaseIn: return EaseMethods.BackEaseIn;
                case EaseStyle.BackEaseOut: return EaseMethods.BackEaseOut;
                case EaseStyle.BackEaseInOut: return EaseMethods.BackEaseInOut;

                case EaseStyle.BounceEaseIn: return EaseMethods.BounceEaseIn;
                case EaseStyle.BounceEaseOut: return EaseMethods.BounceEaseOut;
                case EaseStyle.BounceEaseInOut: return EaseMethods.BounceEaseInOut;

                case EaseStyle.CircleEaseIn: return EaseMethods.CircleEaseIn;
                case EaseStyle.CircleEaseOut: return EaseMethods.CircleEaseOut;
                case EaseStyle.CircleEaseInOut: return EaseMethods.CircleEaseInOut;

                case EaseStyle.CubicEaseIn: return EaseMethods.CubicEaseIn;
                case EaseStyle.CubicEaseOut: return EaseMethods.CubicEaseOut;
                case EaseStyle.CubicEaseInOut: return EaseMethods.CubicEaseInOut;

                case EaseStyle.ElasticEaseIn: return EaseMethods.ElasticEaseIn;
                case EaseStyle.ElasticEaseOut: return EaseMethods.ElasticEaseOut;
                case EaseStyle.ElasticEaseInOut: return EaseMethods.ElasticEaseInOut;

                case EaseStyle.ExpoEaseIn: return EaseMethods.ExpoEaseIn;
                case EaseStyle.ExpoEaseOut: return EaseMethods.ExpoEaseOut;
                case EaseStyle.ExpoEaseInOut: return EaseMethods.ExpoEaseInOut;

                case EaseStyle.QuadEaseIn: return EaseMethods.QuadEaseIn;
                case EaseStyle.QuadEaseOut: return EaseMethods.QuadEaseOut;
                case EaseStyle.QuadEaseInOut: return EaseMethods.QuadEaseInOut;

                case EaseStyle.QuartEaseIn: return EaseMethods.QuartEaseIn;
                case EaseStyle.QuartEaseOut: return EaseMethods.QuartEaseOut;
                case EaseStyle.QuartEaseInOut: return EaseMethods.QuartEaseInOut;

                case EaseStyle.QuintEaseIn: return EaseMethods.QuintEaseIn;
                case EaseStyle.QuintEaseOut: return EaseMethods.QuintEaseOut;
                case EaseStyle.QuintEaseInOut: return EaseMethods.QuintEaseInOut;

                case EaseStyle.SineEaseIn: return EaseMethods.SineEaseIn;
                case EaseStyle.SineEaseOut: return EaseMethods.SineEaseOut;
                case EaseStyle.SineEaseInOut: return EaseMethods.SineEaseInOut;

                case EaseStyle.StrongEaseIn: return EaseMethods.StrongEaseIn;
                case EaseStyle.StrongEaseOut: return EaseMethods.StrongEaseOut;
                case EaseStyle.StrongEaseInOut: return EaseMethods.StrongEaseInOut;
            }

            return null;
        }