Exemplo n.º 1
0
 public TweenNode(float duration, T from, T to)
 {
     _duration = duration;
     _from     = from;
     _to       = to;
     _easeFun  = TweenEase.Linear.Default;
 }
Exemplo n.º 2
0
        public TweenNode <T> SetEase(AnimationCurve easeCurve)
        {
            if (easeCurve == null)
            {
                MotionLog.Error("AnimationCurve is null. Tween ease function use default.");
                _easeFun = TweenEase.Linear.Default;
                return(this);
            }

            // 获取动画总时长
            float length = 0f;

            for (int i = 0; i < easeCurve.keys.Length; i++)
            {
                var key = easeCurve.keys[i];
                if (key.time > length)
                {
                    length = key.time;
                }
            }

            _easeFun = delegate(float t, float b, float c, float d)
            {
                float time = length * (t / d);
                return(easeCurve.Evaluate(time) * c + b);
            };

            return(this);
        }
Exemplo n.º 3
0
 public TweenNode <T> SetEase(TweenEaseDelegate ease)
 {
     _easeFun = ease;
     return(this);
 }