diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll index dab33a0..d7c20cb 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 a1a13c7..6a5ff3e 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 a7e710c..e00d581 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 13458ef..b99ddb8 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/Resources/DOTweenSettings.asset b/UnityTests.Unity5/Assets/Resources/DOTweenSettings.asset index bd4dc36..6703f6f 100644 Binary files a/UnityTests.Unity5/Assets/Resources/DOTweenSettings.asset and b/UnityTests.Unity5/Assets/Resources/DOTweenSettings.asset differ diff --git a/_DOTween.Assembly/DOTween/Core/DOTweenSettings.cs b/_DOTween.Assembly/DOTween/Core/DOTweenSettings.cs index 4cde13f..81c3714 100644 --- a/_DOTween.Assembly/DOTween/Core/DOTweenSettings.cs +++ b/_DOTween.Assembly/DOTween/Core/DOTweenSettings.cs @@ -37,6 +37,7 @@ namespace DG.Tweening.Core DemigiantDirectory } public SettingsLocation storeSettingsLocation = SettingsLocation.AssetsDirectory; + public bool showModulesPanel; // Editor-Only ► DOTween Inspector public bool showPlayingTweens, showPausedTweens; diff --git a/_DOTween.Assembly/DOTween/DOTween.cs b/_DOTween.Assembly/DOTween/DOTween.cs index 21986fe..a4bdc59 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.015"; // Last version before modules: 1.1.755 + public static readonly string Version = "1.2.020"; // Last version before modules: 1.1.755 /////////////////////////////////////////////// // Options //////////////////////////////////// diff --git a/_DOTween.Assembly/DOTweenEditor/UI/DOTweenUtilityWindow.cs b/_DOTween.Assembly/DOTweenEditor/UI/DOTweenUtilityWindow.cs index c174a23..ffad3dd 100644 --- a/_DOTween.Assembly/DOTweenEditor/UI/DOTweenUtilityWindow.cs +++ b/_DOTween.Assembly/DOTweenEditor/UI/DOTweenUtilityWindow.cs @@ -29,7 +29,6 @@ namespace DG.DOTweenEditor.UI bool _setupRequired; int _selectedTab; - bool _isModulesMode; string[] _tabLabels = new[] { "Setup", "Preferences" }; string[] _settingsLocation = new[] {"Assets > Resources", "DOTween > Resources", "Demigiant > Resources"}; @@ -87,9 +86,12 @@ namespace DG.DOTweenEditor.UI _setupRequired = EditorUtils.DOTweenSetupRequired(); } - void OnDisable() + void OnDestroy() { - _isModulesMode = false; + if (_src != null) { + _src.showModulesPanel = false; + EditorUtility.SetDirty(_src); + } } void OnGUI() @@ -110,10 +112,11 @@ namespace DG.DOTweenEditor.UI GUILayout.Space(40); GUILayout.EndHorizontal(); } else { - if (_isModulesMode) { - if (DOTweenUtilityWindowModules.Draw()) { + if (_src.showModulesPanel) { + if (DOTweenUtilityWindowModules.Draw(this)) { _setupRequired = EditorUtils.DOTweenSetupRequired(); - _isModulesMode = false; + _src.showModulesPanel = false; + EditorUtility.SetDirty(_src); } } else { Rect areaRect = new Rect(0, 0, _headerSize.x, 30); @@ -129,6 +132,8 @@ namespace DG.DOTweenEditor.UI } } } + + if (GUI.changed) EditorUtility.SetDirty(_src); } // =================================================================================== @@ -155,7 +160,8 @@ namespace DG.DOTweenEditor.UI // DOTweenDefines.Setup(); // _setupRequired = EditorUtils.DOTweenSetupRequired(); DOTweenUtilityWindowModules.Refresh(); - _isModulesMode = true; + _src.showModulesPanel = true; + EditorUtility.SetDirty(_src); EditorUtils.DeleteLegacyNoModulesDOTweenFiles(); EditorUtils.DeleteDOTweenUpgradeManagerFiles(); return; @@ -253,8 +259,6 @@ namespace DG.DOTweenEditor.UI _src.defaultEasePeriod = EditorGUILayout.FloatField("Ease Period", _src.defaultEasePeriod); _src.defaultAutoKill = EditorGUILayout.Toggle("AutoKill", _src.defaultAutoKill); _src.defaultLoopType = (LoopType)EditorGUILayout.EnumPopup("Loop Type", _src.defaultLoopType); - - if (UnityEngine.GUI.changed) EditorUtility.SetDirty(_src); } // =================================================================================== diff --git a/_DOTween.Assembly/DOTweenEditor/UI/DOTweenUtilityWindowModules.cs b/_DOTween.Assembly/DOTweenEditor/UI/DOTweenUtilityWindowModules.cs index db15e7a..8e25903 100644 --- a/_DOTween.Assembly/DOTweenEditor/UI/DOTweenUtilityWindowModules.cs +++ b/_DOTween.Assembly/DOTweenEditor/UI/DOTweenUtilityWindowModules.cs @@ -3,6 +3,7 @@ // License Copyright (c) Daniele Giardini // This work is subject to the terms at http://dotween.demigiant.com/license.php +using DG.Tweening.Core; using UnityEditor; using UnityEngine; @@ -10,6 +11,7 @@ namespace DG.DOTweenEditor.UI { public static class DOTweenUtilityWindowModules { + static bool _refreshed; static bool _hasAudioModule; static bool _hasPhysicsModule; static bool _hasPhysics2DModule; @@ -19,8 +21,13 @@ namespace DG.DOTweenEditor.UI static bool _hasTextMeshProModule; static bool _hasTk2DModule; + static EditorWindow _editor; + static bool _isWaitingForCompilation; + public static void Refresh() { + _refreshed = true; + _hasAudioModule = EditorUtils.HasGlobalDefine(DOTweenDefines.GlobalDefine_AudioModule); _hasPhysicsModule = EditorUtils.HasGlobalDefine(DOTweenDefines.GlobalDefine_PhysicsModule); _hasPhysics2DModule = EditorUtils.HasGlobalDefine(DOTweenDefines.GlobalDefine_Physics2DModule); @@ -32,10 +39,16 @@ namespace DG.DOTweenEditor.UI } // Returns TRUE if it should be closed - public static bool Draw() + public static bool Draw(EditorWindow editor) { + _editor = editor; + if (!_refreshed) Refresh(); + GUILayout.Label("Add/Remove Modules", EditorGUIUtils.titleStyle); + if (EditorApplication.isCompiling) WaitForCompilation(); + + EditorGUI.BeginDisabledGroup(EditorApplication.isCompiling); GUILayout.BeginVertical(UnityEngine.GUI.skin.box); GUILayout.Label("Unity", EditorGUIUtils.boldLabelStyle); _hasAudioModule = EditorGUILayout.Toggle("Audio", _hasAudioModule); @@ -58,14 +71,12 @@ namespace DG.DOTweenEditor.UI Apply(); return true; } - if (GUILayout.Button("Cancel")) return true; + if (GUILayout.Button("Cancel")) { + return true; + } GUILayout.EndHorizontal(); + EditorGUI.EndDisabledGroup(); -// EditorGUILayout.HelpBox( -// "NOTE: if you get \"PlayerSettings Validation\" or [CS0618] errors when you press apply don't worry:" + -// " it's ok and it allows the setup to work on all possible Unity versions", -// MessageType.Warning -// ); return false; } @@ -91,5 +102,26 @@ namespace DG.DOTweenEditor.UI else EditorUtils.RemoveGlobalDefine(defineId); } } + + static void WaitForCompilation() + { + if (!_isWaitingForCompilation) { + _isWaitingForCompilation = true; + EditorApplication.update += WaitForCompilation_Update; + WaitForCompilation_Update(); + } + + EditorGUILayout.HelpBox("Waiting for Unity to finish the compilation process...", MessageType.Info); + } + + static void WaitForCompilation_Update() + { + if (!EditorApplication.isCompiling) { + EditorApplication.update -= WaitForCompilation_Update; + _isWaitingForCompilation = false; + Refresh(); + } + _editor.Repaint(); + } } } \ No newline at end of file diff --git a/_DOTween.Assembly/bin/DOTween.dll b/_DOTween.Assembly/bin/DOTween.dll index dab33a0..d7c20cb 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 a1a13c7..6a5ff3e 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 a7e710c..e00d581 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 13458ef..b99ddb8 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 af4bbbb..0ef7b10 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 62188fd..81f037b 100644 Binary files a/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll.mdb and b/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll.mdb differ