There seems to be an inconsistency in NGUI 3.0.0c when using UIPlayTween's. I believe the fix is relatively simple but thought I'd question the behaviour before putting up a pull request.
The issue seems to be how and when a play tween resets when the tween has finished and the following use cases should show the behaviour
First Use Case
* Create a UIPlayTween that triggers a Tween Position
* Set the UIPlayTween properties Direction: Forward, If Disabled: Enable, If Playing: Restart, When Finished: Don't disable
* Trigger the tween, let it finish
Triggering it again shows the problem. It begins at the start point, but doesn't perform the tween. I believe this is due to 'if (resetOnPlay) tw.Reset();' in UIPlayTween.cs being on line 271 rather than 267 (making this change fixes the problem).
Second Use Case
* Create a UIPlayTween that triggers a Tween Position
* Set the UIPlayTween properties Direction: Forward, If Disabled: Enable, If Playing: Continue, When Finished: Don't disable
* Trigger the tween, let it finish
Triggering it again shows another problem. It doesn't replay the tween, it just places the widget at the end of the tween. I assume this is because of the 'If Playing: Continue' but the tween is not playing, it's finished.
I expected the behaviour of this to be
* If never played, plays from start to finish
* If in the middle of playing, continues from where it is (i.e. ignored the additional play)
* If finished, it replays the tween from the start
At the moment I can't get this behaviour. If I set 'If Playing: Restart', the first and last points work (with the bug fix from the first point anyway) but the second will restart the tween rather than ignore it.
From the naming of the property (If Playing), I'd expect it to restart from the beginning once it's finished as it is no longer playing.
Thanks