Example #1
0
        public ITween <T> Create <T>(Easing.Ease <T> e, T a, T b, float d, float dlay = 0f, float ts = 1f)
        {
            Tween <T> newTween = new Tween <T>(e, a, b, d, dlay, ts);

            m_tweens.Add(newTween);
            return(newTween);
        }
Example #2
0
        //--------------------------------------------------------------------------------------------------------------

        public static Vector3 EaseTypeVector(Easing.Ease _ease, Vector3 _start, Vector3 _end, float _process)
        {
            return(new Vector3
                   (
                       EaseingFloat
                       (
                           _ease,
                           _start.x,
                           _end.x,
                           _process
                       ),
                       EaseingFloat
                       (
                           _ease,
                           _start.y,
                           _end.y,
                           _process
                       ),
                       EaseingFloat
                       (
                           _ease,
                           _start.z,
                           _end.z,
                           _process
                       )
                   ));
        }
Example #3
0
        public ITweenCurve Create(AnimationCurve c, Easing.Ease <float> e, float d, float dlay = 0f, float ts = 1f)
        {
            TweenCurve newTween = new TweenCurve(c, e, d, dlay, ts);

            m_tweens.Add(newTween);
            return(newTween);
        }
Example #4
0
 private static Color LerpColorWithEase(Color colFrom, Color colTo, float t, Easing.Ease easing)
 {
     return(new(
                Mathf.Lerp(colFrom.r, colTo.r, Easing.EaseResult(easing, 0f, 1f, t)),
                Mathf.Lerp(colFrom.g, colTo.g, Easing.EaseResult(easing, 0f, 1f, t)),
                Mathf.Lerp(colFrom.b, colTo.b, Easing.EaseResult(easing, 0f, 1f, t)),
                Mathf.Lerp(colFrom.a, colTo.a, Easing.EaseResult(easing, 0f, 1f, t))
                ));
 }
Example #5
0
        /// <summary>
        /// Init the base properties of the
        /// </summary>
        /// <param name="e">Easing equation</param>
        /// <param name="a">Starting value</param>
        /// <param name="b">Final value</param>
        /// <param name="d">Duration</param>
        /// <param name="dlay">Delay</param>
        /// <param name="ts">Timescale</param>
        public void Init(Easing.Ease <T> e, T a, T b, float d, float dlay = 0f, float ts = 1f)
        {
            m_ease     = e;
            m_delay    = dlay;
            m_duration = d;

            m_timescale = ts;
            Init(a, b);
        }
Example #6
0
 private static Task AddTask(float time, Easing.Ease easing)
 {
     return(new()
     {
         normalizedProcess = 0f,
         time = 0f,
         goalTime = time,
         easing = easing,
         Data = new Hashtable()
     });
 }
Example #7
0
        //--------------------------------------------------------------------------------------------------------------

        public static float EaseingFloat(Easing.Ease _ease, float _start, float _end, float _progress)
        {
            return(Easing
                   .GetEasingFunction(_ease)
                   .Invoke
                   (
                       _start,
                       _end,
                       _progress
                   ));
        }
Example #8
0
 Task AddTask(float time, Easing.Ease easing)
 {
     return(new Task()
     {
         t = 0f,
         time = 0f,
         goalTime = time,
         easing = easing,
         data = new Hashtable()
     });
 }
Example #9
0
        public static Task RotateTo(Transform obj, Quaternion rotTo, float time, Easing.Ease easing, System.Action callback = null)
        {
            Task task = a.AddTask(time, easing);

            task.type = TaskType.rotate;
            task.data["transform"] = obj;
            task.data["from"]      = obj.rotation;
            task.data["to"]        = rotTo;
            task.callback          = callback;
            a.tasks.Add(task);
            return(task);
        }
Example #10
0
        public static Task ImageTintColor(Image image, Color colorTo, float time, Easing.Ease easing, Action callback = null)
        {
            var task = AddTask(time, easing);

            task.type          = TaskType.ImageTintColor;
            task.Data["image"] = image;
            task.Data["from"]  = image.tintColor;
            task.Data["to"]    = colorTo;
            task.Callback      = callback;
            Instance.tasks.Add(task);
            return(task);
        }
Example #11
0
        public static Task MaterialColor(Material mat, Color colorTo, float time, Easing.Ease easing, Action callback = null)
        {
            var task = AddTask(time, easing);

            task.type             = TaskType.MaterialColor;
            task.Data["material"] = mat;
            task.Data["from"]     = mat.color;
            task.Data["to"]       = colorTo;
            task.Callback         = callback;
            Instance.tasks.Add(task);
            return(task);
        }
Example #12
0
        public static Task ScaleLocal(Transform obj, Vector3 rotTo, float time, Easing.Ease easing, Action callback = null)
        {
            var task = AddTask(time, easing);

            task.type = TaskType.ScaleLocal;
            task.Data["transform"] = obj;
            task.Data["from"]      = obj.localScale;
            task.Data["to"]        = rotTo;
            task.Callback          = callback;
            Instance.tasks.Add(task);
            return(task);
        }
Example #13
0
        public static Task MoveTo(Transform obj, Vector3 posTo, float time, Easing.Ease easing, Action callback = null)
        {
            var task = AddTask(time, easing);

            task.type = TaskType.Move;
            task.Data["transform"] = obj;
            task.Data["from"]      = obj.position;
            task.Data["to"]        = posTo;
            task.Callback          = callback;
            Instance.tasks.Add(task);
            return(task);
        }
Example #14
0
        public static Task ScaleTo(Transform obj, Vector3 scaleTo, float time, Easing.Ease easing, System.Action callback = null)
        {
            Task task = a.AddTask(time, easing);

            task.type = TaskType.scale;
            task.data["transform"] = obj;
            task.data["from"]      = obj.localScale;
            task.data["to"]        = scaleTo;
            task.callback          = callback;
            a.tasks.Add(task);
            return(task);
        }
Example #15
0
        public static Task MoveToLocal(Transform obj, Vector3 posTo, float time, Easing.Ease easing, System.Action callback = null)
        {
            Task task = a.AddTask(time, easing);

            task.type = TaskType.moveLocal;
            task.data["transform"] = obj;
            task.data["from"]      = obj.localPosition;
            task.data["to"]        = posTo;
            task.callback          = callback;
            a.tasks.Add(task);
            return(task);
        }
        public static IDisposable LerpAlpha(this CanvasGroup _source, Easing.Ease _easing, int _milliseconds, float _target, bool _adjustInteractAble = true, Action _onComplete = null)
        {
            var progress  = 0f;
            var current   = _source.alpha;
            var different = _target - current;

            return(LerpThread
                   .Execute
                   (
                       _milliseconds,
                       _count =>
            {
                progress += Time.deltaTime / (_milliseconds * GlobalConstant.MILLISECONDS_TO_SECONDS);
                var easingProgress = EasingVector.EaseingFloat(_easing, current, _target, progress);
                _source.SetAlpha(easingProgress, _adjustInteractAble);
            },
                       () =>
            {
                _source.SetAlpha(Mathf.Clamp01(_target), _adjustInteractAble);
                _onComplete?.Invoke();
            }
                   ));
        }
Example #17
0
 Quaternion UpdateRotate(Quaternion rotFrom, Quaternion rotTo, float t, Easing.Ease easing)
 {
     return(Quaternion.Lerp(rotFrom, rotTo, Easing.EaseResult(easing, 0f, 1f, t)));
 }
Example #18
0
 Vector3 UpdateMoveUI(Vector2 posFrom, Vector2 posTo, float t, Easing.Ease easing)
 {
     return(Vector2.Lerp(posFrom, posTo, Easing.EaseResult(easing, 0f, 1f, t)));
 }
Example #19
0
 Vector3 UpdateScale(Vector3 scaleFrom, Vector3 scaleTo, float t, Easing.Ease easing)
 {
     return(Vector3.Lerp(scaleFrom, scaleTo, Easing.EaseResult(easing, 0f, 1f, t)));
 }
Example #20
0
        public static Task TweenMesh(MeshTween mesh, int stateFrom, int stateTo, float from, float to, float time, Easing.Ease easing, System.Action callback = null)
        {
            Task task = a.AddTask(time, Easing.Ease.Linear);

            task.type              = TaskType.tweenMesh;
            task.data["between"]   = null;
            task.data["mesh"]      = mesh;
            task.data["statefrom"] = stateFrom;
            task.data["stateto"]   = stateTo;
            task.data["from"]      = from;
            task.data["to"]        = to;
            task.callback          = callback;
            a.tasks.Add(task);
            return(task);
        }
Example #21
0
        Vector3 UpdateMoveArc(Vector3 posFrom, Vector3 posTo, float arcHeight, float t, Easing.Ease easing)
        {
            Vector3 pos = Vector3.Lerp(posFrom, posTo, Easing.EaseResult(easing, 0f, 1f, t));

            pos.y += arcHeight * Mathf.Sin(Mathf.Clamp01(Easing.EaseResult(easing, 0f, 1f, t)) * Mathf.PI);
            return(pos);
        }
Example #22
0
        public static Task ActionFloat(System.Action <float> action, float from, float to, float time, Easing.Ease easing, System.Action callback = null)
        {
            Task task = a.AddTask(time, easing);

            task.type           = TaskType.actionFloat;
            task.data["action"] = action;
            task.data["from"]   = from;
            task.data["to"]     = to;
            task.callback       = callback;
            a.tasks.Add(task);
            return(task);
        }
Example #23
0
        public static Task ColorToSprite(SpriteRenderer sprite, Color colTo, float time, Easing.Ease easing, System.Action callback = null)
        {
            Task task = a.AddTask(time, easing);

            task.type           = TaskType.colorSprite;
            task.data["sprite"] = sprite;
            task.data["from"]   = sprite.color;
            task.data["to"]     = colTo;
            task.callback       = callback;
            a.tasks.Add(task);
            return(task);
        }
Example #24
0
        public static IDisposable AnimationTranslate(this RectTransform _rectTransform, Vector2 _target, float _duration, Easing.Ease _ease = Easing.Ease.EaseInOutQuad, Action _completed = null)
        {
            var progress     = 0f;
            var current      = _rectTransform.anchoredPosition;
            int milliseconds = Mathf.RoundToInt(_duration * 1000f);

            Vector2 valueTarget;

            return(LerpThread
                   .Execute
                   (
                       milliseconds,
                       _count =>
            {
                progress += Time.deltaTime / _duration;

                valueTarget.x = EasingFormula.EasingFloat(_ease, current.x, _target.x, progress);
                valueTarget.y = EasingFormula.EasingFloat(_ease, current.y, _target.y, progress);
                _rectTransform.anchoredPosition = valueTarget;
            },
                       () =>
            {
                valueTarget = _target;
                _rectTransform.anchoredPosition = valueTarget;
                _completed?.Invoke();
            }
                   ));
        }
Example #25
0
 Color UpdateColor(Color colFrom, Color colTo, float t, Easing.Ease easing)
 {
     return(Color.Lerp(colFrom, colTo, Easing.EaseResult(easing, 0f, 1f, t)));
 }
Example #26
0
        public static IDisposable AnimationHeight(this RectTransform _rectTransform, float _target, float _duration, Easing.Ease _ease = Easing.Ease.EaseInOutQuad, Action _completed = null)
        {
            var progress      = 0f;
            var currentHeight = _rectTransform.rect.height;

            int   milliseconds = Mathf.RoundToInt(_duration * 1000f);
            float valueTarget;


            return(LerpThread
                   .Execute
                   (
                       milliseconds,
                       _count =>
            {
                progress += Time.deltaTime / _duration;

                valueTarget = EasingFormula.EasingFloat(_ease, currentHeight, _target, progress);
                _rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, valueTarget);
            },
                       () =>
            {
                valueTarget = _target;
                _rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, valueTarget);

                _completed?.Invoke();
            }
                   ));
        }
Example #27
0
 public TweenCurve(AnimationCurve c, Easing.Ease <float> e, float d, float dlay = 0f, float ts = 1f)
     : base(e, 0f, 1f, d, dlay, ts)
 {
     m_curve = c;
     m_val   = InternalComputeValue(0f);
 }
Example #28
0
 private static Vector3 LerpVector3WithEase(Vector3 posFrom, Vector3 posTo, float t, Easing.Ease easing)
 {
     return(Vector3.Lerp(posFrom, posTo, Easing.EaseResult(easing, 0f, 1f, t)));
 }
Example #29
0
        public static Task ColorToMaterial(Material material, Color colTo, float time, Easing.Ease easing, System.Action callback = null)
        {
            Task task = a.AddTask(time, easing);

            task.type             = TaskType.colorMaterial;
            task.data["material"] = material;
            task.data["from"]     = material.color;
            task.data["to"]       = colTo;
            task.callback         = callback;
            a.tasks.Add(task);
            return(task);
        }
Example #30
0
        public static IDisposable AnimationSize(this RectTransform _rectTransform, Vector2 _target, float _duration, Easing.Ease _ease = Easing.Ease.EaseInOutQuad, Action _completed = null)
        {
            var progress    = 0f;
            var rect        = _rectTransform.rect;
            var currentSize = new Vector2(rect.width, rect.height);

            int     milliseconds = Mathf.RoundToInt(_duration * 1000f);
            Vector2 valueTarget;

            return(LerpThread
                   .Execute
                   (
                       milliseconds,
                       _count =>
            {
                progress += Time.deltaTime / _duration;

                valueTarget.x = EasingFormula.EasingFloat(_ease, currentSize.x, _target.x, progress);
                valueTarget.y = EasingFormula.EasingFloat(_ease, currentSize.y, _target.y, progress);

                _rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, valueTarget.y);
                _rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, valueTarget.x);
            },
                       () =>
            {
                valueTarget = _target;
                _rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, valueTarget.y);
                _rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, valueTarget.x);

                _completed?.Invoke();
            }
                   ));
        }