Skip to content

Commit 8746ef9

Browse files
committed
Eliminated more branches, refactor, smoother edit-mode
1 parent b01f09c commit 8746ef9

12 files changed

Lines changed: 314 additions & 112 deletions

Assets/SlimTween/Scripts/Editor/EditorWorker.cs

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,15 @@ public static void Worker()
102102

103103
var tween = TweenManager.activeTweens.array[i];
104104

105-
if (tween.IsValid)
106-
tween.RunUpdate();
105+
if(tween.tprops.lerptype > 0)
106+
{
107+
if (tween.IsValid)
108+
tween.RunUpdate();
109+
}
110+
else
111+
{
112+
tween.tprops.SetLerpType();
113+
}
107114
}
108115

109116
if (TweenManager.removeCount > 0)
@@ -146,9 +153,9 @@ static EditorDeltaInit()
146153
//AssemblyReloadEvents.afterAssemblyReload += SessionTest;
147154
SessionTest();
148155

149-
if(!SessionState.GetBool("STplaying", false))
156+
//if(!SessionState.GetBool("STplaying", false))
150157
EditorWorker.InitEditor();
151-
}
158+
}
152159
public static void SessionTest()
153160
{
154161
if(SessionState.GetBool("STplaying", true))
@@ -181,9 +188,13 @@ static void PlayModeState(PlayModeStateChange state)
181188
TweenManager.isPlayMode = false;
182189
STPool.ClearCache();
183190
SessionState.SetBool("STplaying", false);
191+
RegisterFrame();
192+
RegisterDeltaTiming();
193+
RegisterFrame();
194+
EditorWorker.GetScreenRate();
184195
EditorWorker.RegisterWorkerUpdate();
185196
};
186197
}
187-
}
198+
}
188199
}
189200
}

Assets/SlimTween/Scripts/Extension.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public static TweenClass setOnUpdate(this TweenClass stween, Action<Vector3> cal
6969
/// <param name="ease">Easing.</param>
7070
public static TweenClass setEase(this TweenClass stween, Ease ease)
7171
{
72-
stween.tprops.easeType = ease;
72+
(stween as ISlimRegister).SetEase(ease);
7373
return stween;
7474
}
7575
/// <summary>Amount of repetition for the tween to complete.</summary>
@@ -241,7 +241,7 @@ public static TweenClass setSkip(this ISlimTween stween, float skipEveryNSeconds
241241

242242
st.setOnUpdate(x =>
243243
{
244-
if (st.state == TweenState.Tweening && (st as ISlimRegister).GetSetRunningTime + skipEveryNSeconds < (st as ISlimRegister).GetSetDuration)
244+
if (st.IsTweening && (st as ISlimRegister).GetSetRunningTime + skipEveryNSeconds < (st as ISlimRegister).GetSetDuration)
245245
(st as ISlimRegister).GetSetRunningTime += skipEveryNSeconds;
246246
});
247247

Assets/SlimTween/Scripts/STEasing.cs

Lines changed: 93 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2121

2222
using UnityEngine;
2323
using System.Runtime.CompilerServices;
24+
using Breadnone.Extension;
2425

2526
namespace Breadnone
2627
{
@@ -442,11 +443,101 @@ public static float Easing(Ease ease, float tick)
442443
return 0;
443444
}
444445

446+
public static float Easing(int ease, float tick)
447+
{
448+
switch (ease)
449+
{
450+
case 0:
451+
return Linear(tick);
452+
case 1:
453+
return EaseInQuad(tick);
454+
case 2:
455+
return EaseOutQuad(tick);
456+
case 3:
457+
return EaseInOutQuad(tick);
458+
case 4:
459+
return EaseInCubic(tick);
460+
case 5:
461+
return EaseOutCubic(tick);
462+
case 6:
463+
return EaseInOutCubic(tick);
464+
case 7:
465+
return EaseInQuart(tick);
466+
case 8:
467+
return EaseOutQuart(tick);
468+
case 9:
469+
return EaseInOutQuart(tick);
470+
case 10:
471+
return EaseInQuint(tick);
472+
case 11:
473+
return EaseOutQuint(tick);
474+
case 12:
475+
return EaseInOutQuint(tick);
476+
case 13:
477+
return EaseInSine(tick);
478+
case 14:
479+
return EaseOutSine(tick);
480+
case 15:
481+
return EaseInOutSine(tick);
482+
case 16:
483+
return EaseInExpo(tick);
484+
case 17:
485+
return EaseOutExpo(tick);
486+
case 18:
487+
return EaseInOutExpo(tick);
488+
case 19:
489+
return EaseInCirc(tick);
490+
case 20:
491+
return EaseOutCirc(tick);
492+
case 21:
493+
return EaseInOutCirc(tick);
494+
case 22:
495+
return SpringIn(tick);
496+
case 23:
497+
return SpringOut(tick);
498+
case 24:
499+
return SpringInOut(tick);
500+
case 25:
501+
return EaseInBounce(tick);
502+
case 26:
503+
return EaseOutBounce(tick);
504+
case 27:
505+
return EaseInOutBounce(tick);
506+
case 28:
507+
return EaseInBack(tick);
508+
case 29:
509+
return EaseOutBack(tick);
510+
case 30:
511+
return EaseInOutBack(tick);
512+
case 31:
513+
return EaseInElastic(tick);
514+
case 32:
515+
return EaseOutElastic(tick);
516+
case 33:
517+
return EaseInOutElastic(tick);
518+
case 34:
519+
return EaseInWeightedOut(tick);
520+
case 35:
521+
return EaseInWeightedReboundOut(tick);
522+
case 36:
523+
return Bezier1D(tick);
524+
case 37 :
525+
return Bezier2DEaseFloatIn(tick);
526+
case 38:
527+
return Bezier2DEaseFloatOut(tick);
528+
case 39:
529+
return Bezier2DEaseFloatInOut(tick);
530+
case 40 :
531+
return Bezier2DEaseBrakeInOut(tick);
532+
}
533+
return 0;
534+
}
535+
445536
}
446537
/// <summary>
447538
/// Easing functions.
448539
/// </summary>
449-
public enum Ease : byte
540+
public enum Ease
450541
{
451542
Linear = 0,
452543
EaseInQuad,
@@ -488,6 +579,6 @@ public enum Ease : byte
488579
Bezier2DEaseFloatIn,
489580
Bezier2DEaseFloatOut,
490581
Bezier2DEaseFloatInOut,
491-
Bezier2DEaseBrakeInOut,
582+
Bezier2DEaseBrakeInOut
492583
}
493584
}

Assets/SlimTween/Scripts/STPool.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public static void InitCache()
3535
/// <summary>
3636
/// Clears caches (if any)
3737
/// </summary>
38-
public static void ClearCache()=> cache.ClearCaches();
38+
public static void ClearCache()=> cache?.ClearCaches();
3939
///<summary>VTween object pooling. Default is 5.</summary>
4040
[MethodImpl(MethodImplOptions.AggressiveInlining)]
4141
public static T GetInstance<T>(int vid) where T : TweenClass, new()

Assets/SlimTween/Scripts/STween.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1462,7 +1462,7 @@ public static TweenClass queue(int id, TweenClass stween)
14621462
{
14631463
if (TweenExtension.FindTween(id, out var tween))
14641464
{
1465-
if (tween.state != TweenState.Tweening)
1465+
if (!tween.IsTweening)
14661466
{
14671467
(tween as ISlimRegister).RegisterLastOnComplete(() =>
14681468
{

0 commit comments

Comments
 (0)