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