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); }
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); }
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; }
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(); }
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(); }
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); }
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(); }