diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll
index 2ecea90..588e4e4 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 9229e21..c9ea9d6 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 82bdc27..77fa70f 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 9b1c796..915545c 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.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll
index ae7d18a..b3f3dae 100644
Binary files a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll and b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll differ
diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb
index 3e1db8d..ed57eca 100644
Binary files a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb and b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb differ
diff --git a/UnityTests.Unity5/Assets/_Tests/TempTests.unity b/UnityTests.Unity5/Assets/_Tests/TempTests.unity
index a482443..a2c75b0 100644
Binary files a/UnityTests.Unity5/Assets/_Tests/TempTests.unity and b/UnityTests.Unity5/Assets/_Tests/TempTests.unity differ
diff --git a/_DOTween.Assembly/DOTween/Core/DOTweenComponent.cs b/_DOTween.Assembly/DOTween/Core/DOTweenComponent.cs
index 0774941..31f8b01 100644
--- a/_DOTween.Assembly/DOTween/Core/DOTweenComponent.cs
+++ b/_DOTween.Assembly/DOTween/Core/DOTweenComponent.cs
@@ -129,6 +129,32 @@ namespace DG.Tweening.Core
string s = "Max overall simultaneous active Tweeners/Sequences: " + DOTween.maxActiveTweenersReached + "/" + DOTween.maxActiveSequencesReached;
Debugger.LogReport(s);
}
+
+ if (DOTween.useSafeMode) {
+ int totSafeModeErrors = DOTween.safeModeReport.GetTotErrors();
+ if (totSafeModeErrors > 0) {
+ string s = string.Format("DOTween's safe mode captured {0} errors." +
+ " This is usually ok (it's what safe mode is there for) but if your game is encountering issues" +
+ " you should set Log Behaviour to Default in DOTween Utility Panel in order to get detailed" +
+ " warnings when an error is captured (consider that these errors are always on the user side).",
+ totSafeModeErrors
+ );
+ if (DOTween.safeModeReport.totMissingTargetOrFieldErrors > 0) {
+ s += "\n- " + DOTween.safeModeReport.totMissingTargetOrFieldErrors + " missing target or field errors";
+ }
+ if (DOTween.safeModeReport.totStartupErrors > 0) {
+ s += "\n- " + DOTween.safeModeReport.totStartupErrors + " startup errors";
+ }
+ if (DOTween.safeModeReport.totCallbackErrors > 0) {
+ s += "\n- " + DOTween.safeModeReport.totCallbackErrors + " errors inside callbacks (these might be important)";
+ }
+ if (DOTween.safeModeReport.totUnsetErrors > 0) {
+ s += "\n- " + DOTween.safeModeReport.totUnsetErrors + " undetermined errors (these might be important)";
+ }
+ Debugger.LogSafeModeReport(s);
+ }
+ }
+
// DOTween.initialized = false;
// DOTween.instance = null;
if (DOTween.instance == this) DOTween.instance = null;
diff --git a/_DOTween.Assembly/DOTween/Core/Debugger.cs b/_DOTween.Assembly/DOTween/Core/Debugger.cs
index 75339db..4be6bae 100644
--- a/_DOTween.Assembly/DOTween/Core/Debugger.cs
+++ b/_DOTween.Assembly/DOTween/Core/Debugger.cs
@@ -41,11 +41,18 @@ namespace DG.Tweening.Core
public static void LogReport(object message)
{
- message = string.Format("{0} REPORT ► {1}", _LogPrefix, message);
+ message = string.Format("{0} REPORT ► {1}", _LogPrefix, message);
if (DOTween.onWillLog != null && !DOTween.onWillLog(LogType.Log, message)) return;
Debug.Log(message);
}
+ public static void LogSafeModeReport(object message)
+ {
+ message = string.Format("{0} SAFE MODE ► {1}", _LogPrefix, message);
+ if (DOTween.onWillLog != null && !DOTween.onWillLog(LogType.Log, message)) return;
+ Debug.LogWarning(message);
+ }
+
public static void LogInvalidTween(Tween t)
{
LogWarning("This Tween has been killed and is now invalid");
diff --git a/_DOTween.Assembly/DOTween/Core/SafeModeReport.cs b/_DOTween.Assembly/DOTween/Core/SafeModeReport.cs
new file mode 100644
index 0000000..6f3cdff
--- /dev/null
+++ b/_DOTween.Assembly/DOTween/Core/SafeModeReport.cs
@@ -0,0 +1,46 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2019/07/24 13:45
+// License Copyright (c) Daniele Giardini
+// This work is subject to the terms at http://dotween.demigiant.com/license.php
+
+namespace DG.Tweening.Core
+{
+ internal struct SafeModeReport
+ {
+ internal enum SafeModeReportType
+ {
+ Unset,
+ TargetOrFieldMissing,
+ Callback,
+ StartupFailure
+ }
+
+ public int totMissingTargetOrFieldErrors { get; private set; }
+ public int totCallbackErrors { get; private set; }
+ public int totStartupErrors { get; private set; }
+ public int totUnsetErrors { get; private set; }
+
+ public void Add(SafeModeReportType type)
+ {
+ switch (type) {
+ case SafeModeReportType.TargetOrFieldMissing:
+ totMissingTargetOrFieldErrors++;
+ break;
+ case SafeModeReportType.Callback:
+ totCallbackErrors++;
+ break;
+ case SafeModeReportType.StartupFailure:
+ totStartupErrors++;
+ break;
+ default:
+ totUnsetErrors++;
+ break;
+ }
+ }
+
+ public int GetTotErrors()
+ {
+ return totMissingTargetOrFieldErrors + totCallbackErrors + totStartupErrors + totUnsetErrors;
+ }
+ }
+}
\ No newline at end of file
diff --git a/_DOTween.Assembly/DOTween/Core/TweenerCore.cs b/_DOTween.Assembly/DOTween/Core/TweenerCore.cs
index cd4f005..8ee9fac 100644
--- a/_DOTween.Assembly/DOTween/Core/TweenerCore.cs
+++ b/_DOTween.Assembly/DOTween/Core/TweenerCore.cs
@@ -240,6 +240,7 @@ namespace DG.Tweening.Core
tweenPlugin.EvaluateAndApply(plugOptions, this, isRelative, getter, setter, updatePosition, startValue, changeValue, duration, useInversePosition, updateNotice);
} catch {
// Target/field doesn't exist anymore: kill tween
+ DOTween.safeModeReport.Add(SafeModeReport.SafeModeReportType.TargetOrFieldMissing);
return true;
}
} else {
diff --git a/_DOTween.Assembly/DOTween/DOTween.cs b/_DOTween.Assembly/DOTween/DOTween.cs
index ee0e5cb..85d1103 100644
--- a/_DOTween.Assembly/DOTween/DOTween.cs
+++ b/_DOTween.Assembly/DOTween/DOTween.cs
@@ -34,7 +34,7 @@ namespace DG.Tweening
public class DOTween
{
/// DOTween's version
- public static readonly string Version = "1.2.260"; // Last version before modules: 1.1.755
+ public static readonly string Version = "1.2.265"; // Last version before modules: 1.1.755
///////////////////////////////////////////////
// Options ////////////////////////////////////
@@ -118,6 +118,7 @@ namespace DG.Tweening
public static DOTweenComponent instance;
internal static int maxActiveTweenersReached, maxActiveSequencesReached; // Controlled by DOTweenInspector if showUnityEditorReport is active
+ internal static SafeModeReport safeModeReport; // Used to store how many safe mode errors are captured in the editor
internal static readonly List GizmosDelegates = new List(); // Can be used by other classes to call internal gizmo draw methods
internal static bool initialized; // Can be set to false by DOTweenComponent OnDestroy
internal static bool isQuitting; // Set by DOTweenComponent when the application is quitting
diff --git a/_DOTween.Assembly/DOTween/DOTween.csproj b/_DOTween.Assembly/DOTween/DOTween.csproj
index 1f0ff25..910cdd7 100644
--- a/_DOTween.Assembly/DOTween/DOTween.csproj
+++ b/_DOTween.Assembly/DOTween/DOTween.csproj
@@ -89,6 +89,7 @@
+
diff --git a/_DOTween.Assembly/DOTween/Tween.cs b/_DOTween.Assembly/DOTween/Tween.cs
index 29560e4..925cdc5 100644
--- a/_DOTween.Assembly/DOTween/Tween.cs
+++ b/_DOTween.Assembly/DOTween/Tween.cs
@@ -285,6 +285,7 @@ namespace DG.Tweening
"An error inside a tween callback was silently taken care of ({0}) ► {1}\n\n{2}\n\n", e.TargetSite, e.Message, e.StackTrace
));
}
+ DOTween.safeModeReport.Add(SafeModeReport.SafeModeReportType.Callback);
return false; // Callback error
}
} else callback();
@@ -301,6 +302,7 @@ namespace DG.Tweening
"An error inside a tween callback was silently taken care of ({0}) ► {1}", e.TargetSite, e.Message
));
}
+ DOTween.safeModeReport.Add(SafeModeReport.SafeModeReportType.Callback);
return false; // Callback error
}
} else callback(param);
diff --git a/_DOTween.Assembly/DOTween/Tweener.cs b/_DOTween.Assembly/DOTween/Tweener.cs
index 655ee08..ec37609 100644
--- a/_DOTween.Assembly/DOTween/Tweener.cs
+++ b/_DOTween.Assembly/DOTween/Tweener.cs
@@ -139,6 +139,7 @@ namespace DG.Tweening
"Tween startup failed (NULL target/property - {0}): the tween will now be killed ► {1}", e.TargetSite, e.Message
));
}
+ DOTween.safeModeReport.Add(SafeModeReport.SafeModeReportType.StartupFailure);
return false; // Target/field doesn't exist: kill tween
}
} else t.startValue = t.tweenPlugin.ConvertToStartValue(t, t.getter());
@@ -203,6 +204,7 @@ namespace DG.Tweening
} catch {
// Target/field doesn't exist: kill tween
TweenManager.Despawn(t);
+ DOTween.safeModeReport.Add(SafeModeReport.SafeModeReportType.TargetOrFieldMissing);
return null;
}
} else t.startValue = t.tweenPlugin.ConvertToStartValue(t, t.getter());
diff --git a/_DOTween.Assembly/bin/DOTween.dll b/_DOTween.Assembly/bin/DOTween.dll
index 2ecea90..588e4e4 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 9229e21..c9ea9d6 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 82bdc27..77fa70f 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 9b1c796..915545c 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 ae7d18a..b3f3dae 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 3e1db8d..ed57eca 100644
Binary files a/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll.mdb and b/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll.mdb differ