1
0
mirror of https://github.com/Cardidi/dotween-upm-fork.git synced 2025-12-20 01:06:02 +08:00

Fix for Flash ease not appearing fluid when moving slowly

This commit is contained in:
Demigiant 2015-12-08 12:37:59 +01:00
parent c3c28dd915
commit 85d2e96502
50 changed files with 46 additions and 22 deletions

View File

@ -2040,16 +2040,16 @@
<summary>Sets the ease of the tween.
<para>If applied to Sequences eases the whole sequence animation</para></summary>
<param name="overshoot">
Eventual overshoot to use with Back or Flash ease (default is 1.70158).
<para>In case of Flash ease it sets the total number of flashes that will happen.
Eventual overshoot to use with Back or Flash ease (default is 1.70158 - 1 for Flash).
<para>In case of Flash ease it must be an intenger and sets the total number of flashes that will happen.
Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value.</para>
</param>
</member>
<member name="M:DG.Tweening.TweenSettingsExtensions.SetEase``1(``0,DG.Tweening.Ease,System.Single,System.Single)">
<summary>Sets the ease of the tween.
<para>If applied to Sequences eases the whole sequence animation</para></summary>
<param name="amplitude">Eventual amplitude to use with Elastic easeType or overshoot to use with Flash easeType (default is 1.70158).
<para>In case of Flash ease it sets the total number of flashes that will happen.
<param name="amplitude">Eventual amplitude to use with Elastic easeType or overshoot to use with Flash easeType (default is 1.70158 - 1 for Flash).
<para>In case of Flash ease it must be an integer and sets the total number of flashes that will happen.
Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value.</para>
</param>
<param name="period">Eventual period to use with Elastic or Flash easeType (default is 0).

View File

@ -2040,16 +2040,16 @@
<summary>Sets the ease of the tween.
<para>If applied to Sequences eases the whole sequence animation</para></summary>
<param name="overshoot">
Eventual overshoot to use with Back or Flash ease (default is 1.70158).
<para>In case of Flash ease it sets the total number of flashes that will happen.
Eventual overshoot to use with Back or Flash ease (default is 1.70158 - 1 for Flash).
<para>In case of Flash ease it must be an intenger and sets the total number of flashes that will happen.
Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value.</para>
</param>
</member>
<member name="M:DG.Tweening.TweenSettingsExtensions.SetEase``1(``0,DG.Tweening.Ease,System.Single,System.Single)">
<summary>Sets the ease of the tween.
<para>If applied to Sequences eases the whole sequence animation</para></summary>
<param name="amplitude">Eventual amplitude to use with Elastic easeType or overshoot to use with Flash easeType (default is 1.70158).
<para>In case of Flash ease it sets the total number of flashes that will happen.
<param name="amplitude">Eventual amplitude to use with Elastic easeType or overshoot to use with Flash easeType (default is 1.70158 - 1 for Flash).
<para>In case of Flash ease it must be an integer and sets the total number of flashes that will happen.
Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value.</para>
</param>
<param name="period">Eventual period to use with Elastic or Flash easeType (default is 0).

View File

@ -2040,16 +2040,16 @@
<summary>Sets the ease of the tween.
<para>If applied to Sequences eases the whole sequence animation</para></summary>
<param name="overshoot">
Eventual overshoot to use with Back or Flash ease (default is 1.70158).
<para>In case of Flash ease it sets the total number of flashes that will happen.
Eventual overshoot to use with Back or Flash ease (default is 1.70158 - 1 for Flash).
<para>In case of Flash ease it must be an intenger and sets the total number of flashes that will happen.
Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value.</para>
</param>
</member>
<member name="M:DG.Tweening.TweenSettingsExtensions.SetEase``1(``0,DG.Tweening.Ease,System.Single,System.Single)">
<summary>Sets the ease of the tween.
<para>If applied to Sequences eases the whole sequence animation</para></summary>
<param name="amplitude">Eventual amplitude to use with Elastic easeType or overshoot to use with Flash easeType (default is 1.70158).
<para>In case of Flash ease it sets the total number of flashes that will happen.
<param name="amplitude">Eventual amplitude to use with Elastic easeType or overshoot to use with Flash easeType (default is 1.70158 - 1 for Flash).
<para>In case of Flash ease it must be an integer and sets the total number of flashes that will happen.
Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value.</para>
</param>
<param name="period">Eventual period to use with Elastic or Flash easeType (default is 0).

View File

@ -10,11 +10,15 @@ using UnityEngine.UI;
public class TempTests : BrainBase
{
public Transform target;
public float duration = 8;
public Ease ease;
public float amplitude = 8;
public float period = 1;
IEnumerator Start()
{
yield return new WaitForSeconds(0.5f);
target.DOMoveY(2, 5).SetRelative().SetEase(Ease.InOutFlash, 8, 1);
target.DOMoveY(2, duration).SetRelative().SetEase(ease, amplitude, period);
}
}

View File

@ -345,5 +345,17 @@ namespace DG.Tweening.Core.Easing
return (float time, float duration, float overshootOrAmplitude, float period) => -(time /= duration) * (time - 2);
}
}
internal static bool IsFlashEase(Ease ease)
{
switch (ease) {
case Ease.Flash:
case Ease.InFlash:
case Ease.OutFlash:
case Ease.InOutFlash:
return true;
}
return false;
}
}
}

View File

@ -64,6 +64,10 @@ namespace DG.Tweening.Core.Easing
{
float easedRes = 0;
float finalDecimals = 0;
// Use previous stepIndex in case of odd ones, so that back ease is not clamped
if (dir > 0 && (int)overshootOrAmplitude % 2 == 0) stepIndex++;
else if (dir < 0 && (int)overshootOrAmplitude % 2 != 0) stepIndex++;
if (period > 0) {
float finalTruncated = (float)Math.Truncate(overshootOrAmplitude);
finalDecimals = overshootOrAmplitude - finalTruncated;

View File

@ -32,7 +32,7 @@ namespace DG.Tweening
public class DOTween
{
/// <summary>DOTween's version</summary>
public static readonly string Version = "1.1.140";
public static readonly string Version = "1.1.145";
///////////////////////////////////////////////
// Options ////////////////////////////////////

View File

@ -121,14 +121,16 @@ namespace DG.Tweening
if (t == null || !t.active) return t;
t.easeType = ease;
if (EaseManager.IsFlashEase(ease)) t.easeOvershootOrAmplitude = (int)t.easeOvershootOrAmplitude;
t.customEase = null;
return t;
}
/// <summary>Sets the ease of the tween.
/// <para>If applied to Sequences eases the whole sequence animation</para></summary>
/// <param name="overshoot">
/// Eventual overshoot to use with Back or Flash ease (default is 1.70158).
/// <para>In case of Flash ease it sets the total number of flashes that will happen.
/// Eventual overshoot to use with Back or Flash ease (default is 1.70158 - 1 for Flash).
/// <para>In case of Flash ease it must be an intenger and sets the total number of flashes that will happen.
/// Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value.</para>
/// </param>
public static T SetEase<T>(this T t, Ease ease, float overshoot) where T : Tween
@ -136,14 +138,15 @@ namespace DG.Tweening
if (t == null || !t.active) return t;
t.easeType = ease;
if (EaseManager.IsFlashEase(ease)) overshoot = (int)overshoot;
t.easeOvershootOrAmplitude = overshoot;
t.customEase = null;
return t;
}
/// <summary>Sets the ease of the tween.
/// <para>If applied to Sequences eases the whole sequence animation</para></summary>
/// <param name="amplitude">Eventual amplitude to use with Elastic easeType or overshoot to use with Flash easeType (default is 1.70158).
/// <para>In case of Flash ease it sets the total number of flashes that will happen.
/// <param name="amplitude">Eventual amplitude to use with Elastic easeType or overshoot to use with Flash easeType (default is 1.70158 - 1 for Flash).
/// <para>In case of Flash ease it must be an integer and sets the total number of flashes that will happen.
/// Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value.</para>
/// </param>
/// <param name="period">Eventual period to use with Elastic or Flash easeType (default is 0).
@ -155,6 +158,7 @@ namespace DG.Tweening
if (t == null || !t.active) return t;
t.easeType = ease;
if (EaseManager.IsFlashEase(ease)) amplitude = (int)amplitude;
t.easeOvershootOrAmplitude = amplitude;
t.easePeriod = period;
t.customEase = null;

View File

@ -2040,16 +2040,16 @@
<summary>Sets the ease of the tween.
<para>If applied to Sequences eases the whole sequence animation</para></summary>
<param name="overshoot">
Eventual overshoot to use with Back or Flash ease (default is 1.70158).
<para>In case of Flash ease it sets the total number of flashes that will happen.
Eventual overshoot to use with Back or Flash ease (default is 1.70158 - 1 for Flash).
<para>In case of Flash ease it must be an intenger and sets the total number of flashes that will happen.
Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value.</para>
</param>
</member>
<member name="M:DG.Tweening.TweenSettingsExtensions.SetEase``1(``0,DG.Tweening.Ease,System.Single,System.Single)">
<summary>Sets the ease of the tween.
<para>If applied to Sequences eases the whole sequence animation</para></summary>
<param name="amplitude">Eventual amplitude to use with Elastic easeType or overshoot to use with Flash easeType (default is 1.70158).
<para>In case of Flash ease it sets the total number of flashes that will happen.
<param name="amplitude">Eventual amplitude to use with Elastic easeType or overshoot to use with Flash easeType (default is 1.70158 - 1 for Flash).
<para>In case of Flash ease it must be an integer and sets the total number of flashes that will happen.
Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value.</para>
</param>
<param name="period">Eventual period to use with Elastic or Flash easeType (default is 0).

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.