mirror of
https://github.com/Cardidi/dotween-upm-fork.git
synced 2025-12-20 01:06:02 +08:00
[BUGFIX] Fixed OnWaypointChange being called multiple times (as if the tween was going backwards) when restarting a path loop set to Restart
This commit is contained in:
parent
acacc85b29
commit
3b1a1b3599
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -11,6 +11,7 @@ public class PathsBezier : BrainBase
|
|||||||
public Ease easeType = Ease.Linear;
|
public Ease easeType = Ease.Linear;
|
||||||
public bool loop = true;
|
public bool loop = true;
|
||||||
public LoopType loopType = LoopType.Restart;
|
public LoopType loopType = LoopType.Restart;
|
||||||
|
public PathType pathType = PathType.CubicBezier;
|
||||||
public int wpsToUse = 0;
|
public int wpsToUse = 0;
|
||||||
public Vector3[] wps0 = new[] {
|
public Vector3[] wps0 = new[] {
|
||||||
new Vector3(1, 1, 0), // wp
|
new Vector3(1, 1, 0), // wp
|
||||||
@ -61,7 +62,8 @@ public class PathsBezier : BrainBase
|
|||||||
|
|
||||||
Debug.Log("Creating CubicBezier path");
|
Debug.Log("Creating CubicBezier path");
|
||||||
Vector3[] wps = wpsToUse == 0 ? wps0 : wpsToUse == 1 ? wps1 : wps2;
|
Vector3[] wps = wpsToUse == 0 ? wps0 : wpsToUse == 1 ? wps1 : wps2;
|
||||||
target.DOPath(wps, duration, PathType.CubicBezier).SetOptions(closedPath).SetLookAt(0.001f)
|
target.DOPath(wps, duration, pathType).SetOptions(closedPath).SetLookAt(0.001f)
|
||||||
.SetLoops(loop ? -1 : 1, loopType).SetEase(easeType);
|
.SetLoops(loop ? -1 : 1, loopType).SetEase(easeType)
|
||||||
|
.OnWaypointChange(x=> Debug.Log("Waypoint changed ► " + x));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Binary file not shown.
@ -32,7 +32,7 @@ namespace DG.Tweening
|
|||||||
public class DOTween
|
public class DOTween
|
||||||
{
|
{
|
||||||
/// <summary>DOTween's version</summary>
|
/// <summary>DOTween's version</summary>
|
||||||
public static readonly string Version = "1.2.210"; // Last version before modules: 1.1.755
|
public static readonly string Version = "1.2.211"; // Last version before modules: 1.1.755
|
||||||
|
|
||||||
///////////////////////////////////////////////
|
///////////////////////////////////////////////
|
||||||
// Options ////////////////////////////////////
|
// Options ////////////////////////////////////
|
||||||
|
|||||||
@ -137,12 +137,20 @@ namespace DG.Tweening.Plugins
|
|||||||
t.miscInt = newWaypointIndex;
|
t.miscInt = newWaypointIndex;
|
||||||
if (t.onWaypointChange != null) {
|
if (t.onWaypointChange != null) {
|
||||||
// If more than one waypoint changed, dispatch multiple callbacks
|
// If more than one waypoint changed, dispatch multiple callbacks
|
||||||
bool isBackwards = newWaypointIndex < prevWPIndex;
|
// bool isBackwards = newWaypointIndex < prevWPIndex;
|
||||||
|
bool isBackwards = t.isBackwards;
|
||||||
|
if (t.loopType == LoopType.Yoyo) {
|
||||||
|
isBackwards = !t.isBackwards && t.loops > 1 && t.completedLoops % 2 != 0
|
||||||
|
|| t.isBackwards && t.loops > 1 && t.completedLoops % 2 == 0;
|
||||||
|
}
|
||||||
if (isBackwards) {
|
if (isBackwards) {
|
||||||
|
// for (int i = prevWPIndex - 1; i > newWaypointIndex - 1; --i) Tween.OnTweenCallback(t.onWaypointChange, i);
|
||||||
for (int i = prevWPIndex - 1; i > newWaypointIndex - 1; --i) Tween.OnTweenCallback(t.onWaypointChange, i);
|
for (int i = prevWPIndex - 1; i > newWaypointIndex - 1; --i) Tween.OnTweenCallback(t.onWaypointChange, i);
|
||||||
} else {
|
} else {
|
||||||
for (int i = prevWPIndex + 1; i < newWaypointIndex + 1; ++i) Tween.OnTweenCallback(t.onWaypointChange, i);
|
// for (int i = prevWPIndex + 1; i < newWaypointIndex + 1; ++i) Tween.OnTweenCallback(t.onWaypointChange, i);
|
||||||
|
for (int i = prevWPIndex + 1; i < newWaypointIndex; ++i) Tween.OnTweenCallback(t.onWaypointChange, i);
|
||||||
}
|
}
|
||||||
|
Tween.OnTweenCallback(t.onWaypointChange, newWaypointIndex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user