| | |
| | | case WrapMode.PingPong: |
| | | t = Mathf.PingPong((accumulatedTime / duration) * curveLength, 1); |
| | | break; |
| | | case WrapMode.PingPongOnce: |
| | | t = Mathf.PingPong((accumulatedTime / (duration/2)) * curveLength, 1); |
| | | break; |
| | | } |
| | | |
| | | var value = curve.Evaluate(reversal ? curveLength - t : t); |
| | |
| | | switch (wrapMode) |
| | | { |
| | | case WrapMode.Once: |
| | | if (t > curveLength && doTween) |
| | | case WrapMode.PingPongOnce: |
| | | if (accumulatedTime > duration && doTween) |
| | | { |
| | | OnOnceEnd(); |
| | | doTween = false; |
| | |
| | | |
| | | protected virtual void OnOnceEnd() |
| | | { |
| | | if (wrapMode == WrapMode.PingPongOnce) |
| | | { |
| | | SetStartState(); |
| | | } |
| | | else |
| | | { |
| | | canvasGroup.alpha = reversal ? from : to; |
| | | } |
| | | |
| | | |
| | | if (onPlayEndCallBack != null) |
| | | { |
| | | onPlayEndCallBack(); |
| | |
| | | Once, |
| | | Loop, |
| | | PingPong, |
| | | PingPongOnce, |
| | | } |
| | | |
| | | } |