Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

LeanTween - A tweening engine that is up to 5x faster than competing engines!

Discussion in 'Assets and Asset Store' started by dentedpixel, Dec 3, 2012.

  1. ivan.r

    ivan.r

    Joined:
    Jun 9, 2014
    Posts:
    2
    Hi Russ,

    Just wondering if you could help Unity newbie out..

    I'm just trying to get a grasp of your code in the MenuExampleCSharp.cs

    Code (CSharp):
    1. if(GUI.Button( staticRect, "Flip Tile")){
    2.             LeanTween.move( beautyTileRect, new Vector2( 0f, beautyTileRect.rect.y + 1.0f ), 1.0f ).setEase(LeanTweenType.easeOutBounce);
    3.         }
    4.  
    5.         GUI.DrawTextureWithTexCoords( new Rect(0.8f*w, 0.5f*h - beauty.height*0.5f, beauty.width*0.5f, beauty.height*0.5f), beauty, beautyTileRect.rect);
    6.  

    Let's say the texture is now 3 beauty.png stuck together (width remains the same, but now 3 times the height).

    How do I clip it so it only displays just one beauty.png?

    Is there a way to modify so it doesn't bounce so much?..
     
  2. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Hi Ivan,

    I think you could do something like that, the first thing to do would be to make sure the initial beautyTileRect was only setup to show 1/3 of the area, I think this might work:

    beautyTileRect = new LTRect(0.0f,0.0f,1.0f,0.333f );

    And then you would want to define a custom animation curve in order to get full control over the bounce effect (or try easeOutBack, or easeOutElastic, they are similar)

    I hope that helps, feel free to send over the png you are working with and I can see if I can simulate the effect you are trying to go for...
     
  3. gumboots

    gumboots

    Joined:
    May 24, 2011
    Posts:
    298
    Hi dentedpixel,

    Love LeanTween, thanks so much for such an awesome engine.

    I'm wondering if there's a way to setup a movement path without using OnComplete. Basically I want an object to hit a series of points at a set speed and slow down to a stop at the end.

    So right now I have:

    Code (CSharp):
    1. void MoveToNextPoint(){
    2.     LTDescr moveTween;
    3.  
    4.     moveTween = LeanTween.move (gameObject, path[currentPoint], pathDistances[currentPoint / 2] / ballSpeed);
    5.     currentPoint += 2;
    6.      
    7.     if(currentPoint >= path.Length){
    8.         moveTween.setEase(LeanTweenType.easeOutSine);
    9.     } else {
    10.         moveTween.setOnComplete(MoveToNextPoint);
    11.     }
    12.      
    13. }
    It is getting the points fine, as well as the pre-calculated distances, however the easing on the final point obviously doesn't take into account the whole path. So it almost speeds up before it starts slowing down. I'm wondering if there's a way to queue up .move()s, and to ease over the entire life of the movement?

    Though I fear maybe it's not possible.

    I appreciate any help you can offer!

    Thanks!
     
  4. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Hey Adam, Thanks so much! I am glad you are liking the engine.

    You can accomplish what you want very easily using the moveSpline method (documented here: http://dentedpixel.com/LeanTweenDocumentation/classes/LeanTween.html#method_LeanTween.moveSpline). No need to use an awkward set of onComplete's. You can also set the easing for the whole path, so easeOutSine, will just easeOut towards the end.

    I hope that helps!
     
  5. gumboots

    gumboots

    Joined:
    May 24, 2011
    Posts:
    298
    Hi again!

    Thanks for such a prompt response. Brace yourself for a mathematics tutorial request!

    So I have an array of points that I want the object to pass through. This changes every time. When I feed that directly to the moveSpline method I get some pretty wacky results. So I'm after a linear spline: Go directly to this point, then this one, then this one. I've tried setting the first and last points ('control points', from the documentation) of the array to both Vector3.zero and to match the second and second last points respectively, but either way I end up with a curve.

    I know it's my lack of understanding of bezier mathematics that is failing me, and I'm hoping you can tell me how to use moveSpline to navigate with no curvature through a set of points?

    Thanks again!
     
  6. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    No problem! Yeah the moveSpline is a little odd how it takes parameters, the first two and last two parameters should in almost all scenarios just be the same (because they do not actually go on the curve, but just affect how the angle of the curve starts and ends). So some pseudocode for an array that you would pass would be:

    {pt1,pt1,pt2,pt3,pt4,pt4} // the first points and last points are the same

    Does that make sense? Check out the ExampleSpline scene too, to get a real world example.
     
  7. ivan.r

    ivan.r

    Joined:
    Jun 9, 2014
    Posts:
    2
    Hi Russ,

    Thanks for the tip, it worked :)

    The effect I'm trying to achieve is actually a little bounce you normally see in video slots after the reel spin.

    I'll try the easeOutBack or easeOutElastic, if not I will try to make some custom animation curve.

    Thanks so much
     
    dentedpixel likes this.
  8. MSFX

    MSFX

    Joined:
    Sep 3, 2009
    Posts:
    116
    Great work, really nice quick engine, thanks!
     
    Last edited: Jun 18, 2014
  9. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Thanks MSFX for the support! :)
     
  10. MSFX

    MSFX

    Joined:
    Sep 3, 2009
    Posts:
    116
    would be great to see colour tweening make an appearance at some point though... :)
     
  11. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Definitely, that pretty simple feature has been a long time coming. I am mostly done with an implementation of it now, and should have it up on Github at least by the end of the weekend.
     
  12. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
  13. tellemstevedave

    tellemstevedave

    Joined:
    Jul 15, 2013
    Posts:
    21
    Yay Color! Thanks.

    Is there a way to run multiple tweens on the same parameter of a GameObject? For instance, whenever I want to say move an object to a new position and while it moves animated a "run" with tweens, one of the position tweens will clobber the other. It would be nice to (optionally) be able to stack tweens of the same type and pick if they were absolute or relative.

    I was talking with the programmer I'm working with about this and he said it might not be too hard to add but I wanted to see if it's in there already and I'm missing something.

    Thanks
     
  14. FPires

    FPires

    Joined:
    Jan 5, 2012
    Posts:
    151
    Dentedpixel, is there any way to set up the tween so that the object will move in a constant speed I define instead of setting the time to complete the tween?
    I've seen some other tween solutions that offer this option, but none of them work - The object usually slows down on curves.
     
  15. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    LeanTween is better than most for tweening different variables on the same object, however if you are tweening the same value like the position it may not be possible without a little bit of effort (You can use a combination of moveX,moveY,moveZ to move things independently of one another however on different axis). You can do things in a more manual way by using LeanTween.value, and then in the callback methods add tweening values together like:

    Code (CSharp):
    1. public void Start(){
    2.   LeanTwee.value(gameObject, onMoveBase, 0.0f, 5.0f, 1.0f).setEase(LeanTweenType.easeOutElastic);
    3.   LeanTwee.value(gameObject, onMoveAdditional, 0.0f, 5.0f, 1.0f).setEase(LeanTweenType.easeOutQuad);
    4. }
    5.  
    6. private float baseTweenVal;
    7.  
    8. private void onMoveBase( float val){
    9.   baseTweenVal = val;
    10. }
    11.  
    12. private void onMoveAdditional( float val ){
    13.   gameObject.transform.position.x = baseTweenVal + val;
    14. }
     
  16. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Hi FPires,

    There is a way to do this, and we just discussed it during this post: http://forum.unity3d.com/threads/le...competing-engines.161113/page-10#post-1641455 . I hope that helps, let me know if you have more questions.
     
  17. MSFX

    MSFX

    Joined:
    Sep 3, 2009
    Posts:
    116
    If I move an object to a position (x,y,z), I expect all of its children to also move relative to the parent... is this supported yet? I saw a previous post here where you mention an add(...) method but I can't see it within your docs...?
     
  18. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Yeah if you move the parent the children will move relative to the parent. If you want to also move the children at the same time you need to use moveLocal. This tells the engine they want to move in relation to their parent (in local-space), so it will also be in local-space positioning.

    That previous post, was about the path tool, back when I hadn't really made it too robust, but it handles local and world space now...
     
  19. MSFX

    MSFX

    Joined:
    Sep 3, 2009
    Posts:
    116
    in your examples you have a rigidbody example which I hoped would actually use the physics but doesn't... guessing this isn't supported yet...?
     
  20. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Yeah, I was just experimenting with what would be involved to support a rigidbody. It turns out it would be a lot of work, and hard to get right. From what I have heard from people even the engines that support Rigidbodies have a pretty buggy implementation...

    I would also only want to support it in a way that doesn't add overhead to all the other code (which is also a challenge). So it's still something I want to look into, but it may not be implemented any time soon...
     
  21. MSFX

    MSFX

    Joined:
    Sep 3, 2009
    Posts:
    116
    yeah I was thinking it would likely have quite an expensive overhead bringing in all the physics calculations... great engine so far though, really makes a difference on iPhone 4 compared with other popular tween engines...

    If you're ever in London hit me up and I'll shout you a beer ;)
     
  22. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Thanks MSFX! :)

    Yeah I originally developed the engine when my game was having terrible performance issues on my iPhone 4. It's maybe a little less noticeable on the more recent super powerful iPhone 5(s), but every performance gain counts, they all add up little by little...
     
  23. SoftwareLogicAU

    SoftwareLogicAU

    Joined:
    Mar 30, 2014
    Posts:
    34
    Hi Russ,

    I'm making a 2D game and have the same issue as FireMutant. I created a spline with 5 points (a spline was easier to manipulate in 2D space) and need my 2D sprite to move along the spline while looking forward along the path. This works great, except when I use setOrientToPath, it causes my sprite to go side-on making it invisible. If I turn it off then I can see the sprite follow the path (fantastic), but it doesn't face where it's going which looks pretty ridiculous.

    I've tried everything I can think of (although I'm new to Unity) but have run out of ideas and getting desperate for a solution so I can get back on track. Can you think of any way I can use your tool without losing visibility of my sprites, or can you suggest an alternative to your tween tool which will allow it? I'd much rather stick with your tool though so hope you've got some ideas.

    Thanks.
     
  24. SoftwareLogicAU

    SoftwareLogicAU

    Joined:
    Mar 30, 2014
    Posts:
    34
    In the interests of saving some time, I modified the LeanTween source code to see if I could make it behave correctly for 2d rotation and got it working temporarily with this (around line 1215):

    public void place( Transform transform, float ratio, Vector3 worldUp ){
    transform.position = point( ratio );
    ratio += 0.001f;
    if(ratio<=1.0f)
    {
    //transform.LookAt( point( ratio ), worldUp );
    Vector3 v3Dir = point( ratio ) - transform.position;
    var angle = Mathf.Atan2(v3Dir.y, v3Dir.x) * Mathf.Rad2Deg;
    transform.eulerAngles = new Vector3(0, 0, angle-90);
    }
    }

    It would be fantastic if you were able to add a setOrientToPath2D option and use the above code for the orientation. I'm sure this would help a LOT of people! Although I can use this code at the moment in my project, my concern is that if I update to your next version when it comes out, I will lose my changes and also if I want to use your plugin for a 3D game it will no longer work correctly.

    Do you think (given the above code), you'll be able to make something a bit cleaner which I can use immediately?

    Thanks :)
     
  25. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Yeah definitely, thanks for giving me a head start on this! I'll be looking into how best integrate this shortly. I wanted to see the easiest way to support people looking to do 2d, and it might be something like the setOrientToPath2D like you suggested... (I'll try and give you a clear answer in the next couple of days, when I get a chance to look into it).
     
  26. WildBill

    WildBill

    Joined:
    Jul 8, 2014
    Posts:
    1
    Hi, thanks for this great library.

    I'm having trouble working out how to pass multiple params using onCompleteParam using C#. Is it possible?

    The code I'm using is:

    Code (CSharp):
    1. Hashtable options = new Hashtable();
    2. options.Add ("onComplete", "finishMoving");
    3. options.Add ("onCompleteParam", direction);
    4. LeanTween.moveLocal(gameObject, newPos, playerSpeed, options);
    Any advice much appreciated

    Edit: Have worked this out now, thanks to the advice here

    Final code was:
    Code (CSharp):
    1. Hashtable onCompleteParams = new Hashtable();
    2. onCompleteParams.Add("master", master);
    3. onCompleteParams.Add("direction", direction);
    4. LeanTween.moveLocal(gameObject, newPos, playerSpeed).setOnComplete(finishMoving).setOnCompleteParam(onCompleteParams);
    then the finishMoving function looked something like this:
    Code (CSharp):
    1. public void finishMoving(object onCompleteParams) {
    2.     Hashtable args = onCompleteParams as Hashtable;
    3.     if ((bool)args["master"])
    4.       player1controlMnk.moveChar((float)args["direction"]);
    5.     transform.position = newPos;
    6.     moving = false;
    7.   }
     
    Last edited: Jul 9, 2014
  27. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Sorry for the delayed response, but I am glad you were able to figure it out. You can also pass multiple objects using an array (safer when targeting platforms like Windows Phone 8, because it doesn't support Hashtables). Here is an example of that:

    Code (CSharp):
    1. void Start(){
    2. LeanTween.delayedCall(0.05f, enterMiniGameStart).setOnCompleteParam( new object[]{""+5} );
    3. }
    4.  
    5. void enterMiniGameStart( object val ){
    6.         object[] arr = (object [])val;
    7.         int lvl = int.Parse((string)arr[0]);
    8.         Debug.Log("level:"+lvl);
    9.     }
     
  28. FlyingRobot

    FlyingRobot

    Joined:
    May 5, 2012
    Posts:
    456
    Hello dentedpixel,

    Thanks for the awesome job you did with LeanTween. I'm really a fan of your works. And also a fan of PlayMaker.

    I've made and just submitted a set of LeanTween Actions for PlayMaker to AssetStore. Waiting for their approval.
    I was wondering you can help in integrating the rest of the features into these.

    The Actions I covered in the initial release are

    LeanTweenAlpha
    LeanTweenAlphaVertex
    LeanTweenCancel
    LeanTweenIsTweening
    LeanTweenMove
    LeanTweenMoveAlongPath
    LeanTweenMoveAlongWaypoints (A modified versionf of prev action to use gameobjects as path nodes)
    LeanTweenMoveLocal
    LeanTweenMoveLocalAlongPath
    LeanTweenMoveSpline
    LeanTweenMoveSplineLocal
    LeanTweenMoveX/Y/Z
    LeanTweenPause
    LeanTweenResume
    LeanTweenRotate
    LeanTweenRotateAround
    LeanTweenRotateLocal
    LeanTweenRotateX/Y/Z
    LeanTweenScale
    LeanTweenScaleX/Y/Z
    LeanTweenValue

    I'll be glad if you have some time to look at their implementation. The combination of LeanTween and PlayMaker is really awesome.
    Let me know, I'll send you the actions.
     
  29. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Hey FlyingRobot!

    That's awesome, I know PlayMaker support has been an often requested feature, but because I had never used it before, it was kind of low on my list of things to do. So I am glad you were able to help fill that gap.

    I would be happy to look at the code. I am not too familiar with PlayMaker per se, but of course I can help you with the LeanTween part :)
     
  30. FlyingRobot

    FlyingRobot

    Joined:
    May 5, 2012
    Posts:
    456
    Great!. I've PM'd you the actions. Please take a look at them. I've not used hashtables, so that the actions can also work in windows phone. You will find an example scene with the actions working.

    Let me know if some problem is there, I'll update the PlayMaker Package.

    Thanks for making such an awesome engine.
     
  31. FlyingRobot

    FlyingRobot

    Joined:
    May 5, 2012
    Posts:
    456
    dentedpixel likes this.
  32. SoftwareLogicAU

    SoftwareLogicAU

    Joined:
    Mar 30, 2014
    Posts:
    34
    Hi, any progress yet on the setOrientToPath2D issue? Thanks.
     
  33. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Hey SoftwareLogicAU,

    Yes, I made some progress on that this weekend. I was sure, I had already responded to your thread telling you about the update but now I can't find it :-/

    The update can be found on github, and it was done in the manner you had suggested. Check out the ExampleSpline2d for an example (I had to do the sprites in all code to keep compatibility for pre 4.3). I think there still may need to be some tweaking for instances when the path doesn't face in the expected direction... but it's a start, please let me know...
     
  34. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Awesome! I hope this turns on a lot of PlayMaker folks to LeanTween :)
     
  35. SoftwareLogicAU

    SoftwareLogicAU

    Joined:
    Mar 30, 2014
    Posts:
    34
    Thanks, but I can't see any new files on there - are you sure you've updated it on github??
     
  36. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Sorry, I forgot to sync my code after commiting it :-/. It should be up there now...
     
  37. SoftwareLogicAU

    SoftwareLogicAU

    Joined:
    Mar 30, 2014
    Posts:
    34
    Hi,

    Thanks for your efforts! I tried your new script, but sorry to say it doesn't work (the sprite is still side on).

    I had this (which works):
    Vector3 v3Dir = point( ratio ) - transform.position;
    var angle = Mathf.Atan2(v3Dir.y, v3Dir.x) * Mathf.Rad2Deg;
    transform.eulerAngles = new Vector3(0, 0, angle-90);

    But your new script has this (which doesn't work):

    float angle = Vector3.Angle(transform.position, point( ratio ) - transform.position );
    transform.rotation = Quaternion.identity;
    transform.RotateAround(transform.position, Vector3.right, angle);

    RotateAround doesn't work in this scenario, which is why it needs the Mathf.Atan2 and eulerAngles functions to make it work. I modified your new script locally to use the Mathf.Atan2 solution and it works again with that, so we're nearly there....

    Can you try again, using the Mathf.Atan2 / eulerAngles solution?

    Thanks.
     
  38. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Ok great, I think I was trying to overcomplicate the solution.

    I put your code in and synced it up to github, let me know if that solution now works. I will do some testing of my own as well...
     
  39. SoftwareLogicAU

    SoftwareLogicAU

    Joined:
    Mar 30, 2014
    Posts:
    34
    Thanks heaps, works well now...
     
    dentedpixel likes this.
  40. rxmarccall

    rxmarccall

    Joined:
    Oct 13, 2011
    Posts:
    353
    Hi, I've just downloaded LeanTween from the asset store, and just after importing the asset I get errors from the get go.... before I even try using it. I'm running unity 4.3.4f1

    getting error: "
    Assets/LeanTween/LeanTweenExamples/Scripts/EventListenersScatteredJS.js(30,20): BCE0018: The name 'LTEvent' does not denote a valid type ('not found').
    "

    Any help would be great, would love to start using this tool!
     
  41. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Hi RXMarccall,
    You need to move the Plugins folder in the root of your Assets folder. This is also explained in further detail in the ReadMe file. That should clear up any of those errors. I hope that helps!
     
  42. Axel-F

    Axel-F

    Joined:
    Mar 20, 2009
    Posts:
    223
    Hi,
    I'm in the progress of changing an iTween project of mine to LeanTween and I wonder if I can set a constant speed as with iTween? I know I can set the time a path should take to complete but what about a constant speed no matter how long a path is or how many waypoints it may consist of?

    Thanks!
     
  43. Axel-F

    Axel-F

    Joined:
    Mar 20, 2009
    Posts:
    223
    Well, got it working by setting the time/speed for a path relative to its distance.

    But another "problem". Due to the need of bezier or spline coords I find it really complicated to realize a simple smooth path if all I have are the Vector3 coords of the path.
    I've read in this Twitter post from dentedpixel "Catmull-Rom" has already been implemented in LeanTween, but I can't find this feature even in the latest GitHub version?
     
  44. Marble

    Marble

    Joined:
    Aug 29, 2005
    Posts:
    1,268
    Can you set the control points of your spline to be the same as the first and last positions? Correct me if I'm wrong, but when doing so your splines should behave like Catmull-Rom.
     
  45. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Hey Axel,

    I am glad you figured out the constant speed part. Yeah bezier curves can be a bit of a pain. You can use the cat-mull splines by using the moveSpline methods. I hope that helps!
     
  46. Axel-F

    Axel-F

    Joined:
    Mar 20, 2009
    Posts:
    223
    Thanks for your idea with moveSpline, but for some reason I don't get the result I was expecting. What exactly are these control points for? With iTween I simply was using my vector3 waypoints for the path animation. Exactly the level of simplicity I need...this math stuff is evil... ;)
     
  47. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Yeah, you can likewise just define the curve by the points it passes through:

    ex: ControlStart,Pt1,Pt2,Pt3,.. ..ControlEnd

    The one catch though is the control points, this just defines how the angle of how the curves start and stop. If you don't care about this, you can just make them the same values as the first and ending point ie:

    Pt1, Pt1, Pt2, Pt3,.. ..Pt10, Pt10
     
  48. dlmrky

    dlmrky

    Joined:
    Nov 26, 2013
    Posts:
    13
    That's a good point. What is the reason LeanTween doesn't have popular iTween functions like MoveAdd, MoveBy, ShakePosition ... etc? Will these eventually come to LeanTween?
     
  49. dentedpixel

    dentedpixel

    Joined:
    Jul 15, 2012
    Posts:
    683
    Hi DLMRKY,

    I am definitely not against adding new features when it is well warranted, but I try to add only the ones that are actually useful. For methods like MoveAdd, MoveBy you can get away with just using my standard Move method, and do a little vector math to get a relative move by (or use moveLocal). ShakePosition, can be simulated with a repeating tween (see ExampleCameraShake example).

    I just want to keep the library as Lean as possible without adding unnecessary cruft, both for speed reasons and to not get lost in having too many functions and not knowing which one is right.

    But I am definitely not against new methods, I just have to hear a good argument for it first...
     
  50. kurayami88

    kurayami88

    Joined:
    Aug 30, 2013
    Posts:
    493
    Hi,

    as much as i love LeanTween, i encounter a fatal flaw that would not allow me to continue it's usage until it's resolved...
    I believe the issue ( or similar) has been addressed before but here me out anyway..

    Now, i'm not 100% sure what the cause it as i'm just guessing, but it seems like it has something to do with the uniqueID assigned or at least the tweenID LeanTween uses internally to keep track of itself...
    after a period of 'heavy usage'... i.e., lots of tweens ( tween and finished, then new tweens and cycle continues) and using up the ID slots. it seems LeanTween goes wonky after a limit has been reached.

    Now, it doesn't stop completely... and standard 1-off individual tweens still work. however LeanTween can't keep track of itself anymore. loops that have been assigned and cancelled use to stop, but after the 'bug', it won't stop anymore and continue looping... as the loop is gameobject specific, the affected gameObject continues the tween loop whilst new loops are started on new targeted gameObject but does not tween properly (i.e., i have rotate and size loop to run simultaneously, but rotate loop starts while size loop stalls... then perhaps after awhile the size loop kicks in) ... all this, while previous loops that are meant to be cancelled are still running.

    mind you this does not happen when the game is fresh (aka LeanTween script is also fresh)... reloading scenes (while LeanTween is no longer fresh, and bugged already) will start bug tweens even at the very beginning of a newly loaded scene ( new scene, but game is still on the same runtime).

    ------------

    the only way to clear the bug is to close the game and re-launch... then everything is back to normal.... up until the limit is reached and then it bugs...
    mind you the limit is reasonably high... but it gets there quite fast if a lot of tweens are actively been created.

    any thoughts or feedbacks or further clarification needed pls do tell.
    TQ~