diff --git a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween.XML b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween.XML index b0cb652..8c65c88 100644 --- a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween.XML +++ b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween.XML @@ -2099,8 +2099,18 @@ If TRUE the tween will be automatically killed when complete - Sets an ID for the tween, which can then be used as a filter with DOTween's static methods. - The ID to assign to this tween. Can be an int, a string, an object or anything else. + Sets an ID for the tween (), which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets a string ID for the tween (), which can then be used as a filter with DOTween's static methods. + Filtering via string is 2X faster than using an object as an ID (using the alternate obejct overload) + The string ID to assign to this tween. + + + Sets an int ID for the tween (), which can then be used as a filter with DOTween's static methods. + Filtering via int is 4X faster than via object, 2X faster than via string (using the alternate object/string overloads) + The int ID to assign to this tween. Sets the target for the tween, which can then be used as a filter with DOTween's static methods. @@ -2436,7 +2446,14 @@ If TRUE the tween wil go backwards - Id (usable for filtering with DOTween static methods). Can be an int, a string, an object, or anything else + Object ID (usable for filtering with DOTween static methods). Can be anything except a string or an int + (use or for those) + + + String ID (usable for filtering with DOTween static methods). 2X faster than using an object id + + + String ID (usable for filtering with DOTween static methods). 4X faster than using an object id, 2X faster than using a string id Tween target (usable for filtering with DOTween static methods). Automatically set by tween creation shorcuts diff --git a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween.dll b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween.dll index 7f5b09f..ab82c3b 100644 Binary files a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween.dll and b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween.dll differ diff --git a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween.dll.mdb b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween.dll.mdb index 0f08834..0499443 100644 Binary files a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween.dll.mdb and b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween.dll.mdb differ diff --git a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween43.dll b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween43.dll index 2c3766d..0bc4660 100644 Binary files a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween43.dll and b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween43.dll differ diff --git a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween43.dll.mdb b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween43.dll.mdb index 440d4e7..7938c87 100644 Binary files a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween43.dll.mdb and b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween43.dll.mdb differ diff --git a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween46.dll b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween46.dll index 0801fcb..15534c3 100644 Binary files a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween46.dll and b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween46.dll differ diff --git a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween46.dll.mdb b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween46.dll.mdb index cd171c2..e907dcb 100644 Binary files a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween46.dll.mdb and b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween46.dll.mdb differ diff --git a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween50.dll b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween50.dll index 8e40d36..73a85a3 100644 Binary files a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween50.dll and b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween50.dll differ diff --git a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween50.dll.mdb b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween50.dll.mdb index 38d4608..c484e51 100644 Binary files a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween50.dll.mdb and b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/DOTween50.dll.mdb differ diff --git a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll index c3946fe..24675e9 100644 Binary files a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll and b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll differ diff --git a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb index 1c1c358..f12880e 100644 Binary files a/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb and b/UnityCompatibilityTests.Unity35/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb differ diff --git a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween.XML b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween.XML index b0cb652..8c65c88 100644 --- a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween.XML +++ b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween.XML @@ -2099,8 +2099,18 @@ If TRUE the tween will be automatically killed when complete - Sets an ID for the tween, which can then be used as a filter with DOTween's static methods. - The ID to assign to this tween. Can be an int, a string, an object or anything else. + Sets an ID for the tween (), which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets a string ID for the tween (), which can then be used as a filter with DOTween's static methods. + Filtering via string is 2X faster than using an object as an ID (using the alternate obejct overload) + The string ID to assign to this tween. + + + Sets an int ID for the tween (), which can then be used as a filter with DOTween's static methods. + Filtering via int is 4X faster than via object, 2X faster than via string (using the alternate object/string overloads) + The int ID to assign to this tween. Sets the target for the tween, which can then be used as a filter with DOTween's static methods. @@ -2436,7 +2446,14 @@ If TRUE the tween wil go backwards - Id (usable for filtering with DOTween static methods). Can be an int, a string, an object, or anything else + Object ID (usable for filtering with DOTween static methods). Can be anything except a string or an int + (use or for those) + + + String ID (usable for filtering with DOTween static methods). 2X faster than using an object id + + + String ID (usable for filtering with DOTween static methods). 4X faster than using an object id, 2X faster than using a string id Tween target (usable for filtering with DOTween static methods). Automatically set by tween creation shorcuts diff --git a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween.dll b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween.dll index 7f5b09f..ab82c3b 100644 Binary files a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween.dll and b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween.dll differ diff --git a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween.dll.mdb b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween.dll.mdb index 0f08834..0499443 100644 Binary files a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween.dll.mdb and b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween.dll.mdb differ diff --git a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween43.dll b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween43.dll index 2c3766d..0bc4660 100644 Binary files a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween43.dll and b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween43.dll differ diff --git a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween43.dll.mdb b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween43.dll.mdb index 440d4e7..7938c87 100644 Binary files a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween43.dll.mdb and b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween43.dll.mdb differ diff --git a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween46.dll b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween46.dll index 0801fcb..15534c3 100644 Binary files a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween46.dll and b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween46.dll differ diff --git a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween46.dll.mdb b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween46.dll.mdb index cd171c2..e907dcb 100644 Binary files a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween46.dll.mdb and b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween46.dll.mdb differ diff --git a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween50.dll b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween50.dll index 8e40d36..73a85a3 100644 Binary files a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween50.dll and b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween50.dll differ diff --git a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween50.dll.mdb b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween50.dll.mdb index 38d4608..c484e51 100644 Binary files a/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween50.dll.mdb and b/UnityTests.Unity4/Assets/Demigiant/DOTween/DOTween50.dll.mdb differ diff --git a/UnityTests.Unity4/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll b/UnityTests.Unity4/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll index c3946fe..24675e9 100644 Binary files a/UnityTests.Unity4/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll and b/UnityTests.Unity4/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll differ diff --git a/UnityTests.Unity4/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb b/UnityTests.Unity4/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb index 1c1c358..f12880e 100644 Binary files a/UnityTests.Unity4/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb and b/UnityTests.Unity4/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb differ diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.XML b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.XML index b0cb652..8c65c88 100644 --- a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.XML +++ b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.XML @@ -2099,8 +2099,18 @@ If TRUE the tween will be automatically killed when complete - Sets an ID for the tween, which can then be used as a filter with DOTween's static methods. - The ID to assign to this tween. Can be an int, a string, an object or anything else. + Sets an ID for the tween (), which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets a string ID for the tween (), which can then be used as a filter with DOTween's static methods. + Filtering via string is 2X faster than using an object as an ID (using the alternate obejct overload) + The string ID to assign to this tween. + + + Sets an int ID for the tween (), which can then be used as a filter with DOTween's static methods. + Filtering via int is 4X faster than via object, 2X faster than via string (using the alternate object/string overloads) + The int ID to assign to this tween. Sets the target for the tween, which can then be used as a filter with DOTween's static methods. @@ -2436,7 +2446,14 @@ If TRUE the tween wil go backwards - Id (usable for filtering with DOTween static methods). Can be an int, a string, an object, or anything else + Object ID (usable for filtering with DOTween static methods). Can be anything except a string or an int + (use or for those) + + + String ID (usable for filtering with DOTween static methods). 2X faster than using an object id + + + String ID (usable for filtering with DOTween static methods). 4X faster than using an object id, 2X faster than using a string id Tween target (usable for filtering with DOTween static methods). Automatically set by tween creation shorcuts diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll index 7f5b09f..ab82c3b 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 0f08834..0499443 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/DOTween43.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween43.dll index 2c3766d..0bc4660 100644 Binary files a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween43.dll and b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween43.dll differ diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween43.dll.mdb b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween43.dll.mdb index 440d4e7..7938c87 100644 Binary files a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween43.dll.mdb and b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween43.dll.mdb differ diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween46.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween46.dll index 0801fcb..15534c3 100644 Binary files a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween46.dll and b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween46.dll differ diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween46.dll.mdb b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween46.dll.mdb index cd171c2..e907dcb 100644 Binary files a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween46.dll.mdb and b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween46.dll.mdb differ diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween50.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween50.dll index 8e40d36..73a85a3 100644 Binary files a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween50.dll and b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween50.dll differ diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween50.dll.mdb b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween50.dll.mdb index 38d4608..c484e51 100644 Binary files a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween50.dll.mdb and b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween50.dll.mdb differ diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll index c3946fe..24675e9 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 1c1c358..f12880e 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/_Tests/Ids.cs b/UnityTests.Unity5/Assets/_Tests/Ids.cs index c126256..4d4b1e1 100644 --- a/UnityTests.Unity5/Assets/_Tests/Ids.cs +++ b/UnityTests.Unity5/Assets/_Tests/Ids.cs @@ -36,9 +36,9 @@ public class Ids : BrainBase GUILayout.Space(50); GUILayout.BeginHorizontal(); - if (GUILayout.Button("TogglePause by Id")) DOTween.TogglePause(0); - if (GUILayout.Button("TogglePause by StringId")) DOTween.TogglePause("string"); - if (GUILayout.Button("TogglePause by ObjId")) DOTween.TogglePause(this); + if (GUILayout.Button("TogglePause by Int Id")) DOTween.TogglePause(0); + if (GUILayout.Button("TogglePause by String Id")) DOTween.TogglePause("string"); + if (GUILayout.Button("TogglePause by Object Id")) DOTween.TogglePause(this); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); diff --git a/UnityTests.Unity5/Assets/_Tests/Ids_MassFiltering.cs b/UnityTests.Unity5/Assets/_Tests/Ids_MassFiltering.cs new file mode 100644 index 0000000..db1def7 --- /dev/null +++ b/UnityTests.Unity5/Assets/_Tests/Ids_MassFiltering.cs @@ -0,0 +1,71 @@ +using System.Collections; +using System.Collections.Generic; +using DG.Tweening; +using UnityEngine; + +public class Ids_MassFiltering : MonoBehaviour +{ + public int totItemsPerId = 200; + public Transform objectId; + + int[] intsToTween = new[] {1, 2, 3}; + int int0, int1, int2; + + void Start() + { + for (int i = 0; i < 3; ++i) { + for (int c = 0; c < totItemsPerId; ++c) { + int index = i; + Tween t = DOTween.To(() => intsToTween[index], x => intsToTween[index] = x, UnityEngine.Random.Range(1, 10), 2) + .Pause().SetAutoKill(false).SetLoops(-1, LoopType.Yoyo); + switch (i) { + case 0: // Int (uses id) + t.SetId(15); + break; + case 1: // String (uses stringId) + t.SetId("aString"); + break; + case 2: // Object (uses id) + t.SetId(objectId); + break; + } + } + } + } + + void OnGUI() + { + DGUtils.BeginGUI(); + GUILayout.Space(50); + + float elapsed; + GUILayout.BeginHorizontal(); + if (GUILayout.Button("TogglePause by Int Id")) { + elapsed = Time.realtimeSinceStartup; + DOTween.TogglePause(15); + Debug.Log("elapsed: " + (decimal)(Time.realtimeSinceStartup - elapsed)); + } + if (GUILayout.Button("TogglePause by String Id")) { + elapsed = Time.realtimeSinceStartup; + DOTween.TogglePause("aString"); + Debug.Log("elapsed: " + (decimal)(Time.realtimeSinceStartup - elapsed)); + } + if (GUILayout.Button("TogglePause by Object Id")) { + elapsed = Time.realtimeSinceStartup; + DOTween.TogglePause(objectId); + Debug.Log("elapsed: " + (decimal)(Time.realtimeSinceStartup - elapsed)); + } + GUILayout.EndHorizontal(); + + DGUtils.EndGUI(); + } + + Vector3 RndVector3() + { + return new Vector3( + UnityEngine.Random.Range(3, 10), + UnityEngine.Random.Range(3, 10), + UnityEngine.Random.Range(3, 10) + ); + } +} \ No newline at end of file diff --git a/UnityTests.Unity5/Assets/_Tests/Ids_MassFiltering.cs.meta b/UnityTests.Unity5/Assets/_Tests/Ids_MassFiltering.cs.meta new file mode 100644 index 0000000..568969f --- /dev/null +++ b/UnityTests.Unity5/Assets/_Tests/Ids_MassFiltering.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 942e3b19e5823e04392b6f6327325fa3 +timeCreated: 1505127073 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityTests.Unity5/Assets/_Tests/Ids_MassFiltering.unity b/UnityTests.Unity5/Assets/_Tests/Ids_MassFiltering.unity new file mode 100644 index 0000000..2d43fec Binary files /dev/null and b/UnityTests.Unity5/Assets/_Tests/Ids_MassFiltering.unity differ diff --git a/UnityTests.Unity5/Assets/_Tests/Ids_MassFiltering.unity.meta b/UnityTests.Unity5/Assets/_Tests/Ids_MassFiltering.unity.meta new file mode 100644 index 0000000..a646305 --- /dev/null +++ b/UnityTests.Unity5/Assets/_Tests/Ids_MassFiltering.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 02e78af34d93f2240b63ca8aeafb3418 +timeCreated: 1505127063 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityTests.Unity5/ProjectSettings/ProjectVersion.txt b/UnityTests.Unity5/ProjectSettings/ProjectVersion.txt index 6e4d03d..54fa55b 100644 --- a/UnityTests.Unity5/ProjectSettings/ProjectVersion.txt +++ b/UnityTests.Unity5/ProjectSettings/ProjectVersion.txt @@ -1 +1 @@ -m_EditorVersion: 5.6.1f1 +m_EditorVersion: 5.6.3p1 diff --git a/_DOTween.Assembly/DOTween/Core/TweenManager.cs b/_DOTween.Assembly/DOTween/Core/TweenManager.cs index ae015ac..5942401 100644 --- a/_DOTween.Assembly/DOTween/Core/TweenManager.cs +++ b/_DOTween.Assembly/DOTween/Core/TweenManager.cs @@ -457,6 +457,23 @@ namespace DG.Tweening.Core int totInvolved = 0; bool hasDespawned = false; int optionalArrayLen = optionalArray == null ? 0 : optionalArray.Length; + // Determine if ID is required, and if it's stringId + bool useStringId = false; + string stringId = null; + bool useIntId = false; + int intId = 0; + switch (filterType) { + case FilterType.TargetOrId: + case FilterType.TargetAndId: + if (id is string) { + useStringId = true; + stringId = (string)id; + } else if (id is int) { + useIntId = true; + intId = (int)id; + } + break; + } for (int i = _maxActiveLookupId; i > -1; --i) { Tween t = _activeTweens[i]; if (t == null || !t.active) continue; @@ -467,16 +484,26 @@ namespace DG.Tweening.Core isFilterCompliant = true; break; case FilterType.TargetOrId: - isFilterCompliant = t.id != null && id.Equals(t.id) || t.target != null && id.Equals(t.target); + if (useStringId) isFilterCompliant = t.stringId != null && t.stringId == stringId; + else if (useIntId) isFilterCompliant = t.intId == intId; + else isFilterCompliant = t.id != null && id.Equals(t.id) || t.target != null && id.Equals(t.target); break; case FilterType.TargetAndId: - isFilterCompliant = t.id != null && t.target != null && optionalObj != null && id.Equals(t.id) && optionalObj.Equals(t.target); + if (useStringId) isFilterCompliant = t.target != null && t.stringId == stringId && optionalObj != null && optionalObj.Equals(t.target); + else if (useIntId) isFilterCompliant = t.target != null && t.intId == intId && optionalObj != null && optionalObj.Equals(t.target); + else isFilterCompliant = t.id != null && t.target != null && optionalObj != null && id.Equals(t.id) && optionalObj.Equals(t.target); break; case FilterType.AllExceptTargetsOrIds: isFilterCompliant = true; for (int c = 0; c < optionalArrayLen; ++c) { object objId = optionalArray[c]; - if (t.id != null && objId.Equals(t.id) || t.target != null && objId.Equals(t.target)) { + if (useStringId && t.stringId == stringId) { + isFilterCompliant = false; + break; + } else if (useIntId && t.intId == intId) { + isFilterCompliant = false; + break; + } else if (t.id != null && objId.Equals(t.id) || t.target != null && objId.Equals(t.target)) { isFilterCompliant = false; break; } diff --git a/_DOTween.Assembly/DOTween/DOTween.cs b/_DOTween.Assembly/DOTween/DOTween.cs index c186159..b5cd86c 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.1.640"; + public static readonly string Version = "1.1.650"; /////////////////////////////////////////////// // Options //////////////////////////////////// diff --git a/_DOTween.Assembly/DOTween/Tween.cs b/_DOTween.Assembly/DOTween/Tween.cs index 21457f3..e3b878a 100644 --- a/_DOTween.Assembly/DOTween/Tween.cs +++ b/_DOTween.Assembly/DOTween/Tween.cs @@ -23,8 +23,13 @@ namespace DG.Tweening public float timeScale; /// If TRUE the tween wil go backwards public bool isBackwards; - /// Id (usable for filtering with DOTween static methods). Can be an int, a string, an object, or anything else + /// Object ID (usable for filtering with DOTween static methods). Can be anything except a string or an int + /// (use or for those) public object id; + /// String ID (usable for filtering with DOTween static methods). 2X faster than using an object id + public string stringId; + /// String ID (usable for filtering with DOTween static methods). 4X faster than using an object id, 2X faster than using a string id + public int intId; /// Tween target (usable for filtering with DOTween static methods). Automatically set by tween creation shorcuts public object target; // Automatically set by DO shortcuts using SetTarget extension. Also used during Tweener.DoStartup in some special cases // Update type and eventual independence (changed via TweenManager.SetUpdateType) diff --git a/_DOTween.Assembly/DOTween/TweenSettingsExtensions.cs b/_DOTween.Assembly/DOTween/TweenSettingsExtensions.cs index 020d091..bedd1bd 100644 --- a/_DOTween.Assembly/DOTween/TweenSettingsExtensions.cs +++ b/_DOTween.Assembly/DOTween/TweenSettingsExtensions.cs @@ -54,13 +54,33 @@ namespace DG.Tweening return t; } - /// Sets an ID for the tween, which can then be used as a filter with DOTween's static methods. - /// The ID to assign to this tween. Can be an int, a string, an object or anything else. - public static T SetId(this T t, object id) where T : Tween + /// Sets an ID for the tween (), which can then be used as a filter with DOTween's static methods. + /// The ID to assign to this tween. Can be an int, a string, an object or anything else. + public static T SetId(this T t, object objectId) where T : Tween { if (t == null || !t.active) return t; - t.id = id; + t.id = objectId; + return t; + } + /// Sets a string ID for the tween (), which can then be used as a filter with DOTween's static methods. + /// Filtering via string is 2X faster than using an object as an ID (using the alternate obejct overload) + /// The string ID to assign to this tween. + public static T SetId(this T t, string stringId) where T : Tween + { + if (t == null || !t.active) return t; + + t.stringId = stringId; + return t; + } + /// Sets an int ID for the tween (), which can then be used as a filter with DOTween's static methods. + /// Filtering via int is 4X faster than via object, 2X faster than via string (using the alternate object/string overloads) + /// The int ID to assign to this tween. + public static T SetId(this T t, int intId) where T : Tween + { + if (t == null || !t.active) return t; + + t.intId = intId; return t; } diff --git a/_DOTween.Assembly/bin/DOTween.XML b/_DOTween.Assembly/bin/DOTween.XML index b0cb652..8c65c88 100644 --- a/_DOTween.Assembly/bin/DOTween.XML +++ b/_DOTween.Assembly/bin/DOTween.XML @@ -2099,8 +2099,18 @@ If TRUE the tween will be automatically killed when complete - Sets an ID for the tween, which can then be used as a filter with DOTween's static methods. - The ID to assign to this tween. Can be an int, a string, an object or anything else. + Sets an ID for the tween (), which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets a string ID for the tween (), which can then be used as a filter with DOTween's static methods. + Filtering via string is 2X faster than using an object as an ID (using the alternate obejct overload) + The string ID to assign to this tween. + + + Sets an int ID for the tween (), which can then be used as a filter with DOTween's static methods. + Filtering via int is 4X faster than via object, 2X faster than via string (using the alternate object/string overloads) + The int ID to assign to this tween. Sets the target for the tween, which can then be used as a filter with DOTween's static methods. @@ -2436,7 +2446,14 @@ If TRUE the tween wil go backwards - Id (usable for filtering with DOTween static methods). Can be an int, a string, an object, or anything else + Object ID (usable for filtering with DOTween static methods). Can be anything except a string or an int + (use or for those) + + + String ID (usable for filtering with DOTween static methods). 2X faster than using an object id + + + String ID (usable for filtering with DOTween static methods). 4X faster than using an object id, 2X faster than using a string id Tween target (usable for filtering with DOTween static methods). Automatically set by tween creation shorcuts diff --git a/_DOTween.Assembly/bin/DOTween.dll b/_DOTween.Assembly/bin/DOTween.dll index 7f5b09f..ab82c3b 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 0f08834..0499443 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/DOTween43.dll b/_DOTween.Assembly/bin/DOTween43.dll index 2c3766d..0bc4660 100644 Binary files a/_DOTween.Assembly/bin/DOTween43.dll and b/_DOTween.Assembly/bin/DOTween43.dll differ diff --git a/_DOTween.Assembly/bin/DOTween43.dll.mdb b/_DOTween.Assembly/bin/DOTween43.dll.mdb index 440d4e7..7938c87 100644 Binary files a/_DOTween.Assembly/bin/DOTween43.dll.mdb and b/_DOTween.Assembly/bin/DOTween43.dll.mdb differ diff --git a/_DOTween.Assembly/bin/DOTween46.dll b/_DOTween.Assembly/bin/DOTween46.dll index 0801fcb..15534c3 100644 Binary files a/_DOTween.Assembly/bin/DOTween46.dll and b/_DOTween.Assembly/bin/DOTween46.dll differ diff --git a/_DOTween.Assembly/bin/DOTween46.dll.mdb b/_DOTween.Assembly/bin/DOTween46.dll.mdb index cd171c2..e907dcb 100644 Binary files a/_DOTween.Assembly/bin/DOTween46.dll.mdb and b/_DOTween.Assembly/bin/DOTween46.dll.mdb differ diff --git a/_DOTween.Assembly/bin/DOTween50.dll b/_DOTween.Assembly/bin/DOTween50.dll index 8e40d36..73a85a3 100644 Binary files a/_DOTween.Assembly/bin/DOTween50.dll and b/_DOTween.Assembly/bin/DOTween50.dll differ diff --git a/_DOTween.Assembly/bin/DOTween50.dll.mdb b/_DOTween.Assembly/bin/DOTween50.dll.mdb index 38d4608..c484e51 100644 Binary files a/_DOTween.Assembly/bin/DOTween50.dll.mdb and b/_DOTween.Assembly/bin/DOTween50.dll.mdb differ diff --git a/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll b/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll index c3946fe..24675e9 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 1c1c358..f12880e 100644 Binary files a/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll.mdb and b/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll.mdb differ