diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll index 5c9bcd8..eb48bfb 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 4ca191b..5a886be 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 e8c6da4..a969b35 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 c102b2f..b785f63 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/Modules/DOTweenModulePhysics.cs b/UnityTests.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs index 1d92f58..2a85cc6 100644 --- a/UnityTests.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs +++ b/UnityTests.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs @@ -1,4 +1,4 @@ -// Author: Daniele Giardini - http://www.demigiant.com +// Author: Daniele Giardini - http://www.demigiant.com // Created: 2018/07/13 #if true // MODULE_MARKER diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs b/UnityTests.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs index 69b89f3..3115bb2 100644 --- a/UnityTests.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs +++ b/UnityTests.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs @@ -1,4 +1,4 @@ -// Author: Daniele Giardini - http://www.demigiant.com +// Author: Daniele Giardini - http://www.demigiant.com // Created: 2018/07/13 using System; diff --git a/_DOTween.Assembly/DOTweenEditor/DOTweenProcessors.cs b/_DOTween.Assembly/DOTweenEditor/DOTweenProcessors.cs index 7e39792..4aab5bc 100644 --- a/_DOTween.Assembly/DOTweenEditor/DOTweenProcessors.cs +++ b/_DOTween.Assembly/DOTweenEditor/DOTweenProcessors.cs @@ -45,6 +45,8 @@ namespace DG.DOTweenEditor ); return AssetDeleteResult.DidNotDelete; } + + } public class UtilityWindowPostProcessor : AssetPostprocessor @@ -64,6 +66,8 @@ namespace DG.DOTweenEditor EditorUtils.DeleteOldDemiLibCore(); // Remove old legacy defines DOTweenDefines.RemoveAllLegacyDefines(); + // Reapply modules + DOTweenUtilityWindowModules.ApplyModulesSettings(); // bool differentCoreVersion = EditorPrefs.GetString(Application.dataPath + DOTweenUtilityWindow.Id) != Application.dataPath + DOTween.Version; bool differentProVersion = EditorUtils.hasPro && EditorPrefs.GetString(Application.dataPath + DOTweenUtilityWindow.IdPro) != Application.dataPath + EditorUtils.proVersion; diff --git a/_DOTween.Assembly/DOTweenEditor/UI/DOTweenUtilityWindow.cs b/_DOTween.Assembly/DOTweenEditor/UI/DOTweenUtilityWindow.cs index 9fea2e5..e1e1cf0 100644 --- a/_DOTween.Assembly/DOTweenEditor/UI/DOTweenUtilityWindow.cs +++ b/_DOTween.Assembly/DOTweenEditor/UI/DOTweenUtilityWindow.cs @@ -37,7 +37,7 @@ namespace DG.DOTweenEditor.UI // NOTE: this is also called via Reflection by UpgradeWindow public static void Open() { - EditorWindow window = EditorWindow.GetWindow(true, _Title, true); + DOTweenUtilityWindow window = EditorWindow.GetWindow(true, _Title, true); window.minSize = _WinSize; window.maxSize = _WinSize; window.ShowUtility(); @@ -159,7 +159,7 @@ namespace DG.DOTweenEditor.UI if (GUILayout.Button("Setup DOTween...\n(add/remove Modules)", EditorGUIUtils.btSetup)) { // DOTweenDefines.Setup(); // _setupRequired = EditorUtils.DOTweenSetupRequired(); - DOTweenUtilityWindowModules.Refresh(_src, true); + DOTweenUtilityWindowModules.ApplyModulesSettings(); _src.modules.showPanel = true; EditorUtility.SetDirty(_src); EditorUtils.DeleteLegacyNoModulesDOTweenFiles(); @@ -265,43 +265,91 @@ namespace DG.DOTweenEditor.UI // =================================================================================== // METHODS --------------------------------------------------------------------------- - void Connect(bool forceReconnect = false) + public static DOTweenSettings GetDOTweenSettings() { - if (_src != null && !forceReconnect) return; + return ConnectToSource(null, false, false); + } + static DOTweenSettings ConnectToSource(DOTweenSettings src, bool createIfMissing, bool fullSetup) + { LocationData assetsLD = new LocationData(EditorUtils.assetsPath + EditorUtils.pathSlash + "Resources"); LocationData dotweenLD = new LocationData(EditorUtils.dotweenDir + "Resources"); bool hasDemigiantDir = EditorUtils.demigiantDir != null; LocationData demigiantLD = hasDemigiantDir ? new LocationData(EditorUtils.demigiantDir + "Resources") : new LocationData(); - if (_src == null) { + if (src == null) { // Load eventual existing settings - _src = EditorUtils.ConnectToSourceAsset(assetsLD.adbFilePath, false); - if (_src == null) _src = EditorUtils.ConnectToSourceAsset(dotweenLD.adbFilePath, false); - if (_src == null && hasDemigiantDir) _src = EditorUtils.ConnectToSourceAsset(demigiantLD.adbFilePath, false); + src = EditorUtils.ConnectToSourceAsset(assetsLD.adbFilePath, false); + if (src == null) src = EditorUtils.ConnectToSourceAsset(dotweenLD.adbFilePath, false); + if (src == null && hasDemigiantDir) src = EditorUtils.ConnectToSourceAsset(demigiantLD.adbFilePath, false); } - if (_src == null) { - // Settings don't exist. Create it in external folder + if (src == null) { + // Settings don't exist. + if (!createIfMissing) return null; // Stop here + // Create it in external folder if (!Directory.Exists(assetsLD.dir)) AssetDatabase.CreateFolder(assetsLD.adbParentDir, "Resources"); - _src = EditorUtils.ConnectToSourceAsset(assetsLD.adbFilePath, true); + src = EditorUtils.ConnectToSourceAsset(assetsLD.adbFilePath, true); } - // Move eventual settings from previous location and setup everything correctly - DOTweenSettings.SettingsLocation settingsLoc = _src.storeSettingsLocation; - switch (settingsLoc) { - case DOTweenSettings.SettingsLocation.AssetsDirectory: - MoveSrc(new[] { dotweenLD, demigiantLD }, assetsLD); - break; - case DOTweenSettings.SettingsLocation.DOTweenDirectory: - MoveSrc(new[] { assetsLD, demigiantLD }, dotweenLD); - break; - case DOTweenSettings.SettingsLocation.DemigiantDirectory: - MoveSrc(new[] { assetsLD, dotweenLD }, demigiantLD); - break; + if (fullSetup) { + // Move eventual settings from previous location and setup everything correctly + DOTweenSettings.SettingsLocation settingsLoc = src.storeSettingsLocation; + switch (settingsLoc) { + case DOTweenSettings.SettingsLocation.AssetsDirectory: + src = MoveSrc(new[] { dotweenLD, demigiantLD }, assetsLD); + break; + case DOTweenSettings.SettingsLocation.DOTweenDirectory: + src = MoveSrc(new[] { assetsLD, demigiantLD }, dotweenLD); + break; + case DOTweenSettings.SettingsLocation.DemigiantDirectory: + src = MoveSrc(new[] { assetsLD, dotweenLD }, demigiantLD); + break; + } } + + return src; } - void MoveSrc(LocationData[] from, LocationData to) + void Connect(bool forceReconnect = false) + { + if (_src != null && !forceReconnect) return; + _src = ConnectToSource(_src, true, true); + +// LocationData assetsLD = new LocationData(EditorUtils.assetsPath + EditorUtils.pathSlash + "Resources"); +// LocationData dotweenLD = new LocationData(EditorUtils.dotweenDir + "Resources"); +// bool hasDemigiantDir = EditorUtils.demigiantDir != null; +// LocationData demigiantLD = hasDemigiantDir ? new LocationData(EditorUtils.demigiantDir + "Resources") : new LocationData(); +// +// if (_src == null) { +// // Load eventual existing settings +// _src = EditorUtils.ConnectToSourceAsset(assetsLD.adbFilePath, false); +// if (_src == null) _src = EditorUtils.ConnectToSourceAsset(dotweenLD.adbFilePath, false); +// if (_src == null && hasDemigiantDir) _src = EditorUtils.ConnectToSourceAsset(demigiantLD.adbFilePath, false); +// } +// if (_src == null) { +// // Settings don't exist. +// if (!createSrcIfMissing) return; // Stop here +// // Create it in external folder +// if (!Directory.Exists(assetsLD.dir)) AssetDatabase.CreateFolder(assetsLD.adbParentDir, "Resources"); +// _src = EditorUtils.ConnectToSourceAsset(assetsLD.adbFilePath, true); +// } +// +// // Move eventual settings from previous location and setup everything correctly +// DOTweenSettings.SettingsLocation settingsLoc = _src.storeSettingsLocation; +// switch (settingsLoc) { +// case DOTweenSettings.SettingsLocation.AssetsDirectory: +// MoveSrc(new[] { dotweenLD, demigiantLD }, assetsLD); +// break; +// case DOTweenSettings.SettingsLocation.DOTweenDirectory: +// MoveSrc(new[] { assetsLD, demigiantLD }, dotweenLD); +// break; +// case DOTweenSettings.SettingsLocation.DemigiantDirectory: +// MoveSrc(new[] { assetsLD, dotweenLD }, demigiantLD); +// break; +// } + } + + static DOTweenSettings MoveSrc(LocationData[] from, LocationData to) { if (!Directory.Exists(to.dir)) AssetDatabase.CreateFolder(to.adbParentDir, "Resources"); foreach (LocationData ld in from) { @@ -316,7 +364,7 @@ namespace DG.DOTweenEditor.UI } } } - _src = EditorUtils.ConnectToSourceAsset(to.adbFilePath, true); + return EditorUtils.ConnectToSourceAsset(to.adbFilePath, true); } // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ diff --git a/_DOTween.Assembly/DOTweenEditor/UI/DOTweenUtilityWindowModules.cs b/_DOTween.Assembly/DOTweenEditor/UI/DOTweenUtilityWindowModules.cs index 4467ae4..b706cf3 100644 --- a/_DOTween.Assembly/DOTweenEditor/UI/DOTweenUtilityWindowModules.cs +++ b/_DOTween.Assembly/DOTweenEditor/UI/DOTweenUtilityWindowModules.cs @@ -113,6 +113,17 @@ namespace DG.DOTweenEditor.UI #endregion + #region Public Methods + + // Also called via Reflection by Autorun + public static void ApplyModulesSettings() + { + DOTweenSettings src = DOTweenUtilityWindow.GetDOTweenSettings(); + if (src != null) Refresh(src, true); + } + + #endregion + #region Methods public static void Refresh(DOTweenSettings src, bool applySrcSettings = false) diff --git a/_DOTween.Assembly/DOTweenUpgradeManager/Autorun.cs b/_DOTween.Assembly/DOTweenUpgradeManager/Autorun.cs index c7cf429..49b8a97 100644 --- a/_DOTween.Assembly/DOTweenUpgradeManager/Autorun.cs +++ b/_DOTween.Assembly/DOTweenUpgradeManager/Autorun.cs @@ -4,6 +4,7 @@ // This work is subject to the terms at http://dotween.demigiant.com/license.php using System; +using System.Reflection; using UnityEditor; using UnityEditor.Callbacks; using UnityEngine; @@ -25,12 +26,26 @@ namespace DG.DOTweenUpgradeManager public static void OnUpdate() { - if (!UpgradeWindowIsOpen()) UpgradeWindow.Open(); + if (!UpgradeWindowIsOpen()) { + ApplyModulesSettings(); + UpgradeWindow.Open(); + } } static bool UpgradeWindowIsOpen() { return Resources.FindObjectsOfTypeAll().Length > 0; } + + static void ApplyModulesSettings() + { + Type doeditorT = Type.GetType("DG.DOTweenEditor.UI.DOTweenUtilityWindowModules, DOTweenEditor"); + if (doeditorT != null) { + MethodInfo miOpen = doeditorT.GetMethod("ApplyModulesSettings", BindingFlags.Static | BindingFlags.Public); + if (miOpen != null) { + miOpen.Invoke(null, null); + } + } + } } } \ No newline at end of file diff --git a/_DOTween.Assembly/DOTweenUpgradeManager/UpgradeWindow.cs b/_DOTween.Assembly/DOTweenUpgradeManager/UpgradeWindow.cs index ba2424b..d707968 100644 --- a/_DOTween.Assembly/DOTweenUpgradeManager/UpgradeWindow.cs +++ b/_DOTween.Assembly/DOTweenUpgradeManager/UpgradeWindow.cs @@ -62,8 +62,12 @@ namespace DG.DOTweenUpgradeManager GUILayout.FlexibleSpace(); if (GUILayout.Button("Open DOTween Utility Panel", GUILayout.Height(30))) { Type doeditorT = Type.GetType("DG.DOTweenEditor.UI.DOTweenUtilityWindow, DOTweenEditor"); - MethodInfo miOpen = doeditorT.GetMethod("Open", BindingFlags.Static | BindingFlags.Public); - miOpen.Invoke(null, null); + if (doeditorT != null) { + MethodInfo miOpen = doeditorT.GetMethod("Open", BindingFlags.Static | BindingFlags.Public); + if (miOpen != null) { + miOpen.Invoke(null, null); + } + } EditorApplication.update -= Autorun.OnUpdate; this.Close(); } diff --git a/_DOTween.Assembly/bin/DOTween.dll b/_DOTween.Assembly/bin/DOTween.dll index 5c9bcd8..eb48bfb 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 4ca191b..5a886be 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 e8c6da4..a969b35 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 c102b2f..b785f63 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 6772bf5..053d318 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 dac82cb..003bf9e 100644 Binary files a/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll.mdb and b/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll.mdb differ