diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll index fa6e699..a9ea535 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 33fc364..80a8b46 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 059f4d7..66bc468 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 c1ceb65..14b197d 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 766a393..ae11da1 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 41c70e0..9ddf29a 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/Resources/DOTweenSettings.asset b/UnityTests.Unity5/Assets/Resources/DOTweenSettings.asset index d7478d8..1812a99 100644 Binary files a/UnityTests.Unity5/Assets/Resources/DOTweenSettings.asset and b/UnityTests.Unity5/Assets/Resources/DOTweenSettings.asset differ diff --git a/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended.meta b/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended.meta new file mode 100644 index 0000000..7918cfe --- /dev/null +++ b/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d57d9ae87b3872442b093fedb800fe38 +folderAsset: yes +timeCreated: 1571998456 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/IndexOutOfRangeExtended.cs b/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/IndexOutOfRangeExtended.cs new file mode 100644 index 0000000..37231c9 --- /dev/null +++ b/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/IndexOutOfRangeExtended.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using DG.Tweening; +using UnityEngine; +using UnityEngine.SceneManagement; +using UnityEngine.UI; + +public class IndexOutOfRangeExtended : BrainBase +{ + public Transform[] targets; + public Button btReload; + + readonly List tweens = new List(); + + protected override void Awake() + { + base.Awake(); + + btReload.onClick.AddListener(()=> SceneManager.LoadScene(SceneManager.GetActiveScene().name)); + + Debug.Log("Create AWAKE tweens"); + for (int i = 0; i < targets.Length; i++) { + Transform t = targets[i]; + int index = i; + tweens.Add( + t.DOMoveY(2, 3).SetLoops(-1, LoopType.Yoyo) + .OnComplete(() => DOTween.Clear()) + .OnKill(()=> Debug.Log("Kill AWAKE tween " + index)) + ); + } + } + + void Start() + { + Debug.Log("Create START tweens"); + for (int i = 0; i < targets.Length; i++) { + Transform t = targets[i]; + int index = i; + tweens.Add( + t.DOMoveX(2, 3).SetLoops(-1, LoopType.Yoyo) + .OnComplete(() => DOTween.Clear()) + .OnKill(()=> Debug.Log("Kill START tween " + index)) + ); + } + } + + void LateUpdate() + { + if (Input.GetKeyDown(KeyCode.F5)) SceneManager.LoadScene(SceneManager.GetActiveScene().name); + } + + void OnDisable() + { + Debug.Log("OnDisable Brain"); + for (int i = 0; i < tweens.Count; i++) { + Tween tween = tweens[i]; + tween.Kill(); + Debug.Log("Kill tween from list at index " + i); + } + tweens.Clear(); + DOTween.Clear(); + } + + void OnDestroy() + { +// foreach (Tween tween in tweens) tween.Kill(); +// tweens.Clear(); + } +} \ No newline at end of file diff --git a/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/IndexOutOfRangeExtended.cs.meta b/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/IndexOutOfRangeExtended.cs.meta new file mode 100644 index 0000000..ac5b3f0 --- /dev/null +++ b/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/IndexOutOfRangeExtended.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ba672ad353205be43b6073352a00bd05 +timeCreated: 1571998488 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/IndexOutOfRangeExtended.unity b/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/IndexOutOfRangeExtended.unity new file mode 100644 index 0000000..d0bb061 Binary files /dev/null and b/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/IndexOutOfRangeExtended.unity differ diff --git a/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/IndexOutOfRangeExtended.unity.meta b/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/IndexOutOfRangeExtended.unity.meta new file mode 100644 index 0000000..597d2d3 --- /dev/null +++ b/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/IndexOutOfRangeExtended.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fd4e9a60856ca2346a4e94d67c033be7 +timeCreated: 1571998475 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/TweenedObj.cs b/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/TweenedObj.cs new file mode 100644 index 0000000..fea5696 --- /dev/null +++ b/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/TweenedObj.cs @@ -0,0 +1,29 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2019/10/25 + +using System; +using DG.Tweening; +using UnityEngine; + +public class TweenedObj : MonoBehaviour +{ + Tween t; + + void Start() + { + Debug.Log("Create OBJ tween"); + t = this.transform.DOScale(1.5f, 2).SetLoops(-1, LoopType.Yoyo); + } + + void OnDestroy() + { + Debug.Log("Kill from OnDestroy obj " + this.name); + t.Kill(); + } + + void OnDisable() + { + Debug.Log("DOTween.Clear from OnDisable obj " + this.name); + DOTween.Clear(); + } +} \ No newline at end of file diff --git a/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/TweenedObj.cs.meta b/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/TweenedObj.cs.meta new file mode 100644 index 0000000..1ce565d --- /dev/null +++ b/UnityTests.Unity5/Assets/_Tests/Bugs/IndexOutOfRangeExtended/TweenedObj.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b71ac1dacab745d7979de2305293f992 +timeCreated: 1571998727 \ No newline at end of file diff --git a/_DOTween.Assembly/DOTween/Core/TweenManager.cs b/_DOTween.Assembly/DOTween/Core/TweenManager.cs index 332a684..d84ebb0 100644 --- a/_DOTween.Assembly/DOTween/Core/TweenManager.cs +++ b/_DOTween.Assembly/DOTween/Core/TweenManager.cs @@ -291,9 +291,9 @@ namespace DG.Tweening.Core internal static void PurgeAll() { // Fire eventual onKill callbacks - for (int i = 0; i < totActiveTweens; ++i) { + for (int i = 0; i < maxActive; ++i) { Tween t = _activeTweens[i]; - if (t != null) { + if (t != null && t.active) { t.active = false; if (t.onKill != null) Tween.OnTweenCallback(t.onKill); } diff --git a/_DOTween.Assembly/DOTween/DOTween.cs b/_DOTween.Assembly/DOTween/DOTween.cs index 07ebd60..7fbdb29 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.300"; // Last version before modules: 1.1.755 + public static readonly string Version = "1.2.305"; // Last version before modules: 1.1.755 /////////////////////////////////////////////// // Options //////////////////////////////////// @@ -1003,7 +1003,8 @@ namespace DG.Tweening { InitCheck(); TweenerCore tweener = TweenManager.GetTweener(); - if (!Tweener.Setup(tweener, getter, setter, endValue, duration, plugin)) { + bool setupSuccessful = Tweener.Setup(tweener, getter, setter, endValue, duration, plugin); + if (!setupSuccessful) { TweenManager.Despawn(tweener); return null; } diff --git a/_DOTween.Assembly/bin/DOTween.dll b/_DOTween.Assembly/bin/DOTween.dll index fa6e699..a9ea535 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 33fc364..80a8b46 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 059f4d7..66bc468 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 c1ceb65..14b197d 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 766a393..ae11da1 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 41c70e0..9ddf29a 100644 Binary files a/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll.mdb and b/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll.mdb differ