diff --git a/EditorPreviewExample.unitypackage b/EditorPreviewExample.unitypackage
new file mode 100644
index 0000000..4c37848
Binary files /dev/null and b/EditorPreviewExample.unitypackage differ
diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll
index dfe1be7..3d736a3 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 3b5ac66..87e3c47 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.XML b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.XML
index 884656c..be2b674 100644
--- a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.XML
+++ b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.XML
@@ -10,10 +10,11 @@
Eventual callback to call after every update
-
+
Stops the update loop and clears any callback.
+ If TRUE also resets the tweened objects to their original state
diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll
index b729dad..0121a3e 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 a90628d..c51dee3 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/DOTweenEditor.dll.meta b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta
index e354233..b82114b 100644
--- a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta
+++ b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta
@@ -3,22 +3,143 @@ guid: 15321a018ba7b9f49a6442a41ee5dc70
timeCreated: 1431691487
licenseType: Free
PluginImporter:
- serializedVersion: 1
+ serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
+ isOverridable: 0
platformData:
- Any:
- enabled: 0
- settings: {}
- Editor:
- enabled: 1
- settings:
- DefaultValueInitialized: true
- WindowsStoreApps:
- enabled: 0
- settings:
- CPU: AnyCPU
+ data:
+ first:
+ '': Any
+ second:
+ enabled: 0
+ settings:
+ Exclude Android: 1
+ Exclude Editor: 0
+ Exclude Linux: 1
+ Exclude Linux64: 1
+ Exclude LinuxUniversal: 1
+ Exclude OSXIntel: 1
+ Exclude OSXIntel64: 1
+ Exclude OSXUniversal: 1
+ Exclude WebGL: 1
+ Exclude Win: 1
+ Exclude Win64: 1
+ Exclude iOS: 1
+ data:
+ first:
+ '': Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ OS: AnyOS
+ data:
+ first:
+ Android: Android
+ second:
+ enabled: 0
+ settings:
+ CPU: ARMv7
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ data:
+ first:
+ Facebook: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Facebook: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: Linux
+ second:
+ enabled: 0
+ settings:
+ CPU: x86
+ data:
+ first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ data:
+ first:
+ Standalone: LinuxUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: OSXIntel
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: OSXIntel64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ iPhone: iOS
+ second:
+ enabled: 0
+ settings:
+ CompileFlags:
+ FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:
diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML
new file mode 100644
index 0000000..02c3c95
--- /dev/null
+++ b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML
@@ -0,0 +1,14 @@
+
+
+
+ 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.XML.meta b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML.meta
new file mode 100644
index 0000000..f18d0cd
--- /dev/null
+++ b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1b9c6b17aec073847a9d34c432a148ec
+timeCreated: 1544961652
+licenseType: Pro
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll
new file mode 100644
index 0000000..180ba74
Binary files /dev/null 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
new file mode 100644
index 0000000..39c82cf
Binary files /dev/null and b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb differ
diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb.meta b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb.meta
new file mode 100644
index 0000000..a3fa192
--- /dev/null
+++ b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 56bca508bd08a4f44a507f17e7577afb
+timeCreated: 1544961640
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.meta b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.meta
new file mode 100644
index 0000000..345e372
--- /dev/null
+++ b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.meta
@@ -0,0 +1,34 @@
+fileFormatVersion: 2
+guid: c7602d66796c87a4fac3013913374c07
+timeCreated: 1544961644
+licenseType: Pro
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ data:
+ first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview.meta b/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview.meta
new file mode 100644
index 0000000..908075f
--- /dev/null
+++ b/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: d133da273ec4fd14a950eacbb83e0db0
+folderAsset: yes
+timeCreated: 1544961756
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/DOTweenEditorPreview.unity b/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/DOTweenEditorPreview.unity
new file mode 100644
index 0000000..c8c6cce
Binary files /dev/null and b/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/DOTweenEditorPreview.unity differ
diff --git a/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/DOTweenEditorPreview.unity.meta b/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/DOTweenEditorPreview.unity.meta
new file mode 100644
index 0000000..71769e7
--- /dev/null
+++ b/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/DOTweenEditorPreview.unity.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c182c00b8a3c73343bc70c4936be00c7
+timeCreated: 1544961756
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/Editor.meta b/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/Editor.meta
new file mode 100644
index 0000000..3cb3457
--- /dev/null
+++ b/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/Editor.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 9180dc17e23b01144acbef7fbf36319d
+folderAsset: yes
+timeCreated: 1544961905
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/Editor/EditorPreviewer.cs b/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/Editor/EditorPreviewer.cs
new file mode 100644
index 0000000..5767f66
--- /dev/null
+++ b/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/Editor/EditorPreviewer.cs
@@ -0,0 +1,33 @@
+using DG.DOTweenEditor;
+using DG.Tweening;
+using UnityEditor;
+using UnityEngine;
+
+[InitializeOnLoad]
+public static class EditorPreviewer
+{
+ static EditorPreviewer()
+ {
+ TweenManager.OnEditorPreviewPrepareTweenCommand += PrepareTween;
+ TweenManager.OnEditorPreviewPlayCommand += Play;
+ TweenManager.OnEditorPreviewStopCommand += Stop;
+ }
+
+ static void PrepareTween(Tween t)
+ {
+ Debug.Log("EditorPreviewer ► AddTween");
+ DOTweenEditorPreview.PrepareTweenForPreview(t);
+ }
+
+ static void Play()
+ {
+ Debug.Log("EditorPreviewer ► Play");
+ DOTweenEditorPreview.Start();
+ }
+
+ static void Stop()
+ {
+ Debug.Log("EditorPreviewer ► Stop and reset");
+ DOTweenEditorPreview.Stop(true);
+ }
+}
\ No newline at end of file
diff --git a/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/Editor/EditorPreviewer.cs.meta b/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/Editor/EditorPreviewer.cs.meta
new file mode 100644
index 0000000..1f88fe8
--- /dev/null
+++ b/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/Editor/EditorPreviewer.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f78c9bfa83e26014a81b98375dad6759
+timeCreated: 1544961917
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/TweenManager.cs b/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/TweenManager.cs
new file mode 100644
index 0000000..3dbefbc
--- /dev/null
+++ b/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/TweenManager.cs
@@ -0,0 +1,57 @@
+using System;
+using DG.Tweening;
+using UnityEngine;
+using UnityEditor;
+
+[ExecuteInEditMode]
+public class TweenManager : MonoBehaviour
+{
+#if UNITY_EDITOR
+ #region Editor-only Events
+
+ public static event Action OnEditorPreviewPrepareTweenCommand;
+ public static event Action OnEditorPreviewPlayCommand;
+ public static event Action OnEditorPreviewStopCommand;
+ static void Dispatch_OnEditorPreviewPrepareTweenCommand(Tween t) { if (OnEditorPreviewPrepareTweenCommand != null) OnEditorPreviewPrepareTweenCommand(t); }
+ static void Dispatch_OnEditorPreviewPlayCommand() { if (OnEditorPreviewPlayCommand != null) OnEditorPreviewPlayCommand(); }
+ static void Dispatch_OnEditorPreviewStopCommand() { if (OnEditorPreviewStopCommand != null) OnEditorPreviewStopCommand(); }
+
+ #endregion
+#endif
+
+ #region Serialized
+
+ [SerializeField] Transform[] targets;
+
+ #endregion
+
+ Tween[] tweens;
+
+ void OnEnable()
+ {
+ if (targets == null) return;
+
+ tweens = new Tween[targets.Length];
+ for (int i = 0; i < targets.Length; ++i) {
+ tweens[i] = targets[i].DOMoveX(5, 2);
+#if UNITY_EDITOR
+ if (!Application.isPlaying) Dispatch_OnEditorPreviewPrepareTweenCommand(tweens[i]);
+#endif
+ }
+
+#if UNITY_EDITOR
+ if (!Application.isPlaying) Dispatch_OnEditorPreviewPlayCommand();
+#endif
+ }
+
+ void OnDisable()
+ {
+#if UNITY_EDITOR
+ if (!Application.isPlaying) Dispatch_OnEditorPreviewStopCommand();
+#endif
+
+ // Kill all tweens
+ foreach (Tween t in tweens) t.Kill();
+ tweens = null;
+ }
+}
\ No newline at end of file
diff --git a/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/TweenManager.cs.meta b/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/TweenManager.cs.meta
new file mode 100644
index 0000000..70b7cb4
--- /dev/null
+++ b/UnityTests.Unity5/Assets/_DOTween Examples/DOTweenEditorPreview/TweenManager.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: fc5fd5cd5cb3ed74aaf5581919d6bae2
+timeCreated: 1544961895
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/_DOTween.Assembly/DOTween/DOTween.cs b/_DOTween.Assembly/DOTween/DOTween.cs
index 0cfa600..bf0b1d2 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.135"; // Last version before modules: 1.1.755
+ public static readonly string Version = "1.2.140"; // Last version before modules: 1.1.755
///////////////////////////////////////////////
// Options ////////////////////////////////////
diff --git a/_DOTween.Assembly/DOTweenEditor/DOTweenEditorPreview.cs b/_DOTween.Assembly/DOTweenEditor/DOTweenEditorPreview.cs
index 428bca8..02d43db 100644
--- a/_DOTween.Assembly/DOTweenEditor/DOTweenEditorPreview.cs
+++ b/_DOTween.Assembly/DOTweenEditor/DOTweenEditorPreview.cs
@@ -18,6 +18,7 @@ namespace DG.DOTweenEditor
static double _previewTime;
static Action _onPreviewUpdated;
static GameObject _previewObj; // Used so it can be set dirty (otherwise canvas-only tweens won't refresh the view)
+ static readonly List _tweens = new List();
static DOTweenEditorPreview()
{
@@ -44,11 +45,24 @@ namespace DG.DOTweenEditor
///
/// Stops the update loop and clears any callback.
///
- public static void Stop()
+ /// If TRUE also resets the tweened objects to their original state
+ public static void Stop(bool reset = false)
{
_isPreviewing = false;
EditorApplication.update -= PreviewUpdate;
_onPreviewUpdated = null;
+ if (reset) {
+ foreach (Tween t in _tweens) {
+ if (t != null && t.active) {
+ try {
+ if (t.isFrom) t.Complete();
+ else t.Rewind();
+ } catch {
+ // Just skip
+ }
+ }
+ }
+ }
Clear();
}
@@ -61,6 +75,7 @@ namespace DG.DOTweenEditor
/// If TRUE starts playing the tween immediately
public static void PrepareTweenForPreview(Tween t, bool clearCallbacks = true, bool preventAutoKill = true, bool andPlay = true)
{
+ _tweens.Add(t);
t.SetUpdate(UpdateType.Manual);
if (preventAutoKill) t.SetAutoKill(false);
if (clearCallbacks) {
@@ -78,6 +93,7 @@ namespace DG.DOTweenEditor
static void Clear()
{
_previewObj = null;
+ _tweens.Clear();
// Find and destroy any existing preview objects
PreviewComponent[] objs = Object.FindObjectsOfType();
for (int i = 0; i < objs.Length; ++i) Object.DestroyImmediate(objs[i].gameObject);
diff --git a/_DOTween.Assembly/bin/DOTween.dll b/_DOTween.Assembly/bin/DOTween.dll
index dfe1be7..3d736a3 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 3b5ac66..87e3c47 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.XML b/_DOTween.Assembly/bin/Editor/DOTweenEditor.XML
index 884656c..be2b674 100644
--- a/_DOTween.Assembly/bin/Editor/DOTweenEditor.XML
+++ b/_DOTween.Assembly/bin/Editor/DOTweenEditor.XML
@@ -10,10 +10,11 @@
Eventual callback to call after every update
-
+
Stops the update loop and clears any callback.
+ If TRUE also resets the tweened objects to their original state
diff --git a/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll b/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll
index b729dad..0121a3e 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 a90628d..c51dee3 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 ed4b02e..180ba74 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 4ec5d56..39c82cf 100644
Binary files a/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll.mdb and b/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll.mdb differ