Ejemplo n.º 1
0
    public override bool tick()
    {
        if (initialW == targetW && initialH == targetH)
        {
            return(true);
        }
        //Debug.Log(sui.gameObject.name + " w: " + initialW + " " + targetW + " h: " + initialH + " " + targetH);


        float currentPosition = (System.DateTime.Now.Ticks / 10000L) - startTime;
        float newW            = -1;
        float newH            = -1;

        switch (type)
        {
        case SmartUI.TweenTypes.elasticEnd:
            newW = LibTween.easeOutElastic(currentPosition, initialW, targetW - initialW, duration, null, null);
            newH = LibTween.easeOutElastic(currentPosition, initialH, targetH - initialH, duration, null, null);
            break;

        case SmartUI.TweenTypes.elasticBoth:
            newW = LibTween.easeInOutElastic(currentPosition, initialW, targetW - initialW, duration, null, null);
            newH = LibTween.easeInOutElastic(currentPosition, initialH, targetH - initialH, duration, null, null);
            break;

        case SmartUI.TweenTypes.easeStart:
            newW = LibTween.easeInQuad(currentPosition, initialW, targetW - initialW, duration);
            newH = LibTween.easeInQuad(currentPosition, initialH, targetH - initialH, duration);
            break;

        case SmartUI.TweenTypes.easeEnd:
            newW = LibTween.easeOutQuad(currentPosition, initialW, targetW - initialW, duration);
            newH = LibTween.easeOutQuad(currentPosition, initialH, targetH - initialH, duration);
            break;

        case SmartUI.TweenTypes.easeBoth:
            newW = LibTween.easeInOutQuad(currentPosition, initialW, targetW - initialW, duration);
            newH = LibTween.easeInOutQuad(currentPosition, initialH, targetH - initialH, duration);
            break;

        case SmartUI.TweenTypes.linear:
            newW = LibTween.linear(currentPosition, initialW, targetW - initialW, duration);
            newH = LibTween.linear(currentPosition, initialH, targetH - initialH, duration);
            break;
        }

        sui.position.width  = newW;
        sui.position.height = newH;

        if (currentPosition >= duration)
        {
            sui.position.width  = targetW;
            sui.position.height = targetH;
            sui.updateSize(true);
            return(true);
        }
        sui.updateSize(true);
        return(false);
    }
Ejemplo n.º 2
0
    public override bool tick()
    {
        float currentPosition = (System.DateTime.Now.Ticks / 10000L) - startTime;
        float scaleMod        = LibTween.easeOutElastic(currentPosition, startPos, posMod, duration, amplitude, period);

        sui.position.width  = initialWidth * scaleMod;
        sui.position.height = initialHeight * scaleMod;
        if (currentPosition >= duration)
        {
            sui.position.width  = initialWidth;
            sui.position.height = initialHeight;
            return(true);
        }
        return(false);
    }
Ejemplo n.º 3
0
        virtual public UCL_Tweener CreateTweener() {
            //Create UCL_Tweener
            //生成UCL_Tweener
            UCL_Tweener tweener = LibTween.Tweener(m_Duration);
            if(m_UseEaseCurve) {
                //Use AnimationCurve as Ease
                //用AnimationCurve作為緩動函式
                tweener.SetEase(m_EaseCurve);
            } else {
                //Set Ease function
                //設定緩動函式
                tweener.SetEase(m_Ease);
            }

            return tweener;
        }
Ejemplo n.º 4
0
        override public void StartDemo()
        {
            //kill previous tweener if not ended
            //假如上個tweener還在執行則進行kill 若Kill參數帶true則會執行OnComplete的Action false則不觸發(可省略此步驟)
            if (m_Tweener != null)
            {
                m_Tweener.Kill(false);
            }
            //Reset position to start
            //重設目標位置道起點
            m_Target.position = m_Start.position;

            //Create UCL_Tweener
            //生成UCL_Tweener
            m_Tweener = LibTween.Tweener(m_Duration);
            if (m_UseEaseCurve)
            {
                //Use AnimationCurve as Ease
                //用AnimationCurve作為緩動函式
                m_Tweener.SetEase(m_EaseCurve);
            }
            else
            {
                //Set Ease function
                //設定緩動函式
                m_Tweener.SetEase(m_Ease);
            }
            //Create tweencomponent
            //生成tweencomponent
            var tween_component = m_Target.TC_Move(m_Goal);

            //var tween_component = m_Target.TC_Move(m_Goal.position);範例 使用Vector3座標作為目標

            //Add tween component to tweener
            //把tween元件加入tweener
            m_Tweener.AddComponent(tween_component);

            //Set OnComplete action
            //設定完成後執行的action(這項非必要 action會在完成時被呼叫)
            m_Tweener.OnComplete(() => {
                m_Tweener = null;
            });
            //start tweener
            //開始執行tweener
            m_Tweener.Start();
        }
Ejemplo n.º 5
0
        override public void StartDemo()
        {
            //kill previous tweener if not ended
            //假如上個tweener還在執行則進行kill 若Kill參數帶true則會執行OnComplete的Action false則不觸發(可省略此步驟)
            if (m_Tweener != null)
            {
                m_Tweener.Kill(false);
            }

            //Create UCL_Tweener
            //生成UCL_Tweener
            m_Tweener = LibTween.Tweener(m_Duration).SetEase(m_Ease);

            //Create tweencomponent and add tween component to tweener
            //生成tweencomponent並把tween元件加入tweener
            m_Tweener.AddComponent(m_Target.TC_Move(m_Path));

            //start tweener
            //開始執行tweener
            m_Tweener.Start();
        }
Ejemplo n.º 6
0
    public override bool tick()
    {
        float currentPosition = (System.DateTime.Now.Ticks / 10000L) - startTime;
        float newX            = -1;

        switch (type)
        {
        case SmartUI.TweenTypes.elasticEnd:
            newX = LibTween.easeOutElastic(currentPosition, initialX, targetX - initialX, duration, null, null);
            break;

        case SmartUI.TweenTypes.elasticBoth:
            newX = LibTween.easeInOutElastic(currentPosition, initialX, targetX - initialX, duration, null, null);
            break;

        case SmartUI.TweenTypes.easeStart:
            newX = LibTween.easeInQuad(currentPosition, initialX, targetX - initialX, duration);
            break;

        case SmartUI.TweenTypes.easeEnd:
            newX = LibTween.easeOutQuad(currentPosition, initialX, targetX - initialX, duration);
            break;

        case SmartUI.TweenTypes.easeBoth:
            newX = LibTween.easeInOutQuad(currentPosition, initialX, targetX - initialX, duration);
            break;

        case SmartUI.TweenTypes.linear:
            newX = LibTween.linear(currentPosition, initialX, targetX - initialX, duration);
            break;
        }

        sui.position.x = newX;
        if (currentPosition >= duration)
        {
            sui.position.x = targetX;
            return(true);
        }
        return(false);
    }
Ejemplo n.º 7
0
        public void StartDemo()
        {
            Debug.LogWarning("StartDemo()");
            Kill(false);

            m_Seq = UCL_Sequence.Create();
            EaseType[] Eases = (EaseType[])System.Enum.GetValues(m_Ease.GetType());
            int        at    = 0;

            for (; at < Eases.Length;)
            {
                if (m_Ease == Eases[at])
                {
                    break;
                }
                at++;
            }

            int   times    = 0;
            float interval = 0.101f;

            m_Seq.AppendInterval(interval).OnComplete(delegate() {
                //Debug.LogWarning("Test " + ++times + ",Timer:" + m_Seq.Timer + ",interval:" + interval);
            });

            interval = 0.2025f;
            m_Seq.AppendInterval(interval).OnComplete(delegate() {
                //Debug.LogWarning("Test " + ++times + ",Timer:" + m_Seq.Timer + ",interval:" + interval);
            });
            m_Seq.Join(m_TargetChild.UCL_LocalShake(1f, 30f, 30, true));

            bool rev     = true;
            int  look_at = 0;

            {
                int n = at >= Eases.Length ? at = 0 : at++;
                m_Seq.Append(
                    LibTween.Tweener(4f)
                    .AddComponent(m_Target.TC_Move(m_Curve).SetReverse(rev ^= true))
                    .AddComponent(m_Target.TC_Rotate(0, 0, 0))          //.SetReverse(!rev)
                    .AddComponent(m_TargetChild.TC_LocalMove(0, 20, 0)) //.SetReverse(!rev)
                    .AddComponent(LibTC.Action(delegate(float y) {
                    //Debug.LogWarning("y:" + y);
                    m_Y = y;
                }))
                    .AddComponent(m_Target3.TC_LookAt(m_LookTargets[look_at ++].position, Vector3.up))
                    .SetEase(m_AnimCurve)
                    //.SetEase(Eases[n])
                    //.SetReverse(rev ^= true)
                    .OnStart(delegate() {
                    //Debug.LogWarning("Start at:" + at + "n:" + n);
                    m_CurEase = Eases[n];
                })
                    .OnComplete(delegate() {
                    //Debug.LogWarning("Curve End!!" + ++times + ",Timer:" + m_Seq.Timer + ",Timer:" + m_Seq.Timer + ",interval:" + interval);
                })
                    );
            }


            interval = 0.005f;
            m_Seq.AppendInterval(interval).OnComplete(delegate() {
                //Debug.LogWarning("Test " + ++times + ",Timer:" + m_Seq.Timer + ",interval:" + interval);
            });
            interval = 0.01f;
            m_Seq.AppendInterval(interval).OnComplete(delegate() {
                //Debug.LogWarning("Test " + ++times + ",Timer:" + m_Seq.Timer + ",interval:" + interval);
            });

            interval = 0.1f;
            m_Seq.AppendInterval(interval).OnComplete(delegate() {
                //Debug.LogWarning("Test " + ++times + ",Timer:" + m_Seq.Timer + ",interval:" + interval);
            });
            interval = 0.5f;
            m_Seq.AppendInterval(interval).OnComplete(delegate() {
                //Debug.LogWarning("Test " + ++times + ",Timer:" + m_Seq.Timer + ",interval:" + interval);
            });
            {
                int n = at >= Eases.Length ? at = 0 : at++;
                m_Seq.Append(LibTween.Tweener(3f)
                             .AddComponent(m_Target.TC_Move(m_Curve).SetReverse(rev ^= true))
                             .AddComponent(m_Target.TC_Rotate(90, 130, -70)) //.SetReverse(!rev)
                                                                             //.AddComponent(m_TargetChild.TC_LocalMove(0, -20, 0))//.SetReverse(!rev)
                             .AddComponent(m_Target3.TC_LookAt(m_Target, Vector3.up))
                             .AddComponent(LibTC.Action(delegate(float y) {
                    m_Y = y;
                }))
                             .AddComponent(m_Target3.TC_LookAt(m_LookTargets[look_at ++], Vector3.up))
                             .SetEase(Eases[n])
                             .OnStart(delegate() {
                    //Debug.LogWarning("Start at:" + at + "n:" + n);
                    m_CurEase = Eases[n];
                })
                             //.SetReverse(rev ^= true)
                             .OnComplete(delegate() {
                    //Debug.LogWarning("Curve End!!" + ++times + ",Timer:" + m_Seq.Timer);
                }));
            }

            m_Seq.AppendInterval(1.0f).OnComplete(delegate() {
                Debug.LogWarning("Test " + ++times + ",Timer:" + m_Seq.Timer);
            });
            {
                int n = at >= Eases.Length ? at = 0 : at++;
                m_Seq.Append(m_Target.UCL_Move(2, m_Curve)
                             .AddComponent(
                                 m_Target.TC_Rotate(-60, -80, 40).SetReverse(!rev)
                                 )
                             .AddComponent(m_TargetChild.TC_LocalShake(20, 60))
                             .AddUpdateAction(delegate(float y) {
                    m_Y = y;
                })
                             //.AddComponent(m_TargetChild.TC_LocalMove(Vector3.zero))
                             .AddComponent(m_Target3.TC_LookAt(m_LookTargets[look_at ++], Vector3.up).SetReverse(!rev))
                             .AddComponent(m_Target3.TC_LookAt(m_Target, Vector3.up))
                             .SetEase(delegate(float y) {
                    float x = 4 * y;
                    x      -= Mathf.FloorToInt(x);
                    return(x);
                })    //Eases[n]
                             .SetReverse(rev ^= true)
                             .OnStart(delegate() {
                    //Debug.LogWarning("Start at:" + at + "n:"+n);
                    m_CurEase = Eases[n];
                })
                             .OnComplete(delegate() {
                    //Debug.LogWarning("Curve End!!" + ++times + ",Timer:" + m_Seq.Timer);
                }));
            }

            {
                int n = at >= Eases.Length ? at = 0 : at++;
                m_Seq.Append(m_Target.UCL_Move(2, m_Curve)
                             .AddComponent(
                                 m_Target.TC_Rotate(m_RotTarget.rotation)
                                 )
                             //.AddComponent(m_Target2.TC_LocalMove(Vector3.zero))
                             .AddComponent(LibTC.Action(delegate(float y) {
                    //Debug.LogWarning("y:" + y);
                    m_Y = y;
                }))
                             .AddComponent(m_Target3.TC_LookAt(m_Target, Vector3.up).SetReverse(!rev))
                             .SetEase(Eases[n])
                             .SetReverse(rev ^= true)
                             .OnStart(delegate() {
                    m_CurEase = Eases[n];
                })
                             .OnComplete(delegate() {
                    //Debug.LogWarning("Curve End!!" + ++times + ",Timer:" + m_Seq.Timer);
                }));
            }
            m_Seq.AppendInterval(2.0f).OnComplete(delegate() {
                //Debug.LogWarning("Test " + ++times + ",Timer:" + m_Seq.Timer);
            });
            m_Seq.Append(m_Target.UCL_Rotate(2.5f, 45, 90, 150)
                         .SetEase(EaseType.OutBounce).
                         AddComponent(
                             m_Target.TC_Move(1000, 500, 250).SetReverse(!rev)
                             )
                         .AddComponent(LibTC.Action(delegate(float y) {
                //Debug.LogWarning("y:" + y);
                m_Y = y;
            }))
                         );
            m_Seq.Append(m_Target.UCL_Move(4, m_RotTarget.position)
                         .AddComponent(
                             m_Target.TC_Rotate(-30, 190, 70).SetReverse(!rev)
                             )
                         .AddComponent(LibTC.Action(delegate(float y) {
                //Debug.LogWarning("y:" + y);
                m_Y = y;
            }))
                         .AddComponent(m_Target3.TC_LookAt(m_Target, Vector3.up).SetReverse(!rev))
                         .SetEase(EaseType.InCirc).OnComplete(() => {
                //Debug.LogWarning("Move End!!" + ++times + ",Timer:" + m_Seq.Timer);
            }));
            m_Seq.Append(m_Target.UCL_Shake(2f, 20f, 30).SetEase(EaseType.OutQuart));
            m_Seq.Append(m_Target.UCL_Rotate(2f, m_RotTarget.rotation).SetEase(EaseType.OutBounce));

            //m_RotTarget
            m_Seq.OnComplete(delegate() {
                Debug.LogWarning("End!! " + ",Timer:" + m_Seq.Timer);
                m_Seq = null;
            });

            m_Seq.Start();
        }