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