diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll
index 1b93c17..434f9b6 100644
Binary files a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll and b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll differ
diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll.mdb b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll.mdb
index 0d8a8ce..839c504 100644
Binary files a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll.mdb and b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll.mdb differ
diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll
index edd8d9b..8cff892 100644
Binary files a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll and b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll differ
diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb
index 152c979..354ba05 100644
Binary files a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb and b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb differ
diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML
deleted file mode 100644
index 02c3c95..0000000
--- a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
- DOTweenUpgradeManager
-
-
-
-
- This class and its whole library are deleted the first time DOTween's setup is run after an upgrade (or after a new install).
- NOTE: DidReloadScripts doesn't work on first install so it's useless, InitializeOnLoad is the only way
-
-
-
-
diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll
deleted file mode 100644
index 25f01d2..0000000
Binary files a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll and /dev/null differ
diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb
deleted file mode 100644
index 358729d..0000000
Binary files a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb and /dev/null differ
diff --git a/UnityTests.Unity5/Assets/_Tests/EmptySequences.cs b/UnityTests.Unity5/Assets/_Tests/EmptySequences.cs
new file mode 100644
index 0000000..1524cc7
--- /dev/null
+++ b/UnityTests.Unity5/Assets/_Tests/EmptySequences.cs
@@ -0,0 +1,69 @@
+using System.Collections;
+using System.Collections.Generic;
+using DG.Tweening;
+using UnityEngine;
+
+public class EmptySequences : BrainBase
+{
+ public Transform target;
+ public bool nullifyTarget = false;
+ public bool createSequenceA, createSequenceB, createTweenT;
+ public bool appendAToParent, appendBToParent, appendTToParent;
+ public int loopParent = 1;
+ public LoopType loopType = LoopType.Restart;
+
+ IEnumerator Start()
+ {
+ if (nullifyTarget) target = null;
+
+ yield return new WaitForSeconds(0.75f);
+
+ Sequence a = null;
+ Sequence b = null;
+ Tween t = null;
+
+ if (createSequenceA) {
+ a = DOTween.Sequence()
+ .AppendCallback(() => Debug.Log("A callback 1/2"))
+// .AppendInterval(1f)
+ .AppendCallback(() => Debug.Log("A callback 2/2 (1 sec delay)"))
+ .OnStart(() => Debug.Log("A OnStart"))
+ .OnStepComplete(() => Debug.Log("A OnStepComplete"))
+ .OnComplete(() => Debug.Log("A OnComplete"))
+ .OnKill(() => Debug.Log("A OnKill"));
+ }
+ if (createSequenceB) {
+ b = DOTween.Sequence()
+ .Append(target.DOMoveX(3, 0))
+ .OnStart(() => Debug.Log("B OnStart"))
+ .OnStepComplete(() => Debug.Log("B OnStepComplete"))
+ .OnComplete(() => Debug.Log("B OnComplete"))
+ .OnKill(() => Debug.Log("B OnKill"));
+ }
+ if (createTweenT) {
+ t = target.DOMoveY(3, 0)
+ .OnStart(() => Debug.Log("T OnStart"))
+ .OnStepComplete(() => Debug.Log("T OnStepComplete"))
+ .OnComplete(() => Debug.Log("T OnComplete"))
+ .OnKill(() => Debug.Log("T OnKill"));
+ }
+ if (appendAToParent || appendBToParent || appendTToParent) {
+ Sequence parent = DOTween.Sequence();
+ if (a != null && appendAToParent) parent.Append(a);
+ if (b != null && appendBToParent) parent.Append(b);
+ if (t != null && appendTToParent) parent.Append(t);
+ if (loopParent > 1 || loopParent == -1) parent.SetLoops(loopParent, loopType);
+ parent
+// .AppendInterval(1f)
+ .AppendCallback(() => Debug.Log("PARENT callback 1/3 (1 sec delay)"))
+// .AppendInterval(1f)
+ .AppendCallback(() => Debug.Log("PARENT callback 2/3 (1 sec delay after prev)"))
+// .AppendInterval(0.0001f)
+ .AppendCallback(() => Debug.Log("PARENT callback 3/3 (0.0001 sec delay after prev, right at end of Sequence)"))
+ .OnStart(() => Debug.Log("PARENT OnStart"))
+ .OnStepComplete(() => Debug.Log("PARENT OnStepComplete"))
+ .OnComplete(() => Debug.Log("PARENT OnComplete"))
+ .OnKill(() => Debug.Log("PARENT OnKill"));
+ }
+ }
+}
\ No newline at end of file
diff --git a/UnityTests.Unity5/Assets/_Tests/EmptySequences.cs.meta b/UnityTests.Unity5/Assets/_Tests/EmptySequences.cs.meta
new file mode 100644
index 0000000..5361945
--- /dev/null
+++ b/UnityTests.Unity5/Assets/_Tests/EmptySequences.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 6c3a362fa0006da44a5b890fc1f85e47
+timeCreated: 1533629018
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/UnityTests.Unity5/Assets/_Tests/EmptySequences.unity b/UnityTests.Unity5/Assets/_Tests/EmptySequences.unity
new file mode 100644
index 0000000..2eae531
Binary files /dev/null and b/UnityTests.Unity5/Assets/_Tests/EmptySequences.unity differ
diff --git a/UnityTests.Unity5/Assets/_Tests/EmptySequences.unity.meta b/UnityTests.Unity5/Assets/_Tests/EmptySequences.unity.meta
new file mode 100644
index 0000000..3ae4db4
--- /dev/null
+++ b/UnityTests.Unity5/Assets/_Tests/EmptySequences.unity.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: edc73fd9a50533b4e85686c195446773
+timeCreated: 1533629002
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/_DOTween.Assembly/DOTween/Core/DOTweenComponent.cs b/_DOTween.Assembly/DOTween/Core/DOTweenComponent.cs
index 469f3ab..1445491 100644
--- a/_DOTween.Assembly/DOTween/Core/DOTweenComponent.cs
+++ b/_DOTween.Assembly/DOTween/Core/DOTweenComponent.cs
@@ -114,7 +114,7 @@ namespace DG.Tweening.Core
if (_duplicateToDestroy) return;
if (DOTween.showUnityEditorReport) {
- string s = "REPORT > Max overall simultaneous active Tweeners/Sequences: " + DOTween.maxActiveTweenersReached + "/" + DOTween.maxActiveSequencesReached;
+ string s = "Max overall simultaneous active Tweeners/Sequences: " + DOTween.maxActiveTweenersReached + "/" + DOTween.maxActiveSequencesReached;
Debugger.LogReport(s);
}
// DOTween.initialized = false;
diff --git a/_DOTween.Assembly/DOTween/Core/Debugger.cs b/_DOTween.Assembly/DOTween/Core/Debugger.cs
index e90cae7..f3f6fd6 100644
--- a/_DOTween.Assembly/DOTween/Core/Debugger.cs
+++ b/_DOTween.Assembly/DOTween/Core/Debugger.cs
@@ -17,22 +17,24 @@ namespace DG.Tweening.Core
// 0: errors only - 1: default - 2: verbose
public static int logPriority;
+ const string _LogPrefix = "DOTWEEN ► ";
+
public static void Log(object message)
{
- Debug.Log("DOTWEEN :: " + message);
+ Debug.Log(_LogPrefix + message);
}
public static void LogWarning(object message)
{
- Debug.LogWarning("DOTWEEN :: " + message);
+ Debug.LogWarning(_LogPrefix + message);
}
public static void LogError(object message)
{
- Debug.LogError("DOTWEEN :: " + message);
+ Debug.LogError(_LogPrefix + message);
}
public static void LogReport(object message)
{
- Debug.Log("DOTWEEN :: " + message + "");
+ Debug.Log(string.Format("{0} REPORT ► {1}", _LogPrefix, message));
}
public static void LogInvalidTween(Tween t)
diff --git a/_DOTween.Assembly/DOTween/DOTween.cs b/_DOTween.Assembly/DOTween/DOTween.cs
index 4f79dd3..0a0a665 100644
--- a/_DOTween.Assembly/DOTween/DOTween.cs
+++ b/_DOTween.Assembly/DOTween/DOTween.cs
@@ -32,7 +32,7 @@ namespace DG.Tweening
public class DOTween
{
/// DOTween's version
- public static readonly string Version = "1.2.055"; // Last version before modules: 1.1.755
+ public static readonly string Version = "1.2.060"; // Last version before modules: 1.1.755
///////////////////////////////////////////////
// Options ////////////////////////////////////
diff --git a/_DOTween.Assembly/DOTween/Sequence.cs b/_DOTween.Assembly/DOTween/Sequence.cs
index cd592dd..6759367 100644
--- a/_DOTween.Assembly/DOTween/Sequence.cs
+++ b/_DOTween.Assembly/DOTween/Sequence.cs
@@ -266,7 +266,14 @@ namespace DG.Tweening
Tween t = (Tween)sequentiable;
if (!t.startupDone) continue; // since we're going backwards and this tween never started just ignore it
t.isBackwards = true;
- if (TweenManager.Goto(t, gotoPos, false, updateMode)) return true;
+ if (TweenManager.Goto(t, gotoPos, false, updateMode)) {
+ // Nested tween failed. Remove it from Sequence and continue
+ // (instead of just returning TRUE, which would kill the whole Sequence as before v1.2.060)
+ TweenManager.Despawn(t, false);
+ s._sequencedObjs.RemoveAt(i);
+ --i; --len;
+ continue;
+ }
// Fixes nested callbacks not being called correctly if main sequence has loops and nested ones don't
if (multiCycleStep && t.tweenType == TweenType.Sequence) {
@@ -314,7 +321,14 @@ namespace DG.Tweening
}
//
t.isBackwards = false;
- if (TweenManager.Goto(t, gotoPos, false, updateMode)) return true;
+ if (TweenManager.Goto(t, gotoPos, false, updateMode)) {
+ // Nested tween failed. Remove it from Sequence and continue
+ // (instead of just returning TRUE, which would kill the whole Sequence as before v1.2.060)
+ TweenManager.Despawn(t, false);
+ s._sequencedObjs.RemoveAt(i);
+ --i; --len;
+ continue;
+ }
// Fixes nested callbacks not being called correctly if main sequence has loops and nested ones don't
if (multiCycleStep && t.tweenType == TweenType.Sequence) {
diff --git a/_DOTween.Assembly/DOTween/Tween.cs b/_DOTween.Assembly/DOTween/Tween.cs
index a89e69e..5b58ee3 100644
--- a/_DOTween.Assembly/DOTween/Tween.cs
+++ b/_DOTween.Assembly/DOTween/Tween.cs
@@ -280,7 +280,9 @@ namespace DG.Tweening
try {
callback();
} catch (Exception e) {
- Debugger.LogWarning("An error inside a tween callback was silently taken care of > " + e.Message + "\n\n" + e.StackTrace + "\n\n");
+ Debugger.LogWarning(string.Format(
+ "An error inside a tween callback was silently taken care of ({0}) ► {1}\n\n{2}\n\n", e.TargetSite, e.Message, e.StackTrace
+ ));
return false; // Callback error
}
} else callback();
@@ -292,7 +294,9 @@ namespace DG.Tweening
try {
callback(param);
} catch (Exception e) {
- Debugger.LogWarning("An error inside a tween callback was silently taken care of > " + e.Message);
+ Debugger.LogWarning(string.Format(
+ "An error inside a tween callback was silently taken care of ({0}) ► {1}", e.TargetSite, e.Message
+ ));
return false; // Callback error
}
} else callback(param);
diff --git a/_DOTween.Assembly/DOTween/Tweener.cs b/_DOTween.Assembly/DOTween/Tweener.cs
index 64804e5..e554494 100644
--- a/_DOTween.Assembly/DOTween/Tweener.cs
+++ b/_DOTween.Assembly/DOTween/Tweener.cs
@@ -4,6 +4,9 @@
// License Copyright (c) Daniele Giardini.
// This work is subject to the terms at http://dotween.demigiant.com/license.php
+
+using System;
+using System.Collections;
#if COMPATIBLE
using DOVector3 = DG.Tweening.Core.Surrogates.Vector3Wrapper;
using DOQuaternion = DG.Tweening.Core.Surrogates.QuaternionWrapper;
@@ -130,7 +133,10 @@ namespace DG.Tweening
if (DOTween.useSafeMode) {
try {
t.startValue = t.tweenPlugin.ConvertToStartValue(t, t.getter());
- } catch {
+ } catch (Exception e) {
+ Debugger.LogWarning(string.Format(
+ "Tween startup failed (NULL target/property - {0}): the tween will now be killed ► {1}", e.TargetSite, e.Message
+ ));
return false; // Target/field doesn't exist: kill tween
}
} else t.startValue = t.tweenPlugin.ConvertToStartValue(t, t.getter());
diff --git a/_DOTween.Assembly/bin/DOTween.dll b/_DOTween.Assembly/bin/DOTween.dll
index 1b93c17..434f9b6 100644
Binary files a/_DOTween.Assembly/bin/DOTween.dll and b/_DOTween.Assembly/bin/DOTween.dll differ
diff --git a/_DOTween.Assembly/bin/DOTween.dll.mdb b/_DOTween.Assembly/bin/DOTween.dll.mdb
index 0d8a8ce..839c504 100644
Binary files a/_DOTween.Assembly/bin/DOTween.dll.mdb and b/_DOTween.Assembly/bin/DOTween.dll.mdb differ
diff --git a/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll b/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll
index edd8d9b..8cff892 100644
Binary files a/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll and b/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll differ
diff --git a/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll.mdb b/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll.mdb
index 152c979..354ba05 100644
Binary files a/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll.mdb and b/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll.mdb differ
diff --git a/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll b/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll
index 25f01d2..44f748a 100644
Binary files a/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll and b/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll differ
diff --git a/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll.mdb b/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll.mdb
index 358729d..c02a4d5 100644
Binary files a/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll.mdb and b/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll.mdb differ