示例#1
0
        public static AiukFloatTween Tween(object key, float start, float end, float duration,
                                           Action <IAiukTween <float> > progress,
                                           Action <IAiukTween <float> >
                                           completion = null,
                                           AiukEaseType aiukEaseType = AiukEaseType.Linear,
                                           string friendName         = null)
        {
            var t = AiukTweenFactory.GetFloatTween();

            // 给动画对象赋一个友好的命名如果存在
            if (friendName == null)
            {
                var id = TweenIdCounter + 1;
                t.FriendNme = "Tween_" + id;
            }
            else
            {
                t.FriendNme = friendName;
            }
            t.Key = key;
            var scaleFunc = scaleFuncDictionary[aiukEaseType];

            t.Init(start, end, duration, scaleFunc, progress, completion);
            AddTween(t);

            return(t);
        }
示例#2
0
        /// <summary>
        /// Created and add a Vector4 tween
        /// </summary>
        /// <param name="key">Key</param>
        /// <param name="start">Created value</param>
        /// <param name="end">End value</param>
        /// <param name="duration">CostTime in seconds</param>
        /// <param name="scaleFunc">Scale function</param>
        /// <param name="progress">Progress handler</param>
        /// <param name="completion">Completion handler</param>
        /// <returns>Vector4Tween</returns>
        public static AiukVector4Tween Tween(object key, Vector4 start, Vector4 end, float duration, Func <float, float> scaleFunc, Action <IAiukTween <Vector4> > progress, Action <IAiukTween <Vector4> > completion)
        {
            var t = AiukTweenFactory.GetVector4Tween();

            t.Key = key;
            t.Init(start, end, duration, scaleFunc, progress, completion);
            AddTween(t);

            return(t);
        }
示例#3
0
        /// <summary>
        /// 启动一个颜色动画
        /// </summary>
        /// <param name="key"></param>
        /// <param name="start">Created value</param>
        /// <param name="end">End value</param>
        /// <param name="duration">CostTime in seconds</param>
        /// <param name="progress">Progress handler</param>
        /// <param name="completion">Completion handler</param>
        /// <param name="aiukEaseType"></param>
        /// <returns>ColorTween</returns>
        public static AiukColorTween Tween(object key, Color start, Color end, float duration, Action <IAiukTween <Color> > progress, Action <IAiukTween <Color> > completion, AiukEaseType aiukEaseType = AiukEaseType.Linear)
        {
            var t = AiukTweenFactory.GetColorTween();

            t.Key = key;
            var scaleFunc = scaleFuncDictionary[aiukEaseType];

            t.Init(start, end, duration, scaleFunc, progress, completion);
            AddTween(t);

            return(t);
        }
示例#4
0
        /// <summary>
        /// 更新所有动画对象
        /// </summary>
        private void Update()
        {
            for (var i = tweens.Count - 1; i >= 0; i--)
            {
                var tween  = tweens[i];
                var check1 = tween.Update(Time.deltaTime);
                var check2 = i < tweens.Count;
                var check3 = tween == tweens[i];

                if (!check1 || !check2 || !check3)
                {
                    continue;
                }

                var t = tweens[i];
                t.Reset();  // 重置动画对象
                tweens.RemoveAt(i);
                AiukTweenFactory.Restore(tween);
            }
        }