From 082a66ceefdf50c1bad5add084417706b7b77bb3 Mon Sep 17 00:00:00 2001 From: Daniele Giardini Date: Thu, 17 Oct 2019 12:45:39 +0200 Subject: [PATCH] UnityExamples project update --- .../CustomPlugin Example/CustomRangePlugin.cs | 7 + .../Assets/Demigiant/DOTween/DOTween.XML | 408 +++++++++--- .../Assets/Demigiant/DOTween/DOTween.dll | Bin 141824 -> 158720 bytes .../Assets/Demigiant/DOTween/DOTween.dll.mdb | Bin 55659 -> 60540 bytes .../Assets/Demigiant/DOTween/DOTween43.dll | Bin 9728 -> 0 bytes .../Demigiant/DOTween/DOTween43.dll.mdb | Bin 1789 -> 0 bytes .../Demigiant/DOTween/DOTween43.dll.mdb.meta | 8 - .../Demigiant/DOTween/DOTween43.dll.meta | 24 - .../Assets/Demigiant/DOTween/DOTween43.xml | 85 --- .../Demigiant/DOTween/DOTween43.xml.meta | 8 - .../Assets/Demigiant/DOTween/DOTween46.dll | Bin 20480 -> 0 bytes .../Demigiant/DOTween/DOTween46.dll.mdb | Bin 5901 -> 0 bytes .../Demigiant/DOTween/DOTween46.dll.mdb.meta | 8 - .../Demigiant/DOTween/DOTween46.dll.meta | 24 - .../Assets/Demigiant/DOTween/DOTween46.xml | 261 -------- .../Demigiant/DOTween/DOTween46.xml.meta | 8 - .../Assets/Demigiant/DOTween/DOTween50.dll | Bin 5632 -> 0 bytes .../Demigiant/DOTween/DOTween50.dll.mdb | Bin 796 -> 0 bytes .../Demigiant/DOTween/DOTween50.dll.meta | 24 - .../Assets/Demigiant/DOTween/DOTween50.xml | 112 ---- .../Demigiant/DOTween/DOTween50.xml.meta | 8 - .../DOTween/Editor/DOTweenEditor.XML | 63 +- .../DOTween/Editor/DOTweenEditor.dll | Bin 32768 -> 52736 bytes .../DOTween/Editor/DOTweenEditor.dll.mdb | Bin 5400 -> 9551 bytes .../{DOTween50.dll.mdb.meta => Modules.meta} | 5 +- .../DOTween/Modules/DOTweenModuleAudio.cs | 202 ++++++ .../Modules/DOTweenModuleAudio.cs.meta | 12 + .../DOTween/Modules/DOTweenModulePhysics.cs | 216 +++++++ .../Modules/DOTweenModulePhysics.cs.meta | 12 + .../DOTween/Modules/DOTweenModulePhysics2D.cs | 107 +++ .../Modules/DOTweenModulePhysics2D.cs.meta | 12 + .../DOTween/Modules/DOTweenModuleSprite.cs | 93 +++ .../Modules/DOTweenModuleSprite.cs.meta | 12 + .../DOTween/Modules/DOTweenModuleUI.cs | 609 ++++++++++++++++++ .../DOTween/Modules/DOTweenModuleUI.cs.meta | 12 + .../Modules/DOTweenModuleUnityVersion.cs | 301 +++++++++ .../Modules/DOTweenModuleUnityVersion.cs.meta | 12 + .../DOTween/Modules/DOTweenModuleUtils.cs | 155 +++++ .../Modules/DOTweenModuleUtils.cs.meta | 12 + .../Assets/Demigiant/DOTween/readme.txt | 17 +- .../Assets/Resources/DOTweenSettings.asset | Bin 4228 -> 4300 bytes .../ProjectSettings/ProjectSettings.asset | Bin 38429 -> 54570 bytes .../ProjectSettings/ProjectVersion.txt | 3 +- .../Assets/Demigiant/DOTween/DOTween.dll | Bin 158720 -> 158720 bytes .../Assets/Demigiant/DOTween/DOTween.dll.mdb | Bin 60540 -> 60540 bytes .../DOTween/Editor/DOTweenEditor.dll | Bin 52736 -> 52736 bytes .../DOTween/Editor/DOTweenEditor.dll.mdb | Bin 9551 -> 9551 bytes .../DOTween/Editor/DOTweenUpgradeManager.dll | Bin 10752 -> 10752 bytes .../Editor/DOTweenUpgradeManager.dll.mdb | Bin 889 -> 889 bytes .../Core/Editor/Imgs/whiteSquare.png.meta | 2 +- _DOTween.Assembly/bin/DOTween.dll | Bin 158720 -> 158720 bytes _DOTween.Assembly/bin/DOTween.dll.mdb | Bin 60540 -> 60540 bytes .../bin/Editor/DOTweenEditor.dll | Bin 52736 -> 52736 bytes .../bin/Editor/DOTweenEditor.dll.mdb | Bin 9551 -> 9551 bytes .../bin/Editor/DOTweenUpgradeManager.dll | Bin 10752 -> 10752 bytes .../bin/Editor/DOTweenUpgradeManager.dll.mdb | Bin 889 -> 889 bytes 56 files changed, 2146 insertions(+), 696 deletions(-) delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween43.dll delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween43.dll.mdb delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween43.dll.mdb.meta delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween43.dll.meta delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween43.xml delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween43.xml.meta delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.dll delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.dll.mdb delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.dll.mdb.meta delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.dll.meta delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.xml delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.xml.meta delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween50.dll delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween50.dll.mdb delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween50.dll.meta delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween50.xml delete mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween50.xml.meta rename UnityExamples.Unity5/Assets/Demigiant/DOTween/{DOTween50.dll.mdb.meta => Modules.meta} (58%) create mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs create mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta create mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs create mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta create mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs create mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta create mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs create mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta create mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs create mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta create mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs create mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta create mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs create mode 100644 UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta diff --git a/UnityExamples.Unity5/Assets/DOTween Examples/CustomPlugin Example/CustomRangePlugin.cs b/UnityExamples.Unity5/Assets/DOTween Examples/CustomPlugin Example/CustomRangePlugin.cs index 4bf6454..439b412 100644 --- a/UnityExamples.Unity5/Assets/DOTween Examples/CustomPlugin Example/CustomRangePlugin.cs +++ b/UnityExamples.Unity5/Assets/DOTween Examples/CustomPlugin Example/CustomRangePlugin.cs @@ -25,6 +25,13 @@ public class CustomRangePlugin : ABSTweenPlugin t, CustomRange fromValue, bool setImmediately) + { + t.startValue = fromValue; + if (setImmediately) t.setter(fromValue); + } + // Used by special plugins, just let it return the given value public override CustomRange ConvertToStartValue(TweenerCore t, CustomRange value) { diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween.XML b/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween.XML index c7fd644..9d179a7 100644 --- a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween.XML +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween.XML @@ -137,6 +137,17 @@ Public so it can be used by external ease factories + + + Behaviour in case a tween nested inside a Sequence fails + + + + If the Sequence contains other elements, kill the failed tween but preserve the rest + + + Kill the whole Sequence + Additional notices passed to plugins when updating. @@ -153,11 +164,52 @@ Lets the plugin know that we restarted or rewinded + + + OnRewind callback behaviour (can only be set via DOTween's Utility Panel) + + + + + When calling Rewind or PlayBackwards/SmoothRewind, OnRewind callbacks will be fired only if the tween isn't already rewinded + + + + + When calling Rewind, OnRewind callbacks will always be fired, even if the tween is already rewinded. + When calling PlayBackwards/SmoothRewind instead, OnRewind callbacks will be fired only if the tween isn't already rewinded + + + + + When calling Rewind or PlayBackwards/SmoothRewind, OnRewind callbacks will always be fired, even if the tween is already rewinded + + Public only so custom shortcuts can access some of these methods + + + INTERNAL: used by DO shortcuts and Modules to set special startup mode + + + + + INTERNAL: used by DO shortcuts and Modules to set the tween as blendable + + + + + INTERNAL: used by DO shortcuts and Modules to prevent a tween from using a From setup even if passed + + + + + Used to dispatch commands that need to be captured externally, usually by Modules + + Returns a Vector3 with z = 0 @@ -168,6 +220,43 @@ Returns the 2D angle between two vectors + + + Uses approximate equality on each axis instead of Unity's Vector3 equality, + because the latter fails (in some cases) when assigning a Vector3 to a transform.position and then checking it. + + + + + Looks for the type within all possible project assembly names + + + + NO-GC METHOD: changes the start value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new start value + If bigger than 0 applies it as the new tween duration + + + NO-GC METHOD: changes the end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new end value + If TRUE the start value will become the current target's value, otherwise it will stay the same + + + NO-GC METHOD: changes the end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new end value + If bigger than 0 applies it as the new tween duration + If TRUE the start value will become the current target's value, otherwise it will stay the same + + + NO-GC METHOD: changes the start and end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new start value + The new end value + If bigger than 0 applies it as the new tween duration + Struct that stores two colors (used for LineRenderer tweens) @@ -210,6 +299,9 @@ INTERNAL: do not use + + INTERNAL: do not use + INTERNAL: do not use @@ -238,6 +330,10 @@ (like targets becoming null while a tween is playing). Default: TRUE + + Behaviour in case a tween nested inside a Sequence fails (caught by safe mode). + Default: NestedTweenFailureBehaviour.TryToPreserveSequence + If TRUE you will get a DOTween report when exiting play mode (only in the Editor). Useful to know how many max Tweeners and Sequences you reached and optimize your final project accordingly. @@ -264,6 +360,13 @@ DOTween's log behaviour. Default: LogBehaviour.ErrorsOnly + + Used to intercept DOTween's logs. If this method isn't NULL, DOTween will call it before writing a log via Unity's own Debug log methods. + Return TRUE if you want DOTween to proceed with the log, FALSE otherwise. + This method must return a bool and accept two parameters: + - LogType: the type of Unity log that DOTween is trying to log + - object: the log message that DOTween wants to log + If TRUE draws path gizmos in Unity Editor (if the gizmos button is active). Deactivate this if you want to avoid gizmos overhead while in Unity Editor @@ -304,6 +407,9 @@ Default period used for eases Default: 0 + + Used internally. Assigned/removed by DOTweenComponent.Create/DestroyInstance + Must be called once, before the first ever DOTween call/reference, @@ -366,6 +472,13 @@ BEWARE: this is a slightly expensive operation so use it with care + + + Updates all tweens that are set to . + + Manual deltaTime + Unscaled delta time (used with tweens set as timeScaleIndependent) + Tweens a property or field to the given value using default plugins A getter for the field or property to tween. @@ -721,34 +834,38 @@ A tween is considered as playing even if its delay is actually playing - + Returns a list of all active tweens in a playing state. Returns NULL if there are no active playing tweens. Beware: each time you call this method a new list is generated, so use it for debug only + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) - + Returns a list of all active tweens in a paused state. Returns NULL if there are no active paused tweens. Beware: each time you call this method a new list is generated, so use it for debug only + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) - + Returns a list of all active tweens with the given id. Returns NULL if there are no active tweens with the given id. Beware: each time you call this method a new list is generated - If TRUE returns only the tweens with the given ID that are currently playing + If TRUE returns only the tweens with the given ID that are currently playing + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) - + Returns a list of all active tweens with the given target. Returns NULL if there are no active tweens with the given target. Beware: each time you call this method a new list is generated If TRUE returns only the tweens with the given target that are currently playing + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) @@ -861,6 +978,44 @@ Max Sequences capacity. Default: 50 + + + Behaviour that can be assigned when chaining a SetLink to a tween + + + + Pauses the tween when the link target is disabled + + + Pauses the tween when the link target is disabled, plays it when it's enabled + + + Pauses the tween when the link target is disabled, restarts it when it's enabled + + + Plays the tween when the link target is enabled + + + Restarts the tween when the link target is enabled + + + Kills the tween when the link target is disabled + + + Kills the tween when the link target is destroyed (becomes NULL). This is always active even if another behaviour is chosen + + + Completes the tween when the link target is disabled + + + Completes and kills the tween when the link target is disabled + + + Rewinds the tween (delay excluded) when the link target is disabled + + + Rewinds and kills the tween when the link target is disabled + Path mode (used to determine correct LookAt orientation) @@ -889,6 +1044,9 @@ Curved path (which uses Catmull-Rom curves) + + EXPERIMENTAL: Curved path (which uses Cubic Bezier curves, where each point requires two extra control points) + Path control point @@ -1201,16 +1359,6 @@ Methods that extend known Unity objects and allow to directly create and control tweens from their instances - - Tweens an AudioSource's volume to the given value. - Also stores the AudioSource as the tween's target so it can be used for filtered operations - The end value to reach (0 to 1)The duration of the tween - - - Tweens an AudioSource's pitch to the given value. - Also stores the AudioSource as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - Tweens a Camera's aspect to the given value. Also stores the camera as the tween's target so it can be used for filtered operations @@ -1326,6 +1474,13 @@ The name of the material property to tween (like _Tint or _SpecColor) The duration of the tween + + Tweens a Material's named color property with the given ID to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + Tweens a Material's alpha color to the given value (will have no effect unless your material supports transparency). @@ -1340,6 +1495,14 @@ The name of the material property to tween (like _Tint or _SpecColor) The duration of the tween + + Tweens a Material's alpha color with the given ID to the given value + (will have no effect unless your material supports transparency). + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + Tweens a Material's named float property to the given value. Also stores the material as the tween's target so it can be used for filtered operations @@ -1347,6 +1510,13 @@ The name of the material property to tween The duration of the tween + + Tweens a Material's named float property with the given ID to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + Tweens a Material's texture offset to the given value. Also stores the material as the tween's target so it can be used for filtered operations @@ -1380,80 +1550,12 @@ The name of the material property to tween The duration of the tween - - Tweens a Rigidbody's position to the given value. - Also stores the rigidbody as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a Rigidbody's X position to the given value. - Also stores the rigidbody as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a Rigidbody's Y position to the given value. - Also stores the rigidbody as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a Rigidbody's Z position to the given value. - Also stores the rigidbody as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a Rigidbody's rotation to the given value. - Also stores the rigidbody as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - Rotation mode - - - Tweens a Rigidbody's rotation so that it will look towards the given position. - Also stores the rigidbody as the tween's target so it can be used for filtered operations - The position to look atThe duration of the tween - Eventual axis constraint for the rotation - The vector that defines in which direction up is (default: Vector3.up) - - - Tweens a Rigidbody's position to the given value, while also applying a jump effect along the Y axis. - Returns a Sequence instead of a Tweener. - Also stores the Rigidbody as the tween's target so it can be used for filtered operations + + Tweens a Material's named Vector property with the given ID to the given value. + Also stores the material as the tween's target so it can be used for filtered operations The end value to reach - Power of the jump (the max height of the jump is represented by this plus the final Y offset) - Total number of jumps + The ID of the material property to tween (also called nameID in Unity's manual) The duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a Rigidbody's position through the given path waypoints, using the chosen path algorithm. - Also stores the Rigidbody as the tween's target so it can be used for filtered operations. - NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened. - BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). - If you plan to publish there you should use a regular transform.DOPath. - The waypoints to go through - The duration of the tween - The type of path: Linear (straight path) or CatmullRom (curved CatmullRom path) - The path mode: 3D, side-scroller 2D, top-down 2D - The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive. - Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints - The color of the path (shown when gizmos are active in the Play panel and the tween is running) - - - Tweens a Rigidbody's localPosition through the given path waypoints, using the chosen path algorithm. - Also stores the Rigidbody as the tween's target so it can be used for filtered operations - NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened. - BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). - If you plan to publish there you should use a regular transform.DOLocalPath. - The waypoint to go through - The duration of the tween - The type of path: Linear (straight path) or CatmullRom (curved CatmullRom path) - The path mode: 3D, side-scroller 2D, top-down 2D - The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive. - Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints - The color of the path (shown when gizmos are active in the Play panel and the tween is running) Tweens a TrailRenderer's startWidth/endWidth to the given value. @@ -1705,6 +1807,22 @@ Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints The color of the path (shown when gizmos are active in the Play panel and the tween is running) + + IMPORTANT: Unless you really know what you're doing, you should use the overload that accepts a Vector3 array instead. + Tweens a Transform's position via the given path. + Also stores the transform as the tween's target so it can be used for filtered operations + The path to use + The duration of the tween + The path mode: 3D, side-scroller 2D, top-down 2D + + + IMPORTANT: Unless you really know what you're doing, you should use the overload that accepts a Vector3 array instead. + Tweens a Transform's localPosition via the given path. + Also stores the transform as the tween's target so it can be used for filtered operations + The path to use + The duration of the tween + The path mode: 3D, side-scroller 2D, top-down 2D + Tweens a Tween's timeScale to the given value. Also stores the Tween as the tween's target so it can be used for filtered operations @@ -1733,6 +1851,15 @@ The name of the material property to tween (like _Tint or _SpecColor) The duration of the tween + + Tweens a Material's named color property with the given ID to the given value, + in a way that allows other DOBlendableColor tweens to work together on the same target, + instead than fight each other as multiple DOColor would do. + Also stores the Material as the tween's target so it can be used for filtered operations + The value to tween to + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + Tweens a Transform's position BY the given value (as if you chained a SetRelative), in a way that allows other DOBlendableMove tweens to work together on the same target, @@ -1765,6 +1892,17 @@ The value to tween byThe duration of the tween Rotation mode + + Punches a Transform's localRotation BY the given value and then back to the starting one + as if it was connected to the starting rotation via an elastic. Does it in a way that allows other + DOBlendableRotate tweens to work together on the same target + The punch strength (added to the Transform's current rotation) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting rotation when bouncing backwards. + 1 creates a full oscillation between the punch rotation and the opposite rotation, + while 0 oscillates only between the punch and the start rotation + Tweens a Transform's localScale BY the given value (as if you chained a SetRelative), in a way that allows other DOBlendableScale tweens to work together on the same target, @@ -2077,17 +2215,40 @@ - Sets the autoKill behaviour of the tween. - Has no effect if the tween has already started + Sets the autoKill behaviour of the tween to TRUE. + Has no effect if the tween has already started or if it's added to a Sequence Sets the autoKill behaviour of the tween. - Has no effect if the tween has already started + Has no effect if the tween has already started or if it's added to a Sequence 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. + + + Allows to link this tween to a GameObject + so that it will be automatically killed when the GameObject is destroyed. + Has no effect if the tween is added to a Sequence + The link target (unrelated to the target set via SetTarget) + + + Allows to link this tween to a GameObject and assign a behaviour depending on it. + This will also automatically kill the tween when the GameObject is destroyed. + Has no effect if the tween is added to a Sequence + The link target (unrelated to the target set via SetTarget) + The behaviour to use ( is always evaluated even if you choose another one) Sets the target for the tween, which can then be used as a filter with DOTween's static methods. @@ -2161,43 +2322,43 @@ If TRUE the tween will ignore Unity's Time.timeScale - Sets the onStart callback for the tween. + Sets the onStart callback for the tween, clearing any previous onStart callback that was set. Called the first time the tween is set in a playing state, after any eventual delay - Sets the onPlay callback for the tween. + Sets the onPlay callback for the tween, clearing any previous onPlay callback that was set. Called when the tween is set in a playing state, after any eventual delay. Also called each time the tween resumes playing from a paused state - Sets the onPlay callback for the tween. + Sets the onPause callback for the tween, clearing any previous onPause callback that was set. Called when the tween state changes from playing to paused. If the tween has autoKill set to FALSE, this is called also when the tween reaches completion. - Sets the onRewind callback for the tween. + Sets the onRewind callback for the tween, clearing any previous onRewind callback that was set. Called when the tween is rewinded, either by calling Rewind or by reaching the start position while playing backwards. Rewinding a tween that is already rewinded will not fire this callback - Sets the onUpdate callback for the tween. + Sets the onUpdate callback for the tween, clearing any previous onUpdate callback that was set. Called each time the tween updates - Sets the onStepComplete callback for the tween. + Sets the onStepComplete callback for the tween, clearing any previous onStepComplete callback that was set. Called the moment the tween completes one loop cycle, even when going backwards - Sets the onComplete callback for the tween. + Sets the onComplete callback for the tween, clearing any previous onComplete callback that was set. Called the moment the tween reaches its final forward position, loops included - Sets the onKill callback for the tween. + Sets the onKill callback for the tween, clearing any previous onKill callback that was set. Called the moment the tween is killed - Sets the onWaypointChange callback for the tween. + Sets the onWaypointChange callback for the tween, clearing any previous onWaypointChange callback that was set. Called when a path tween's current waypoint changes @@ -2270,6 +2431,24 @@ then immediately sends the target to the previously set endValue. If TRUE the FROM value will be calculated as relative to the current one + + Changes a TO tween into a FROM tween: sets the tween's starting value to the given one + and eventually sets the tween's target to that value immediately. + Value to start from + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + + + Changes a TO tween into a FROM tween: sets the tween's starting value to the given one + and eventually sets the tween's target to that value immediately. + Alpha value to start from (in case of Fade tweens) + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + + + Changes a TO tween into a FROM tween: sets the tween's starting value to the given one + and eventually sets the tween's target to that value immediately. + Value to start from (in case of Vector tweens that act on a single coordinate or scale tweens) + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + Sets a delayed startup for the tween. Has no effect on Sequences or if the tween has already started @@ -2423,10 +2602,18 @@ 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 + + + Int ID (usable for filtering with DOTween static methods). 4X faster than using an object id, 2X faster than using a string id. + Default is -999 so avoid using an ID like that or it will capture all unset intIds - Tween target (usable for filtering with DOTween static methods). Automatically set by tween creation shorcuts + Tween target (usable for filtering with DOTween static methods). Automatically set by tween creation shortcuts Called when the tween is set in a playing state, after any eventual delay. @@ -2456,9 +2643,21 @@ Called when a path tween's current waypoint changes + + Tweeners-only (ignored by Sequences), returns TRUE if the tween was set as relative + + + FALSE when tween is (or should be) despawned - set only by TweenManager + Gets and sets the time position (loops included, delays excluded) of the tween + + TRUE after the tween was set in a play state at least once, AFTER any delay is elapsed + + + Time position within a single loop cycle + Animates a single value @@ -2509,5 +2708,8 @@ Updates using FixedUpdate calls + + Updates using manual update calls + diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween.dll b/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween.dll index 53865dc84abbdefe2c9a71c03f3f9fe3b8103681..648422150de80dabc4ee2d3b08e3114cf340f3bc 100644 GIT binary patch literal 158720 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 diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween.dll.mdb b/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween.dll.mdb index 7efad500e73967e5349fe2ae3538cc349a697e1f..46593ad7a2b2faf0e4d829164f17ca81dd23eb22 100644 GIT binary patch literal 60540 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 MIIrUHIIrdZ14}W~J^%m! literal 55659 zcmce<2V7Lg`#n4}cY(!TQvg%M!~{%HG$vwY(I{&RV2Nl9E@%h{hDD8M z#flZ|V8w>mK}Eq{u=if#duDC}G34j}6W>*s%Q^Er^GvUIw#xj!UO0bxxp^HTe+>Os z-D%s=snwc}eY1Xbs`*~`UQoA z1cLKy=i5IpFcjY9hcBC1t%1FJgbe7aGA8&Auk)qFno|3#h>`YJn$KQd|8!cW*M=+a z<_vc`)4pHmh~&1kM_NDf<9{5oYLdlT=}D{ebv??MXLPC8XUzwj*KS=j=gz+V<%XPJ zGT_~VpHB%Re*byU9fQIn`uc|;-sW-%AG=p<-ZI_4&AtoEYJT5o?5%*K(>C-9JKfRM z$J*dJ>GmH7-rV0B*uviu5f(lG!Pjp7b^ZgJgA}3 zH(ksm0snQ_zl4QHSo%g3Nr5?kmtVT@cAMsl4xR5{ZqT&#)Mw9~7yGo`{d<`&*F0N3 zAoM>k10oaJ`-l7Y<{7}=YZY?H{%Nz-n>_o3?k#_+*4D~XD^*VF@lmJD8r~nUmL%vu zP6QFWPhdnuP-rh}k(8KX=vMljDPJ}nysmkvy=Mb69@XCxzjylX0V@twzI&m=%E6@5 z+b{)b5NsKp)$-H?&-JU<4D7vfPZ^M<-)0zQ$ zd$k%7^1*ul@4o9cz;{PdR*P?|j`0p0urey@{r|j9s_D@>EVP$q#mm1={OoY4U(0Fl zZS6T=aJx&RJ`3?mITcZGzsG>kbyt%@NZ?z_l@1|=%{cwB?PqO!O!iE>a(K{+mIodk z_n>K?W&V*>_VITccYR;On}ob2Gdc$HF2b!@c)0%nEm0EpWUb#-^SRfMY5sIk&4uHC z3k<9B``n2AbWg!oDY;MG-&)qR_mB8Rv*LqgA5{N*mXkTnG`#WX_`g!dT`rgP{lU*V zFZ_P!{4Xjj&3J2BBPxt$#@}ac?|k`upLyJq&yP(w)nHqz82<|uVgt6-e6LT7vWvYg z5zAZ3npU9^nh`5amMdFJ#d^)`9hf}xqnDBGKIrzR*VkWOt?T34Dmlv(On!Y!M*Ps% zKO!(Z6n(g6%Zw+DEn`>o_Z;)b(GSYbpE=>fCZP*6la8-Fmic2V_idGP-kL4mD68#y z_Ou4-=`v~h#?R;ObMT0X8gcW?+A8kmCdMOwxTJKc+<$%3cSltn^VUi#w?#{lw1}&} z8E)M&FQ^u^`D}XlM!R9^mN6@O~BImh^M zP^FkZ_dZOy@#xdt5t(0Phdk*aH6*>>QW=rkkUCm&T*-C2Xj$^2=`t2~Hi?$^daw27 zL)V*@Zqy+sCONW`-|V++NL|ekN52sha=x`|GhtKnAm96Kw`XVG8x&$QquIoDi+ap- zTYdDcb#*=w;TZF1c7$6~s#Lqtx8>R)+v+SGod0-BtZ}QJjT~Cs zX+AY*z{Y1kknp#ZLZ-0rz^*=h0xd!QA#$%_?GO zOO1@Jle(nui}j_GmbIzcW8hmWM8YP;m^S{Q{=LMkzT0n}1F!a<+A8T zAJtB%Kjf_Y#!cTg9`ixpHHn??HzNc7|FOzHqIchr5bvn_RfaIk0h|Lr?gCbh!$eU;x@MTY9~uTFf|!@eNJ)cHRzRi?hyh_K#D>F(OTZ+M_SCeem%=T`K&`p1Tv%_m;j zS?7x7`=_

Q(Q?v*x|N?7k><|L6yfr2Btdszlm&2KMONORj87>?=3xy0*pl6C-DA zzPM^vjZ5hb&#q3qn^Vy4vl{izeckduAHd26$eS9bu-<*bLIXwp8s9skcgyInOo{JD zzW6hI$$?)^em<|M|qCup#P-D#}TH?+uLtf3|JC`G>rQ3$DMj zyLPt$hOUolOx&GYKX60$bpikRvc9mR$WrcV_WO4~R~_;FsE+kI>}s)l?zQ3WWtxB2 zY0dDsk9KVdD>(6X@%&5ejht<)aY%kXYQ$aBC~(Y-N^U;j2P-X zzHy80r0d(LB5L0l_A_bp^RYfHMtqSqZ|k9I7o&HL|2}j3GoRT_2Q+W?d$&rY$J+>9 zS>oo&fo!Nea?Igtv8S3&KQbX@&?z4s&M5oom7V|jT8LaE{jHdA zcl8MCD{uJJ{B_lZtKXYijvZOv=f|sC8^_k$eR1I*&9}@7$zQT)&uH*8z*Mb!84jsYK6&in237wEKlCO(_qP6bg6X%XUYE1l!@C5%M`9E`+!eQj3r;2>Ftbudr24NNqx}>F!2IT|(*+ z@(m&N3HesuS*Mimo0o?rQblSq5lZRgCS*#JIZd#Ij!3*qIh4|bq&8WlKu!YM(S+=5 zvP*$J7Eo>za=gh24yjsgiGfK?ImxayA=jHcko^N}MjLeD@W`fQRMXK-d05IQpT_&oSIX!a4|3MyoQAHK(T5)7k;h{V-72GF zOk}KSoJqAIQ$`a^B+-VH4ww#V=vf)PU?LYymo)T>j6OAy zXQt;GdPhblc#?^pF`lXoPh@nyCt2XRP(z1EB6ZR|$wtpj8ahfw4||eq&m0Y%CZm@< z$raD58k#84SSwHWzdgxI&%w>r@RrHGr!*&1n@N;#ikA4Na@#$I;K-Bt7SC25M!4Z`~Exp+|$dX4Q+yCAdLew5x;k zRQM}L8=%_Sh|Ig(oLp%!<$E>ZhZzJqz9pH^a$-vroh+mCT9WxK7XU3!%2|K$4@QsF zD>NvgZ$RLGm$3e!y{Mf?UL%s%{*~k{RVaCpw1zTB-m)wr%(h(F@X!E#eqm=Przp87 z$q#jdW%s+EW%su+N}A832NW;4^qi7G&)6afJ;Ceq0p+PIDTmyMGtlH$aw7Vlaw1mE z3OBzxsix$}?Cfldi>r^LYpi41UYA-9(lsq(-epFS1!*nG$yT$ycy}d*1cp*tE-*Bp zqkl->K&uJ+yn&RJ3s4KI3`nI>xYYto4M;v48YC&PBg2&l*Jv%LfOio3K|P9yP_}`( zy8C^gm#k>%Z(){^HmI+aD~|?l!-IL1U1%l+<{_=sGIC2UBblwqp4M3!`qY3n7_yX| zZcWa#KC2O9C;QH6LyojLs-a6{^lBS&t<7}}O;L3WZcB!=9okk6alPz&T3a%`?FE+Iot{D z$i#Lr?Nn>7sNv3UM;5eOsNr{H-<#Tz&F!{m=p)s4PCIg>-BAty+lDp}se8R0xzX;X zhDX_o5;v?p8Qwmsy&C2iTO}`Mv?p=xXKHvXni-)br9DY)ze>a7WG#EzldSf8H8ft; za;7~w+y0z}FI2TWZcm=Hf2!fjWi1naAQOLx`9Za1jjCn-4`jg)3pISRs%6s;Wb+SO zG<=t=<>(LO*bliHx=+<|{ReX6hnpIntHj@%4EK)mR>M52`kvuU;=E^S_!ZfAiZ@C1 zUZtV8RNuS3Nv8K64IgSJ()NruIqQ8+L!)K%p*MNt{a8aM%jg&%GS+9Dk7~yp8BOpZ zi9Sghy4a3Zcj85Eoex>>vq8hx%DxZ!kV8I)HFT>TO{pRVIG21#fzM?Sl-Nb^6PD=C z)ULFK=t`w5JL={>$RxDC^dX~tV|}^zf9!#qb1?~hjp%`^DIKu1%$IES-2+j443gx^ z(?Po8ORoA})4+NH{M(nj^c~zm_1RQ_u^q^y4wE&ol>irZAd5OI)(yTeNrRO9glD?|U_bWBGQ z+i_AySf{3wkr-?c9}fUFD?5^uj%l1lI5tvk>g?5^vRVGA8p(Ye=tvHBJf!((Qp5*( zacXm?Be~o0p5~)XaUZdr$fQn_JE@`kRK$mu$&YJU-HEK}v{v&ITEvgDPfS%$Qza4H z@lNDKr##K$FiOo{Jshp_Pc_~s*$nMWB0CT3tcDl+8ZYxYllh$&XkHR%k?=%7yE~K2 z&U-X3D_-N}T4!>-^9{|*mZDyKxGm#;B;$Xa@S|$Wfudf_+{?-zNy?9@nimZG3+IBc zCFe(SiVEV(j#KCL~7Wp`%3)$W!w~HFz zXi2keV^^}N>t>CaBA7

SJ9=Zr9@)lO&iX)s3Y&d8aG6 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⪙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 U8k)adbyQp%%CcV}zw{aSFOK3pU;qFB diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween43.dll.mdb b/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween43.dll.mdb deleted file mode 100644 index f00e848319a4f7a9c3d8dcd30e6d328e09826998..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1789 zcmbVNTTB#J82-vn{Qds@^50xLas5vA2LeKs(7S2Ua&MCt+2|>3TuKtH)2il z`F^cw`Q-E3gDD>$mdZD;JX&4fFmiBX@r;YpI05o4^2(Qi^KmgIes*xi%FuAU^e{3nTVeI_wHA&Kue9pIO_$UY@tjGFps zUN{^xBMV~ISfuC_Z0{k?Fd88*%Sb^#8B?ygrLg zT=|zWHG9t3=ef_K1L7#VMXzv^@AS}mr2%{0&terO#I0p+;8BGxDpv;{*w7P*3%1%@ z=k0gKX$dp#?g`xMrIX%s{RjReB}5)!Qaa1YIu!|&NEaASw|DujmpZ(i{f}ZM402CQ z->jyI+uNYi zMtzemR-adzcqrTp@hw7#pJr@!K;6GsH5Q9Of6=K$KZedC?Mu#}*L1qB-{|fArPD+G zZ`Zr;^n0b#YyFKqk-V_1q~zb3#)yd?G8PY<7jvvjqAf`~lSD$KEXAKM0P%w0EunS* z7g?DIBO4HxtQ - - - DOTween43 - - - -

- Methods that extend known Unity objects and allow to directly create and control tweens from their instances. - These, as all DOTween43 methods, require Unity 4.3 or later. - - - - Tweens a Material's color using the given gradient - (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). - Also stores the image as the tween's target so it can be used for filtered operations - The gradient to useThe duration of the tween - - - Tweens a Material's named color property using the given gradient - (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). - Also stores the image as the tween's target so it can be used for filtered operations - The gradient to use - The name of the material property to tween (like _Tint or _SpecColor) - The duration of the tween - - - Tweens a SpriteRenderer's color to the given value. - Also stores the spriteRenderer as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a Material's alpha color to the given value. - Also stores the spriteRenderer as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a SpriteRenderer's color using the given gradient - (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). - Also stores the image as the tween's target so it can be used for filtered operations - The gradient to useThe duration of the tween - - - Tweens a Rigidbody2D's position to the given value. - Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a Rigidbody2D's X position to the given value. - Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a Rigidbody2D's Y position to the given value. - Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a Rigidbody2D's rotation to the given value. - Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a Rigidbody2D's position to the given value, while also applying a jump effect along the Y axis. - Returns a Sequence instead of a Tweener. - Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations. - IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position - The end value to reach - Power of the jump (the max height of the jump is represented by this plus the final Y offset) - Total number of jumps - The duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a SpriteRenderer's color to the given value, - in a way that allows other DOBlendableColor tweens to work together on the same target, - instead than fight each other as multiple DOColor would do. - Also stores the SpriteRenderer as the tween's target so it can be used for filtered operations - The value to tween toThe duration of the tween - - - diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween43.xml.meta b/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween43.xml.meta deleted file mode 100644 index 8d98b42..0000000 --- a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween43.xml.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: bee01d69fe6a7fe40b5abe7cf7256796 -timeCreated: 1427036876 -licenseType: Pro -TextScriptImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.dll b/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.dll deleted file mode 100644 index 78b1820f6ed7500ae350383c7187d8aa88530637..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20480 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 BvhM%@ diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.dll.mdb b/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.dll.mdb deleted file mode 100644 index 0ae8cbd4e600174e30247e9d09291f2ef6beb7d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5901 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 diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.dll.mdb.meta b/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.dll.mdb.meta deleted file mode 100644 index 82eb3ab..0000000 --- a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.dll.mdb.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0cefc8c9f88432a4691eda55a1455277 -timeCreated: 1427036874 -licenseType: Pro -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.dll.meta b/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.dll.meta deleted file mode 100644 index 2bcabf3..0000000 --- a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.dll.meta +++ /dev/null @@ -1,24 +0,0 @@ -fileFormatVersion: 2 -guid: e533a471b73bc124e9b533b673c8fcde -timeCreated: 1427036876 -licenseType: Pro -PluginImporter: - serializedVersion: 1 - iconMap: {} - executionOrder: {} - isPreloaded: 0 - platformData: - Any: - enabled: 1 - settings: {} - Editor: - enabled: 0 - settings: - DefaultValueInitialized: true - WindowsStoreApps: - enabled: 0 - settings: - CPU: AnyCPU - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.xml b/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.xml deleted file mode 100644 index 1118c89..0000000 --- a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.xml +++ /dev/null @@ -1,261 +0,0 @@ - - - - DOTween46 - - - - - Various utils that require Unity 4.6 or later - - - - - Converts the anchoredPosition of the first RectTransform to the second RectTransform, - taking into consideration offset, anchors and pivot, and returns the new anchoredPosition - - - - - Methods that extend known Unity objects and allow to directly create and control tweens from their instances. - These, as all DOTween46 methods, require Unity 4.6 or later. - - - - Tweens a CanvasGroup's alpha color to the given value. - Also stores the canvasGroup as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens an Graphic's color to the given value. - Also stores the image as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens an Graphic's alpha color to the given value. - Also stores the image as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens an Image's color to the given value. - Also stores the image as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens an Image's alpha color to the given value. - Also stores the image as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens an Image's fillAmount to the given value. - Also stores the image as the tween's target so it can be used for filtered operations - The end value to reach (0 to 1)The duration of the tween - - - Tweens an Image's colors using the given gradient - (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). - Also stores the image as the tween's target so it can be used for filtered operations - The gradient to useThe duration of the tween - - - Tweens an LayoutElement's flexibleWidth/Height to the given value. - Also stores the LayoutElement as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens an LayoutElement's minWidth/Height to the given value. - Also stores the LayoutElement as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens an LayoutElement's preferredWidth/Height to the given value. - Also stores the LayoutElement as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a Outline's effectColor to the given value. - Also stores the Outline as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a Outline's effectColor alpha to the given value. - Also stores the Outline as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a Outline's effectDistance to the given value. - Also stores the Outline as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a RectTransform's anchoredPosition to the given value. - Also stores the RectTransform as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a RectTransform's anchoredPosition X to the given value. - Also stores the RectTransform as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a RectTransform's anchoredPosition Y to the given value. - Also stores the RectTransform as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a RectTransform's anchoredPosition3D to the given value. - Also stores the RectTransform as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a RectTransform's anchorMax to the given value. - Also stores the RectTransform as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a RectTransform's anchorMin to the given value. - Also stores the RectTransform as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a RectTransform's pivot to the given value. - Also stores the RectTransform as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a RectTransform's pivot X to the given value. - Also stores the RectTransform as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a RectTransform's pivot Y to the given value. - Also stores the RectTransform as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a RectTransform's sizeDelta to the given value. - Also stores the RectTransform as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Punches a RectTransform's anchoredPosition towards the given direction and then back to the starting one - as if it was connected to the starting position via an elastic. - Also stores the RectTransform as the tween's target so it can be used for filtered operations - The direction and strength of the punch (added to the RectTransform's current position) - The duration of the tween - Indicates how much will the punch vibrate - Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards. - 1 creates a full oscillation between the punch direction and the opposite direction, - while 0 oscillates only between the punch and the start position - If TRUE the tween will smoothly snap all values to integers - - - Shakes a RectTransform's anchoredPosition with the given values. - Also stores the RectTransform as the tween's target so it can be used for filtered operations - The duration of the tween - The shake strength - Indicates how much will the shake vibrate - Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). - Setting it to 0 will shake along a single direction. - If TRUE the tween will smoothly snap all values to integers - If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not - - - Shakes a RectTransform's anchoredPosition with the given values. - Also stores the RectTransform as the tween's target so it can be used for filtered operations - The duration of the tween - The shake strength on each axis - Indicates how much will the shake vibrate - Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). - Setting it to 0 will shake along a single direction. - If TRUE the tween will smoothly snap all values to integers - If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not - - - Tweens a RectTransform's anchoredPosition to the given value, while also applying a jump effect along the Y axis. - Returns a Sequence instead of a Tweener. - Also stores the RectTransform as the tween's target so it can be used for filtered operations - The end value to reach - Power of the jump (the max height of the jump is represented by this plus the final Y offset) - Total number of jumps - The duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a ScrollRect's horizontal/verticalNormalizedPosition to the given value. - Also stores the ScrollRect as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a ScrollRect's horizontalNormalizedPosition to the given value. - Also stores the ScrollRect as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a ScrollRect's verticalNormalizedPosition to the given value. - Also stores the ScrollRect as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a Slider's value to the given value. - Also stores the Slider as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a Text's color to the given value. - Also stores the Text as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a Text's alpha color to the given value. - Also stores the Text as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a Text's text to the given value. - Also stores the Text as the tween's target so it can be used for filtered operations - The end string to tween toThe duration of the tween - If TRUE (default), rich text will be interpreted correctly while animated, - otherwise all tags will be considered as normal text - The type of scramble mode to use, if any - A string containing the characters to use for scrambling. - Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters. - Leave it to NULL (default) to use default ones - - - Tweens a Graphic's color to the given value, - in a way that allows other DOBlendableColor tweens to work together on the same target, - instead than fight each other as multiple DOColor would do. - Also stores the Graphic as the tween's target so it can be used for filtered operations - The value to tween toThe duration of the tween - - - Tweens a Image's color to the given value, - in a way that allows other DOBlendableColor tweens to work together on the same target, - instead than fight each other as multiple DOColor would do. - Also stores the Image as the tween's target so it can be used for filtered operations - The value to tween toThe duration of the tween - - - Tweens a Text's color BY the given value, - in a way that allows other DOBlendableColor tweens to work together on the same target, - instead than fight each other as multiple DOColor would do. - Also stores the Text as the tween's target so it can be used for filtered operations - The value to tween toThe duration of the tween - - - diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.xml.meta b/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.xml.meta deleted file mode 100644 index 5599a23..0000000 --- a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween46.xml.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 11b4db111ab0d92449c73aa232309358 -timeCreated: 1427036876 -licenseType: Pro -TextScriptImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween50.dll b/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween50.dll deleted file mode 100644 index bbc9a430cf7518594ac0644d85ac6b83294694f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5632 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 - - - DOTween50 - - - - - Methods that extend known Unity objects and allow to directly create and control tweens from their instances. - These, as all DOTween50 methods, require Unity 5.0 or later. - - - - Tweens an AudioMixer's exposed float to the given value. - Also stores the AudioMixer as the tween's target so it can be used for filtered operations. - Note that you need to manually expose a float in an AudioMixerGroup in order to be able to tween it from an AudioMixer. - Name given to the exposed float to set - The end value to reachThe duration of the tween - - - - Completes all tweens that have this target as a reference - (meaning tweens that were started from this target, or that had this target added as an Id) - and returns the total number of tweens completed - (meaning the tweens that don't have infinite loops and were not already complete) - - For Sequences only: if TRUE also internal Sequence callbacks will be fired, - otherwise they will be ignored - - - - Kills all tweens that have this target as a reference - (meaning tweens that were started from this target, or that had this target added as an Id) - and returns the total number of tweens killed. - - If TRUE completes the tween before killing it - - - - Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference - (meaning tweens that were started from this target, or that had this target added as an Id) - and returns the total number of tweens flipped. - - - - - Sends to the given position all tweens that have this target as a reference - (meaning tweens that were started from this target, or that had this target added as an Id) - and returns the total number of tweens involved. - - Time position to reach - (if higher than the whole tween duration the tween will simply reach its end) - If TRUE will play the tween after reaching the given position, otherwise it will pause it - - - - Pauses all tweens that have this target as a reference - (meaning tweens that were started from this target, or that had this target added as an Id) - and returns the total number of tweens paused. - - - - - Plays all tweens that have this target as a reference - (meaning tweens that were started from this target, or that had this target added as an Id) - and returns the total number of tweens played. - - - - - Plays backwards all tweens that have this target as a reference - (meaning tweens that were started from this target, or that had this target added as an Id) - and returns the total number of tweens played. - - - - - Plays forward all tweens that have this target as a reference - (meaning tweens that were started from this target, or that had this target added as an Id) - and returns the total number of tweens played. - - - - - Restarts all tweens that have this target as a reference - (meaning tweens that were started from this target, or that had this target added as an Id) - and returns the total number of tweens restarted. - - - - - Rewinds all tweens that have this target as a reference - (meaning tweens that were started from this target, or that had this target added as an Id) - and returns the total number of tweens rewinded. - - - - - Smoothly rewinds all tweens that have this target as a reference - (meaning tweens that were started from this target, or that had this target added as an Id) - and returns the total number of tweens rewinded. - - - - - Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference - (meaning tweens that were started from this target, or that had this target added as an Id) - and returns the total number of tweens involved. - - - - diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween50.xml.meta b/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween50.xml.meta deleted file mode 100644 index 506fe3b..0000000 --- a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween50.xml.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 77cae47a46077594587f7b82623ca74c -timeCreated: 1427036876 -licenseType: Pro -TextScriptImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.XML b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.XML index 6afe743..92ab578 100644 --- a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.XML +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.XML @@ -4,37 +4,58 @@ DOTweenEditor - + + + Starts the update loop of tween in the editor. Has no effect during playMode. + + Eventual callback to call after every update + + + + Stops the update loop and clears the onPreviewUpdated callback. + + If TRUE also resets the tweened objects to their original state + + + + Readies the tween for editor preview by setting its UpdateType to Manual plus eventual extra settings. + + The tween to ready + If TRUE (recommended) removes all callbacks (OnComplete/Rewind/etc) + If TRUE prevents the tween from being auto-killed at completion + If TRUE starts playing the tween immediately + + Checks that the given editor texture use the correct import settings, and applies them if they're incorrect. - + - Returns TRUE if addons setup is required. + Returns TRUE if setup is required - + Returns TRUE if the file/directory at the given path exists. Path, relative to Unity's project folder - + Converts the given project-relative path to a full path, with backward (\) slashes). - + Converts the given full path to a path usable with AssetDatabase methods (relative to Unity's project folder, and with the correct Unity forward (/) slashes). - + Connects to a asset. If the asset already exists at the given path, loads it and returns it. @@ -45,21 +66,33 @@ File path (relative to Unity's project folder) If TRUE and the requested asset doesn't exist, forces its creation - + Full path for the given loaded assembly, assembly file included - + + + Adds the given global define if it's not already present + + + + + Removes the given global define if it's present + + + + + Returns TRUE if the given global define is present in all the + or only in the given , depending on passed parameters. + + + to use. Leave NULL to check in all of them. + + Not used as menu item anymore, but as a utiity function - - - Setups DOTween - - If TRUE, no warning window appears in case there is no need for setup - diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll index 80a96a1287b40d66dc1ceb08135f8766843886be..b78b86d2868a52f39e54203a55e5c4f9812ecb08 100644 GIT binary patch literal 52736 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 literal 32768 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 EFE1!N(EtDd diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb index c1446e460ebea60e0c88576ade77a82525f31ea7..5ab81169721f8358c36660f2a259777b679f1841 100644 GIT binary patch literal 9551 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 BGAaN7 diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween50.dll.mdb.meta b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules.meta similarity index 58% rename from UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween50.dll.mdb.meta rename to UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules.meta index 4788b25..2b6951b 100644 --- a/UnityExamples.Unity5/Assets/Demigiant/DOTween/DOTween50.dll.mdb.meta +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules.meta @@ -1,6 +1,7 @@ fileFormatVersion: 2 -guid: 305308bb99989414fa15ec8e339b70b0 -timeCreated: 1427036874 +guid: a8aaba8675a8ddc41b00c35c85e249a8 +folderAsset: yes +timeCreated: 1571306499 licenseType: Pro DefaultImporter: userData: diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs new file mode 100644 index 0000000..c195b6c --- /dev/null +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs @@ -0,0 +1,202 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; +using UnityEngine; +#if UNITY_5 || UNITY_2017_1_OR_NEWER +using UnityEngine.Audio; // Required for AudioMixer +#endif + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleAudio + { + #region Shortcuts + + #region Audio + + ///

Tweens an AudioSource's volume to the given value. + /// Also stores the AudioSource as the tween's target so it can be used for filtered operations + /// The end value to reach (0 to 1)The duration of the tween + public static TweenerCore DOFade(this AudioSource target, float endValue, float duration) + { + if (endValue < 0) endValue = 0; + else if (endValue > 1) endValue = 1; + TweenerCore t = DOTween.To(() => target.volume, x => target.volume = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an AudioSource's pitch to the given value. + /// Also stores the AudioSource as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPitch(this AudioSource target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pitch, x => target.pitch = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + +#if UNITY_5 || UNITY_2017_1_OR_NEWER + #region AudioMixer (Unity 5 or Newer) + + /// Tweens an AudioMixer's exposed float to the given value. + /// Also stores the AudioMixer as the tween's target so it can be used for filtered operations. + /// Note that you need to manually expose a float in an AudioMixerGroup in order to be able to tween it from an AudioMixer. + /// Name given to the exposed float to set + /// The end value to reachThe duration of the tween + public static TweenerCore DOSetFloat(this AudioMixer target, string floatName, float endValue, float duration) + { + TweenerCore t = DOTween.To(()=> { + float currVal; + target.GetFloat(floatName, out currVal); + return currVal; + }, x=> target.SetFloat(floatName, x), endValue, duration); + t.SetTarget(target); + return t; + } + + #region Operation Shortcuts + + /// + /// Completes all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens completed + /// (meaning the tweens that don't have infinite loops and were not already complete) + /// + /// For Sequences only: if TRUE also internal Sequence callbacks will be fired, + /// otherwise they will be ignored + public static int DOComplete(this AudioMixer target, bool withCallbacks = false) + { + return DOTween.Complete(target, withCallbacks); + } + + /// + /// Kills all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens killed. + /// + /// If TRUE completes the tween before killing it + public static int DOKill(this AudioMixer target, bool complete = false) + { + return DOTween.Kill(target, complete); + } + + /// + /// Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens flipped. + /// + public static int DOFlip(this AudioMixer target) + { + return DOTween.Flip(target); + } + + /// + /// Sends to the given position all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens involved. + /// + /// Time position to reach + /// (if higher than the whole tween duration the tween will simply reach its end) + /// If TRUE will play the tween after reaching the given position, otherwise it will pause it + public static int DOGoto(this AudioMixer target, float to, bool andPlay = false) + { + return DOTween.Goto(target, to, andPlay); + } + + /// + /// Pauses all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens paused. + /// + public static int DOPause(this AudioMixer target) + { + return DOTween.Pause(target); + } + + /// + /// Plays all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlay(this AudioMixer target) + { + return DOTween.Play(target); + } + + /// + /// Plays backwards all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlayBackwards(this AudioMixer target) + { + return DOTween.PlayBackwards(target); + } + + /// + /// Plays forward all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlayForward(this AudioMixer target) + { + return DOTween.PlayForward(target); + } + + /// + /// Restarts all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens restarted. + /// + public static int DORestart(this AudioMixer target) + { + return DOTween.Restart(target); + } + + /// + /// Rewinds all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens rewinded. + /// + public static int DORewind(this AudioMixer target) + { + return DOTween.Rewind(target); + } + + /// + /// Smoothly rewinds all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens rewinded. + /// + public static int DOSmoothRewind(this AudioMixer target) + { + return DOTween.SmoothRewind(target); + } + + /// + /// Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens involved. + /// + public static int DOTogglePause(this AudioMixer target) + { + return DOTween.TogglePause(target); + } + + #endregion + + #endregion +#endif + + #endregion + } +} +#endif diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta new file mode 100644 index 0000000..55b7757 --- /dev/null +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 35cdca364a187914bb323f7087eade56 +timeCreated: 1571306506 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs new file mode 100644 index 0000000..a1a1cb9 --- /dev/null +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs @@ -0,0 +1,216 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Core.Enums; +using DG.Tweening.Plugins; +using DG.Tweening.Plugins.Core.PathCore; +using DG.Tweening.Plugins.Options; +using UnityEngine; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModulePhysics + { + #region Shortcuts + + #region Rigidbody + + /// Tweens a Rigidbody's position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMove(this Rigidbody target, Vector3 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody's X position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveX(this Rigidbody target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue, 0, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody's Y position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveY(this Rigidbody target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, endValue, 0), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody's Z position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveZ(this Rigidbody target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue), duration); + t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody's rotation to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// Rotation mode + public static TweenerCore DORotate(this Rigidbody target, Vector3 endValue, float duration, RotateMode mode = RotateMode.Fast) + { + TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration); + t.SetTarget(target); + t.plugOptions.rotateMode = mode; + return t; + } + + /// Tweens a Rigidbody's rotation so that it will look towards the given position. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The position to look atThe duration of the tween + /// Eventual axis constraint for the rotation + /// The vector that defines in which direction up is (default: Vector3.up) + public static TweenerCore DOLookAt(this Rigidbody target, Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3? up = null) + { + TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, towards, duration) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetLookAt); + t.plugOptions.axisConstraint = axisConstraint; + t.plugOptions.up = (up == null) ? Vector3.up : (Vector3)up; + return t; + } + + #region Special + + /// Tweens a Rigidbody's position to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJump(this Rigidbody target, Vector3 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, jumpPower, 0), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(() => startPosY = target.position.y); + s.Append(DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue.x, 0, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue.z), duration) + .SetOptions(AxisConstraint.Z, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + yTween.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector3 pos = target.position; + pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad); + target.MovePosition(pos); + }); + return s; + } + + /// Tweens a Rigidbody's position through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations. + /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOPath. + /// The waypoints to go through + /// The duration of the tween + /// The type of path: Linear (straight path) or CatmullRom (curved CatmullRom path) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOPath( + this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, new Path(pathType, path, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + return t; + } + /// Tweens a Rigidbody's localPosition through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations + /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOLocalPath. + /// The waypoint to go through + /// The duration of the tween + /// The type of path: Linear (straight path) or CatmullRom (curved CatmullRom path) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOLocalPath( + this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + // Used by path editor when creating the actual tween, so it can pass a pre-compiled path + internal static TweenerCore DOPath( + this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + return t; + } + internal static TweenerCore DOLocalPath( + this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta new file mode 100644 index 0000000..5288d26 --- /dev/null +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a2c8eb01e28f57043873d9e80957dcb2 +timeCreated: 1571306506 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs new file mode 100644 index 0000000..f40a7d0 --- /dev/null +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs @@ -0,0 +1,107 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; +using UnityEngine; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModulePhysics2D + { + #region Shortcuts + + #region Rigidbody2D Shortcuts + + /// Tweens a Rigidbody2D's position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMove(this Rigidbody2D target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody2D's X position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveX(this Rigidbody2D target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector2(endValue, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody2D's Y position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveY(this Rigidbody2D target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector2(0, endValue), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody2D's rotation to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DORotate(this Rigidbody2D target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration); + t.SetTarget(target); + return t; + } + + #region Special + + /// Tweens a Rigidbody2D's position to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations. + /// IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJump(this Rigidbody2D target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.position, x => target.position = x, new Vector2(0, jumpPower), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(() => startPosY = target.position.y); + s.Append(DOTween.To(() => target.position, x => target.position = x, new Vector2(endValue.x, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + yTween.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector3 pos = target.position; + pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad); + target.MovePosition(pos); + }); + return s; + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta new file mode 100644 index 0000000..90a2548 --- /dev/null +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e5f6736898055da4a92c520f0e872cc4 +timeCreated: 1571306506 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs new file mode 100644 index 0000000..549fff3 --- /dev/null +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs @@ -0,0 +1,93 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER +using System; +using UnityEngine; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleSprite + { + #region Shortcuts + + #region SpriteRenderer + + /// Tweens a SpriteRenderer's color to the given value. + /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this SpriteRenderer target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Material's alpha color to the given value. + /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this SpriteRenderer target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a SpriteRenderer's color using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this SpriteRenderer target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + + #endregion + + #region Blendables + + #region SpriteRenderer + + /// Tweens a SpriteRenderer's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the SpriteRenderer as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this SpriteRenderer target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta new file mode 100644 index 0000000..16b8538 --- /dev/null +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f5b5b3a415279844d88ddc9f4d926c68 +timeCreated: 1571306506 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs new file mode 100644 index 0000000..6d45a04 --- /dev/null +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs @@ -0,0 +1,609 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true && (UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER +using System; +using UnityEngine; +using UnityEngine.UI; +using DG.Tweening.Core; +using DG.Tweening.Core.Enums; +using DG.Tweening.Plugins.Options; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleUI + { + #region Shortcuts + + #region CanvasGroup + + /// Tweens a CanvasGroup's alpha color to the given value. + /// Also stores the canvasGroup as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this CanvasGroup target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.alpha, x => target.alpha = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region Graphic + + /// Tweens an Graphic's color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Graphic target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Graphic's alpha color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Graphic target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region Image + + /// Tweens an Image's color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Image target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Image's alpha color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Image target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Image's fillAmount to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reach (0 to 1)The duration of the tween + public static TweenerCore DOFillAmount(this Image target, float endValue, float duration) + { + if (endValue > 1) endValue = 1; + else if (endValue < 0) endValue = 0; + TweenerCore t = DOTween.To(() => target.fillAmount, x => target.fillAmount = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Image's colors using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this Image target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + + #endregion + + #region LayoutElement + + /// Tweens an LayoutElement's flexibleWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOFlexibleSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => new Vector2(target.flexibleWidth, target.flexibleHeight), x => { + target.flexibleWidth = x.x; + target.flexibleHeight = x.y; + }, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens an LayoutElement's minWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMinSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => new Vector2(target.minWidth, target.minHeight), x => { + target.minWidth = x.x; + target.minHeight = x.y; + }, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens an LayoutElement's preferredWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOPreferredSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => new Vector2(target.preferredWidth, target.preferredHeight), x => { + target.preferredWidth = x.x; + target.preferredHeight = x.y; + }, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + #endregion + + #region Outline + + /// Tweens a Outline's effectColor to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Outline target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.effectColor, x => target.effectColor = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Outline's effectColor alpha to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Outline target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.effectColor, x => target.effectColor = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Outline's effectDistance to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOScale(this Outline target, Vector2 endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.effectDistance, x => target.effectDistance = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region RectTransform + + /// Tweens a RectTransform's anchoredPosition to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPosX(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPosY(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, endValue), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's anchoredPosition3D to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3D(this RectTransform target, Vector3 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition3D X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3DX(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(endValue, 0, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition3D Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3DY(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, endValue, 0), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition3D Z to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3DZ(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, 0, endValue), duration); + t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's anchorMax to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorMax(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchorMax, x => target.anchorMax = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's anchorMin to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorMin(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchorMin, x => target.anchorMin = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's pivot to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPivot(this RectTransform target, Vector2 endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, endValue, duration); + t.SetTarget(target); + return t; + } + /// Tweens a RectTransform's pivot X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPivotX(this RectTransform target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(endValue, 0), duration); + t.SetOptions(AxisConstraint.X).SetTarget(target); + return t; + } + /// Tweens a RectTransform's pivot Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPivotY(this RectTransform target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(0, endValue), duration); + t.SetOptions(AxisConstraint.Y).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's sizeDelta to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOSizeDelta(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.sizeDelta, x => target.sizeDelta = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Punches a RectTransform's anchoredPosition towards the given direction and then back to the starting one + /// as if it was connected to the starting position via an elastic. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The direction and strength of the punch (added to the RectTransform's current position) + /// The duration of the tween + /// Indicates how much will the punch vibrate + /// Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards. + /// 1 creates a full oscillation between the punch direction and the opposite direction, + /// while 0 oscillates only between the punch and the start position + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOPunchAnchorPos(this RectTransform target, Vector2 punch, float duration, int vibrato = 10, float elasticity = 1, bool snapping = false) + { + return DOTween.Punch(() => target.anchoredPosition, x => target.anchoredPosition = x, punch, duration, vibrato, elasticity) + .SetTarget(target).SetOptions(snapping); + } + + /// Shakes a RectTransform's anchoredPosition with the given values. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The duration of the tween + /// The shake strength + /// Indicates how much will the shake vibrate + /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + /// Setting it to 0 will shake along a single direction. + /// If TRUE the tween will smoothly snap all values to integers + /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, float strength = 100, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true) + { + return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, true, fadeOut) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping); + } + /// Shakes a RectTransform's anchoredPosition with the given values. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The duration of the tween + /// The shake strength on each axis + /// Indicates how much will the shake vibrate + /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + /// Setting it to 0 will shake along a single direction. + /// If TRUE the tween will smoothly snap all values to integers + /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, Vector2 strength, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true) + { + return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, fadeOut) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping); + } + + #region Special + + /// Tweens a RectTransform's anchoredPosition to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJumpAnchorPos(this RectTransform target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + + // Separate Y Tween so we can elaborate elapsedPercentage on that insted of on the Sequence + // (in case users add a delay or other elements to the Sequence) + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, jumpPower), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(()=> startPosY = target.anchoredPosition.y); + s.Append(DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue.x, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + s.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector2 pos = target.anchoredPosition; + pos.y += DOVirtual.EasedValue(0, offsetY, s.ElapsedDirectionalPercentage(), Ease.OutQuad); + target.anchoredPosition = pos; + }); + return s; + } + + #endregion + + #endregion + + #region ScrollRect + + /// Tweens a ScrollRect's horizontal/verticalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DONormalizedPos(this ScrollRect target, Vector2 endValue, float duration, bool snapping = false) + { + return DOTween.To(() => new Vector2(target.horizontalNormalizedPosition, target.verticalNormalizedPosition), + x => { + target.horizontalNormalizedPosition = x.x; + target.verticalNormalizedPosition = x.y; + }, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + /// Tweens a ScrollRect's horizontalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOHorizontalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.horizontalNormalizedPosition, x => target.horizontalNormalizedPosition = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + /// Tweens a ScrollRect's verticalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOVerticalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.verticalNormalizedPosition, x => target.verticalNormalizedPosition = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + + #endregion + + #region Slider + + /// Tweens a Slider's value to the given value. + /// Also stores the Slider as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOValue(this Slider target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.value, x => target.value = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + #endregion + + #region Text + + /// Tweens a Text's color to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Text target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Text's alpha color to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Text target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Text's text to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end string to tween toThe duration of the tween + /// If TRUE (default), rich text will be interpreted correctly while animated, + /// otherwise all tags will be considered as normal text + /// The type of scramble mode to use, if any + /// A string containing the characters to use for scrambling. + /// Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters. + /// Leave it to NULL (default) to use default ones + public static TweenerCore DOText(this Text target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null) + { + if (endValue == null) { + if (Debugger.logPriority > 0) Debugger.LogWarning("You can't pass a NULL string to DOText: an empty string will be used instead to avoid errors"); + endValue = ""; + } + TweenerCore t = DOTween.To(() => target.text, x => target.text = x, endValue, duration); + t.SetOptions(richTextEnabled, scrambleMode, scrambleChars) + .SetTarget(target); + return t; + } + + #endregion + + #region Blendables + + #region Graphic + + /// Tweens a Graphic's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Graphic as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Graphic target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #region Image + + /// Tweens a Image's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Image as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Image target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #region Text + + /// Tweens a Text's color BY the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Text target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #endregion + + #endregion + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + + public static class Utils + { + /// + /// Converts the anchoredPosition of the first RectTransform to the second RectTransform, + /// taking into consideration offset, anchors and pivot, and returns the new anchoredPosition + /// + public static Vector2 SwitchToRectTransform(RectTransform from, RectTransform to) + { + Vector2 localPoint; + Vector2 fromPivotDerivedOffset = new Vector2(from.rect.width * 0.5f + from.rect.xMin, from.rect.height * 0.5f + from.rect.yMin); + Vector2 screenP = RectTransformUtility.WorldToScreenPoint(null, from.position); + screenP += fromPivotDerivedOffset; + RectTransformUtility.ScreenPointToLocalPointInRectangle(to, screenP, null, out localPoint); + Vector2 pivotDerivedOffset = new Vector2(to.rect.width * 0.5f + to.rect.xMin, to.rect.height * 0.5f + to.rect.yMin); + return to.anchoredPosition + localPoint - pivotDerivedOffset; + } + } + } +} +#endif diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta new file mode 100644 index 0000000..d064cac --- /dev/null +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 046547dc007b98f459ad038a79356c4e +timeCreated: 1571306506 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs new file mode 100644 index 0000000..ce21262 --- /dev/null +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs @@ -0,0 +1,301 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +using System; +using UnityEngine; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + /// + /// Shortcuts/functions that are not strictly related to specific Modules + /// but are available only on some Unity versions + /// + public static class DOTweenModuleUnityVersion + { +#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER + #region Unity 4.3 or Newer + + #region Material + + /// Tweens a Material's color using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this Material target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + /// Tweens a Material's named color property using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to use + /// The name of the material property to tween (like _Tint or _SpecColor) + /// The duration of the tween + public static Sequence DOGradientColor(this Material target, Gradient gradient, string property, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.SetColor(property, c.color); + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, property, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + + #endregion + + #endregion +#endif + +#if UNITY_5_3_OR_NEWER || UNITY_2017_1_OR_NEWER + #region Unity 5.3 or Newer + + #region CustomYieldInstructions + + /// + /// Returns a that waits until the tween is killed or complete. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForCompletion(true); + /// + public static CustomYieldInstruction WaitForCompletion(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForCompletion(t); + } + + /// + /// Returns a that waits until the tween is killed or rewinded. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForRewind(); + /// + public static CustomYieldInstruction WaitForRewind(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForRewind(t); + } + + /// + /// Returns a that waits until the tween is killed. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForKill(); + /// + public static CustomYieldInstruction WaitForKill(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForKill(t); + } + + /// + /// Returns a that waits until the tween is killed or has gone through the given amount of loops. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForElapsedLoops(2); + /// + /// Elapsed loops to wait for + public static CustomYieldInstruction WaitForElapsedLoops(this Tween t, int elapsedLoops, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForElapsedLoops(t, elapsedLoops); + } + + /// + /// Returns a that waits until the tween is killed or has reached the given position (loops included, delays excluded). + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForPosition(2.5f); + /// + /// Position (loops included, delays excluded) to wait for + public static CustomYieldInstruction WaitForPosition(this Tween t, float position, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForPosition(t, position); + } + + /// + /// Returns a that waits until the tween is killed or started + /// (meaning when the tween is set in a playing state the first time, after any eventual delay). + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForStart(); + /// + public static CustomYieldInstruction WaitForStart(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForStart(t); + } + + #endregion + + #endregion +#endif + +#if UNITY_2018_1_OR_NEWER + #region Unity 2018.1 or Newer + + #region Material + + /// Tweens a Material's named texture offset property with the given ID to the given value. + /// Also stores the material as the tween's target so it can be used for filtered operations + /// The end value to reach + /// The ID of the material property to tween (also called nameID in Unity's manual) + /// The duration of the tween + public static TweenerCore DOOffset(this Material target, Vector2 endValue, int propertyID, float duration) + { + if (!target.HasProperty(propertyID)) { + if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID); + return null; + } + TweenerCore t = DOTween.To(() => target.GetTextureOffset(propertyID), x => target.SetTextureOffset(propertyID, x), endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Material's named texture scale property with the given ID to the given value. + /// Also stores the material as the tween's target so it can be used for filtered operations + /// The end value to reach + /// The ID of the material property to tween (also called nameID in Unity's manual) + /// The duration of the tween + public static TweenerCore DOTiling(this Material target, Vector2 endValue, int propertyID, float duration) + { + if (!target.HasProperty(propertyID)) { + if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID); + return null; + } + TweenerCore t = DOTween.To(() => target.GetTextureScale(propertyID), x => target.SetTextureScale(propertyID, x), endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #endregion +#endif + } + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ CLASSES █████████████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + +#if UNITY_5_3_OR_NEWER || UNITY_2017_1_OR_NEWER + public static class DOTweenCYInstruction + { + public class WaitForCompletion : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && !t.IsComplete(); + }} + readonly Tween t; + public WaitForCompletion(Tween tween) + { + t = tween; + } + } + + public class WaitForRewind : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0); + }} + readonly Tween t; + public WaitForRewind(Tween tween) + { + t = tween; + } + } + + public class WaitForKill : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active; + }} + readonly Tween t; + public WaitForKill(Tween tween) + { + t = tween; + } + } + + public class WaitForElapsedLoops : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && t.CompletedLoops() < elapsedLoops; + }} + readonly Tween t; + readonly int elapsedLoops; + public WaitForElapsedLoops(Tween tween, int elapsedLoops) + { + t = tween; + this.elapsedLoops = elapsedLoops; + } + } + + public class WaitForPosition : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && t.position * (t.CompletedLoops() + 1) < position; + }} + readonly Tween t; + readonly float position; + public WaitForPosition(Tween tween, float position) + { + t = tween; + this.position = position; + } + } + + public class WaitForStart : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && !t.playedOnce; + }} + readonly Tween t; + public WaitForStart(Tween tween) + { + t = tween; + } + } + } +#endif +} diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta new file mode 100644 index 0000000..c4eb028 --- /dev/null +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5b0fda71852649440aada8717daae3ed +timeCreated: 1571306506 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs new file mode 100644 index 0000000..8a1fb5f --- /dev/null +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs @@ -0,0 +1,155 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +using System; +using System.Reflection; +using UnityEngine; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Core.PathCore; +using DG.Tweening.Plugins.Options; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + /// + /// Utility functions that deal with available Modules. + /// Modules defines: + /// - DOTAUDIO + /// - DOTPHYSICS + /// - DOTPHYSICS2D + /// - DOTSPRITE + /// - DOTUI + /// Extra defines set and used for implementation of external assets: + /// - DOTWEEN_TMP ► TextMesh Pro + /// - DOTWEEN_TK2D ► 2D Toolkit + /// + public static class DOTweenModuleUtils + { + static bool _initialized; + + #region Reflection + + /// + /// Called via Reflection by DOTweenComponent on Awake + /// +#if UNITY_2018_1_OR_NEWER + [UnityEngine.Scripting.Preserve] +#endif + public static void Init() + { + if (_initialized) return; + + _initialized = true; + DOTweenExternalCommand.SetOrientationOnPath += Physics.SetOrientationOnPath; + +#if UNITY_EDITOR +#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1 + UnityEditor.EditorApplication.playmodeStateChanged += PlaymodeStateChanged; +#else + UnityEditor.EditorApplication.playModeStateChanged += PlaymodeStateChanged; +#endif +#endif + } + +#if UNITY_2018_1_OR_NEWER +#pragma warning disable + [UnityEngine.Scripting.Preserve] + // Just used to preserve methods when building, never called + static void Preserver() + { + Assembly[] loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies(); + MethodInfo mi = typeof(MonoBehaviour).GetMethod("Stub"); + } +#pragma warning restore +#endif + + #endregion + +#if UNITY_EDITOR + // Fires OnApplicationPause in DOTweenComponent even when Editor is paused (otherwise it's only fired at runtime) +#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1 + static void PlaymodeStateChanged() + #else + static void PlaymodeStateChanged(UnityEditor.PlayModeStateChange state) +#endif + { + if (DOTween.instance == null) return; + DOTween.instance.OnApplicationPause(UnityEditor.EditorApplication.isPaused); + } +#endif + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + + public static class Physics + { + // Called via DOTweenExternalCommand callback + public static void SetOrientationOnPath(PathOptions options, Tween t, Quaternion newRot, Transform trans) + { +#if true // PHYSICS_MARKER + if (options.isRigidbody) ((Rigidbody)t.target).rotation = newRot; + else trans.rotation = newRot; +#else + trans.rotation = newRot; +#endif + } + + // Returns FALSE if the DOTween's Physics2D Module is disabled, or if there's no Rigidbody2D attached + public static bool HasRigidbody2D(Component target) + { +#if true // PHYSICS2D_MARKER + return target.GetComponent() != null; +#else + return false; +#endif + } + + #region Called via Reflection + + + // Called via Reflection by DOTweenPathInspector + // Returns FALSE if the DOTween's Physics Module is disabled, or if there's no rigidbody attached +#if UNITY_2018_1_OR_NEWER + [UnityEngine.Scripting.Preserve] +#endif + public static bool HasRigidbody(Component target) + { +#if true // PHYSICS_MARKER + return target.GetComponent() != null; +#else + return false; +#endif + } + + // Called via Reflection by DOTweenPath +#if UNITY_2018_1_OR_NEWER + [UnityEngine.Scripting.Preserve] +#endif + public static TweenerCore CreateDOTweenPathTween( + MonoBehaviour target, bool tweenRigidbody, bool isLocal, Path path, float duration, PathMode pathMode + ){ + TweenerCore t; +#if true // PHYSICS_MARKER + Rigidbody rBody = tweenRigidbody ? target.GetComponent() : null; + if (tweenRigidbody && rBody != null) { + t = isLocal + ? rBody.DOLocalPath(path, duration, pathMode) + : rBody.DOPath(path, duration, pathMode); + } else { + t = isLocal + ? target.transform.DOLocalPath(path, duration, pathMode) + : target.transform.DOPath(path, duration, pathMode); + } +#else + t = isLocal + ? target.transform.DOLocalPath(path, duration, pathMode) + : target.transform.DOPath(path, duration, pathMode); +#endif + return t; + } + + #endregion + } + } +} diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta new file mode 100644 index 0000000..9bdad71 --- /dev/null +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 13102a7bb129af445aa4943ee333feb9 +timeCreated: 1571306506 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityExamples.Unity5/Assets/Demigiant/DOTween/readme.txt b/UnityExamples.Unity5/Assets/Demigiant/DOTween/readme.txt index 3439db1..37ff7ef 100644 --- a/UnityExamples.Unity5/Assets/Demigiant/DOTween/readme.txt +++ b/UnityExamples.Unity5/Assets/Demigiant/DOTween/readme.txt @@ -1,8 +1,18 @@ -DOTween and DOTween Pro are copyright (c) 2014 Daniele Giardini - Demigiant +DOTween and DOTween Pro are copyright (c) 2014-2018 Daniele Giardini - Demigiant + +// IMPORTANT!!! ///////////////////////////////////////////// +// Upgrading DOTween from versions older than 1.2.000 /////// +// (or DOTween Pro older than 1.0.000) ////////////////////// +------------------------------------------------------------- +If you're upgrading your project from a version of DOTween older than 1.2.000 (or DOTween Pro older than 1.0.000) please follow these instructions carefully. +1) Import the new version in the same folder as the previous one, overwriting old files. A lot of errors will appear but don't worry +2) Close and reopen Unity (and your project). This is fundamental: skipping this step will cause a bloodbath +3) Open DOTween's Utility Panel (Tools > Demigiant > DOTween Utility Panel) if it doesn't open automatically, then press "Setup DOTween...": this will run the upgrade setup +4) From the Add/Remove Modules panel that opens, activate/deactivate Modules for Unity systems and for external assets (Pro version only) // GET STARTED ////////////////////////////////////////////// -- After importing a new DOTween update, select DOTween's Utility Panel from the Tools menu (if it doesn't open automatically) and press the "Setup DOTween..." button to set up additional features based on your Unity version. +- After importing a new DOTween update, select DOTween's Utility Panel from the "Tools/Demigiant" menu (if it doesn't open automatically) and press the "Setup DOTween..." button to activate/deactivate Modules. You can also access a Preferences Tab from there to choose default settings for DOTween. - In your code, add "using DG.Tweening" to each class where you want to use DOTween. - You're ready to tween. Check out the links below for full documentation and license info. @@ -12,7 +22,8 @@ DOTween and DOTween Pro are copyright (c) 2014 Daniele Giardini - Demigiant DOTween website (documentation, examples, etc): http://dotween.demigiant.com DOTween license: http://dotween.demigiant.com/license.php DOTween repository (Google Code): https://code.google.com/p/dotween/ +Demigiant website (documentation, examples, etc): http://www.demigiant.com // NOTES ////////////////////////////////////////////////////// -- DOTween's Utility Panel can be found under "Tools > DOTween Utility Panel" and also contains other useful options, plus a tab to set DOTween's preferences \ No newline at end of file +- DOTween's Utility Panel can be found under "Tools > Demigiant > DOTween Utility Panel" and also contains other useful options, plus a tab to set DOTween's preferences \ No newline at end of file diff --git a/UnityExamples.Unity5/Assets/Resources/DOTweenSettings.asset b/UnityExamples.Unity5/Assets/Resources/DOTweenSettings.asset index 8b59c7bed6d91cb6dcb16daa97d20e4bead6026c..ee7cf634b11a039658b655c204f0e09de09452f2 100644 GIT binary patch literal 4300 zcmeH~$!{D*6vkiMSsa$I1(IO4u&)LucHn@F2gWgx6FhjifuJ*8&NS)iZn|r{L_(Sa zgcB0tfD}%NkjNq80utf^C!|P$T#_IWDdGST3gn0sal(9Gb=9~%e*&7Psp+a;z543) ztLmN_k%7lVZv9C_Zo?H9k

OL!%4B^6%>Es^U)I@F;$@x99q!2pbQY}+ z=ct&z_3>;e@v_bh9q!2q#Q7$47~hT5fRM|>6gcmT_w3?tVBWv%yf=f>JY=LC|5n2a zUY_@s4)^3$%zGL-%s*GvYa4%W82Mx&$AXJDPTp_y2Qh~6+)i#vzq}6LcTm{Aqr(gR zJyw4kdArRx*XiF$K2E+~pX-UChL`oXcX*Mv$4y&g2d-QI=4}MkD#`|wohUSypE=aY z?Rd;gIuDVwt52N~ z>;GuU|0Hu6- zzXLmq!e{Oo!ZvxIS+Dcp_{b1>WsP69{Mj!4r{&Le@qaAGbFfZli+y+P?&8}m-_yl+ zSOYJU}# zny(wEv~o4;FQ|h_pu|LZiEdO?r2RQ?Y5L2v2F=GgeF8%>wG_s|D}EFm^6N)T1bHJ_nvX-hQbazZ(j?Oo zC5P803Nn9bGCbN$atYLe--`5%s;|@|{}AT3q|(w!E%H}fdp-?(t>#wJjt2uU;qH$E zl`4G2+Idg-`8r>=rx#U*;1WHZRhnrO>K5{4XJda&WnmIH!uhAdD01xsNs^k`d4IJ` zErx2T=Eo|M9P6WImDXW=I6sioeP&*ei&ms^@K!3#q9JCi8RWNuFqw#X$AP4cl{~EH zUCrH92l6xvwQ{Xi=xSOm>w_w9)UuA0K2jRSNRdLsWfmN}fyBptDRw|^wx^8${Uvvt zF}|y4cr;9zpY3P0aGV^wcE-Q($<+75ul@G*$G`u`AL5?%GSJIFF9W>{^fJ)P!2do2 z<}iS}`#@~&1 OS9F;%Y?ljp+5Q98a+x{+ delta 691 zcmY+ByGsK>5XNUO4={s4 ziuY?AcgwKGvIfBU;#ds&msr9-1fHg1qksdetZ^WWf;s?RP<&A1Fxq1cqakp0A@rZI zgb)78pU(;NE5%3t@g&(#su0l%81Tj#14hBM0iP@}U<}-phn^{!@kV9Adl^DIQS$w~ ck?|>UVA&g$PBUay=FMrBj0G%V$gRNmFJrS}qyPW_ diff --git a/UnityExamples.Unity5/ProjectSettings/ProjectSettings.asset b/UnityExamples.Unity5/ProjectSettings/ProjectSettings.asset index 97fd657bb33b9536a37d6cd79f4f1b93058ec1d9..42fe4b856ae69a6b5e7fe18d097e84d3549dcf27 100644 GIT binary patch literal 54570 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 diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll.mdb b/UnityTests.Unity5/Assets/Demigiant/DOTween/DOTween.dll.mdb index 46593ad7a2b2faf0e4d829164f17ca81dd23eb22..ecdfbade4a3e5eb7ad94bec90561a6682e2e05b9 100644 GIT binary patch delta 1322 zcmV+_1=afe*aQ6710WQpfBhpS=tVLB000000010_m};sSvR- zRUsyp#ZQ;l%@Ag*m35KXYY>O(&BD-VHbsi=Jfj!{(h-wX0c{Y!M}AUhV)dO!3{6nrO#jev&pD>f| z?|o_vlT-wI5H^ET>)5kdMY%e4!&0E$8k64yX%N!r75q6n$4P^A>`pAWMnjWW1#1vl zp4@pgZT>*E|D-*?jd|`xjo|pqybc`nlUoLO5DhqRK{&XaOoFrT z3QMm|Sd-%hb`Zp4y;s9+pGUWz0!8^#u?3T92X_$Vl6kQUkW5XFIumgO5kwu6@CSYm z{(weKaNQ+Eih4NwC{u}(eF%3Dm*2?bORB+3u}6@^IQ7(dlLQHO5Y|;55)=4^MUb^k zu+6ZKK$D9Jbr3ZC^z_Y<9z%jEBsCO2GgFfg3VaaiCUpianW{vAC)>`XCWt1JoC!h-R|LWyCiXwBNsqLa=IcMw)W3zJgRDNLI2c#9!a#N?Az4tWsLsikP&JSIb$ zZ%;Zt)y{mA-VT2dQ!N~#po;iLl$g`nL&1oicwY8qERhll2pU5DH7o?ipmC zO^VzDtIz8U3X_Hugb=QhpFJW!*GafYH7!U>_Xv|36@L(`ZsEM=)Tc(M`!aI)e}U1H zsTGV6EmKayoniz*hGP1#;ofvjlSLMW5c#a|IS|BHN~(9h_04g_?33FTix7r^+E8~J zOHPoQ@ZsDPa#fRd7l#lBsoZg3->E=~+z}{v8yIhs4H$k9*s_UGoZ#I?ul%Dgb8v@i zlbaZZ5U3f9i#XkWL%gdQTTQA=ypu5*aS(&&-$Ln* z!gxcKTgrMs9oI~sTpFuyhc!9EI2l@94^YKYt7lfxQw5J9f)on@}eN~0Wt+JkRl z?2|?te-Mw1oNf^GYDlreGL1KyJ6Ds{8+Q<~B&Oi(6AMm&i} gZC28gh#++kex$wgN9tKhgj|y?@RDc4vkf6{%NTfBcK`qY delta 1322 zcmV+_1=afe*aQ6710WQpfBhpS=tVLB000000038N<8fFk6-|LQ8;$M;D|V3}sSp|n z**)=fSwxdlHlF4neN>UzYY^1&aaW)hNkOnUH_xdfJ;9Sy0c{Wv_+CpZFzi6SGFq-~ zF_<`$(E)D|vcz0z(7jedfI;g=l$MC$lTZS45R=p)oU$vLK)Dd#YUsPw7?aZiY!IMO zLXaWCp-O~zQ;wJr;USYx19lK2Q{lhL<+Vt+?mmRt?>0D-)dO!3R&2>t1VL^>jBC&n zjP|-hlT-wI5TMkM2mT0jON_5RThq*j^^@NOX%H$~|2|bo1xc!^CSN&TUoewc1#1uy zfH#1XIqXEa)ZE%9Q}tz&(*<}CL(}BdYTe;RpqSYj$I3UilUoLO5a60jfl6yuMYY)v zY+S4oT$AGlb`VY<|7Wm9u1C5Be?@oIo3WE=2X_!f0<*(CR02hp9Vov19<2kD@CSYm zcu`fj4hC^YrNKS;2BUV9eF%3DUbDOpKS6)Hcygm578NyY0M4y25!hv9M`;!6? ze-P{|?R36%tWBe|xe|T>^$e4d5Qh+KSzCLIfdWRV&K-IZ%qiQGC=q=SBjH)d)fhNL zj&kHLjvcC(leH0m5F2DlBP!&pOs|k{wH~clt&>F(fDr8o7_Zz+w@0udeNKlkJQI`E z5`PdsBWc`_ll2pU5IzV0ubqzs zNv(iBa-l#E7n6n*gb6WNop8F>(=yrc4t zxKcx_Odtnc&`CLyI~sTpmU9JSW~g67wwMjBVpLAllfxQw5Diiqz|z_CM!ThGX}S+{ zyOTy6e-P6f5{VPxHAI-n&fG5)h02rF8+QxF<{KljR(85Cpw>sK)ynMXua{>@0(@ER$y)br38?-FM%A%}13eVsVaV z!+n$N9c~auzx0paK5#{w`peB`h9vfrY94eDtf##Nj>JYviTqI$>uw>BlkOgN5KF&d z?-;*rPMhj0uy5bV9+Pw*dl0U4yX@0(#Y35mUrMebe=U>$A9)bfP{X?3f#ytr2M9(I gK!I|Th#++kEd4^mHL0&kjjfPSZmBV(vkf6{%Sj7adH?_b diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll index b78b86d2868a52f39e54203a55e5c4f9812ecb08..44f2011c0fb8c67c6bb321ef994c98aee0c01c7c 100644 GIT binary patch delta 87 zcmZpe!`v{3c|r$MsO!eAq#XkM39`%fT(@=Yd7%^4o*W{)`Ol6Q+&ZDID`FXdfC-3Y o7#SG;JObh)3=BcRF2P)ta)}J~cJ8Y_?D@yXFU`JL;OGYq0D>GI;Q#;t delta 87 zcmZpe!`v{3c|r%1qyEOOq#Xiry$={(?Q3?}t=h_UdTON8=07`LaO*hguZU#;0wy4q pVPs(V^9YEKFfarKy98&M@d#F18aQlTP{H=;=z*)71&)5;006w$AwU2C diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb index 5ab81169721f8358c36660f2a259777b679f1841..754ba18b5a8cc3112c87b0ae0ea7929e33828831 100644 GIT binary patch delta 292 zcmV+<0o(r1O3z9l6sCXuBPQrYG5`Po000004`3apyw^QNjOZ*{hhtO|ks!1XTXb>8 zk)$e3yFDWCuM~@Tk>qy}PC@=KaQpK`gH&7?n~^uTlWPHf5cC$y-YVZ5PMI!c$|D#o zs+0Kva}XPDNrXAHNlK8`)&p@5+uM_T0(B5=wk2Tf?FdYde%(<_arNAj0RwvwXbsyQ zgR?D7m{Oqh_?0W7lZ*p+5N2V9%GukrNv5kZnLoPkt&I##e1cne73anVxKD9-8lg$N%5b&)j q+94E%OM;1$V5Tgu*^^=hfe;3XcGUz;$49)(e#H+szC*L~23#KA@PRG> delta 292 zcmV+<0o(r1O3z9l6sCXuBPQrYG5`Po00000UX9=Y>b`?OyCsDR%avI|ks!1XzaVsU z@qy})3}1Nj-&TSs0(B5?Ey^9Cyc0sKE#CsF!pydl0Rwvw7ITaV zS$`Kzq_etoxufK2lZ*p+5Ulfyj6touOTJ~-Inf1PqLUN^dk_yqm4ILoFGs8DgGQIf zzEhK*1cnfBKU8~<3>QtL?HMDSIafK8H3f(eB`GANPO=O`gy2XUDb@`Klg$N%5HE=i qLVK~iL4juZ?`xKEMw4O&fe_&nhvNfuzC^9Gm`O6$Dvz`C23#KX;C$Nv diff --git a/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll b/UnityTests.Unity5/Assets/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll index b177fc3d51ddaac56285b2aa95f170dbca88d505..2a108f78560507815c2f8ecf9472e2e638f0256f 100644 GIT binary patch delta 85 zcmZn&X$YCn!4%@UvFnqVfLwNJs0Yg@-&uW2d~2$dS8eVQKf$gO;<_T10SK6YScZ{- lA;%Voz5a?=1|VPpVi`sT lh8$ZUmSR^Jlenkwa06BTv{#4=ia;_ygtYf-vb kx*+-Y&WSJT1>R0tX0h(3jPsm_O#hh^!?HG)Gcqv&0P`#$UjP6A delta 82 zcmey#_LEIPWLf=RWwjTsMhp!31d9<-u8%veFWZJG_!epVR6XLoe xmH`NufLMl+fuW*-iJ>Bii6JQ1B{*XC=u>Y1x+8fB diff --git a/_DOTween.Assembly/bin/DOTween.dll.mdb b/_DOTween.Assembly/bin/DOTween.dll.mdb index 46593ad7a2b2faf0e4d829164f17ca81dd23eb22..ecdfbade4a3e5eb7ad94bec90561a6682e2e05b9 100644 GIT binary patch delta 1322 zcmV+_1=afe*aQ6710WQpfBhpS=tVLB000000010_m};sSvR- zRUsyp#ZQ;l%@Ag*m35KXYY>O(&BD-VHbsi=Jfj!{(h-wX0c{Y!M}AUhV)dO!3{6nrO#jev&pD>f| z?|o_vlT-wI5H^ET>)5kdMY%e4!&0E$8k64yX%N!r75q6n$4P^A>`pAWMnjWW1#1vl zp4@pgZT>*E|D-*?jd|`xjo|pqybc`nlUoLO5DhqRK{&XaOoFrT z3QMm|Sd-%hb`Zp4y;s9+pGUWz0!8^#u?3T92X_$Vl6kQUkW5XFIumgO5kwu6@CSYm z{(weKaNQ+Eih4NwC{u}(eF%3Dm*2?bORB+3u}6@^IQ7(dlLQHO5Y|;55)=4^MUb^k zu+6ZKK$D9Jbr3ZC^z_Y<9z%jEBsCO2GgFfg3VaaiCUpianW{vAC)>`XCWt1JoC!h-R|LWyCiXwBNsqLa=IcMw)W3zJgRDNLI2c#9!a#N?Az4tWsLsikP&JSIb$ zZ%;Zt)y{mA-VT2dQ!N~#po;iLl$g`nL&1oicwY8qERhll2pU5DH7o?ipmC zO^VzDtIz8U3X_Hugb=QhpFJW!*GafYH7!U>_Xv|36@L(`ZsEM=)Tc(M`!aI)e}U1H zsTGV6EmKayoniz*hGP1#;ofvjlSLMW5c#a|IS|BHN~(9h_04g_?33FTix7r^+E8~J zOHPoQ@ZsDPa#fRd7l#lBsoZg3->E=~+z}{v8yIhs4H$k9*s_UGoZ#I?ul%Dgb8v@i zlbaZZ5U3f9i#XkWL%gdQTTQA=ypu5*aS(&&-$Ln* z!gxcKTgrMs9oI~sTpFuyhc!9EI2l@94^YKYt7lfxQw5J9f)on@}eN~0Wt+JkRl z?2|?te-Mw1oNf^GYDlreGL1KyJ6Ds{8+Q<~B&Oi(6AMm&i} gZC28gh#++kex$wgN9tKhgj|y?@RDc4vkf6{%NTfBcK`qY delta 1322 zcmV+_1=afe*aQ6710WQpfBhpS=tVLB000000038N<8fFk6-|LQ8;$M;D|V3}sSp|n z**)=fSwxdlHlF4neN>UzYY^1&aaW)hNkOnUH_xdfJ;9Sy0c{Wv_+CpZFzi6SGFq-~ zF_<`$(E)D|vcz0z(7jedfI;g=l$MC$lTZS45R=p)oU$vLK)Dd#YUsPw7?aZiY!IMO zLXaWCp-O~zQ;wJr;USYx19lK2Q{lhL<+Vt+?mmRt?>0D-)dO!3R&2>t1VL^>jBC&n zjP|-hlT-wI5TMkM2mT0jON_5RThq*j^^@NOX%H$~|2|bo1xc!^CSN&TUoewc1#1uy zfH#1XIqXEa)ZE%9Q}tz&(*<}CL(}BdYTe;RpqSYj$I3UilUoLO5a60jfl6yuMYY)v zY+S4oT$AGlb`VY<|7Wm9u1C5Be?@oIo3WE=2X_!f0<*(CR02hp9Vov19<2kD@CSYm zcu`fj4hC^YrNKS;2BUV9eF%3DUbDOpKS6)Hcygm578NyY0M4y25!hv9M`;!6? ze-P{|?R36%tWBe|xe|T>^$e4d5Qh+KSzCLIfdWRV&K-IZ%qiQGC=q=SBjH)d)fhNL zj&kHLjvcC(leH0m5F2DlBP!&pOs|k{wH~clt&>F(fDr8o7_Zz+w@0udeNKlkJQI`E z5`PdsBWc`_ll2pU5IzV0ubqzs zNv(iBa-l#E7n6n*gb6WNop8F>(=yrc4t zxKcx_Odtnc&`CLyI~sTpmU9JSW~g67wwMjBVpLAllfxQw5Diiqz|z_CM!ThGX}S+{ zyOTy6e-P6f5{VPxHAI-n&fG5)h02rF8+QxF<{KljR(85Cpw>sK)ynMXua{>@0(@ER$y)br38?-FM%A%}13eVsVaV z!+n$N9c~auzx0paK5#{w`peB`h9vfrY94eDtf##Nj>JYviTqI$>uw>BlkOgN5KF&d z?-;*rPMhj0uy5bV9+Pw*dl0U4yX@0(#Y35mUrMebe=U>$A9)bfP{X?3f#ytr2M9(I gK!I|Th#++kEd4^mHL0&kjjfPSZmBV(vkf6{%Sj7adH?_b diff --git a/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll b/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll index b78b86d2868a52f39e54203a55e5c4f9812ecb08..44f2011c0fb8c67c6bb321ef994c98aee0c01c7c 100644 GIT binary patch delta 87 zcmZpe!`v{3c|r$MsO!eAq#XkM39`%fT(@=Yd7%^4o*W{)`Ol6Q+&ZDID`FXdfC-3Y o7#SG;JObh)3=BcRF2P)ta)}J~cJ8Y_?D@yXFU`JL;OGYq0D>GI;Q#;t delta 87 zcmZpe!`v{3c|r%1qyEOOq#Xiry$={(?Q3?}t=h_UdTON8=07`LaO*hguZU#;0wy4q pVPs(V^9YEKFfarKy98&M@d#F18aQlTP{H=;=z*)71&)5;006w$AwU2C diff --git a/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll.mdb b/_DOTween.Assembly/bin/Editor/DOTweenEditor.dll.mdb index 5ab81169721f8358c36660f2a259777b679f1841..754ba18b5a8cc3112c87b0ae0ea7929e33828831 100644 GIT binary patch delta 292 zcmV+<0o(r1O3z9l6sCXuBPQrYG5`Po000004`3apyw^QNjOZ*{hhtO|ks!1XTXb>8 zk)$e3yFDWCuM~@Tk>qy}PC@=KaQpK`gH&7?n~^uTlWPHf5cC$y-YVZ5PMI!c$|D#o zs+0Kva}XPDNrXAHNlK8`)&p@5+uM_T0(B5=wk2Tf?FdYde%(<_arNAj0RwvwXbsyQ zgR?D7m{Oqh_?0W7lZ*p+5N2V9%GukrNv5kZnLoPkt&I##e1cne73anVxKD9-8lg$N%5b&)j q+94E%OM;1$V5Tgu*^^=hfe;3XcGUz;$49)(e#H+szC*L~23#KA@PRG> delta 292 zcmV+<0o(r1O3z9l6sCXuBPQrYG5`Po00000UX9=Y>b`?OyCsDR%avI|ks!1XzaVsU z@qy})3}1Nj-&TSs0(B5?Ey^9Cyc0sKE#CsF!pydl0Rwvw7ITaV zS$`Kzq_etoxufK2lZ*p+5Ulfyj6touOTJ~-Inf1PqLUN^dk_yqm4ILoFGs8DgGQIf zzEhK*1cnfBKU8~<3>QtL?HMDSIafK8H3f(eB`GANPO=O`gy2XUDb@`Klg$N%5HE=i qLVK~iL4juZ?`xKEMw4O&fe_&nhvNfuzC^9Gm`O6$Dvz`C23#KX;C$Nv diff --git a/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll b/_DOTween.Assembly/bin/Editor/DOTweenUpgradeManager.dll index b177fc3d51ddaac56285b2aa95f170dbca88d505..2a108f78560507815c2f8ecf9472e2e638f0256f 100644 GIT binary patch delta 85 zcmZn&X$YCn!4%@UvFnqVfLwNJs0Yg@-&uW2d~2$dS8eVQKf$gO;<_T10SK6YScZ{- lA;%Voz5a?=1|VPpVi`sT lh8$ZUmSR^Jlenkwa06BTv{#4=ia;_ygtYf-vb kx*+-Y&WSJT1>R0tX0h(3jPsm_O#hh^!?HG)Gcqv&0P`#$UjP6A delta 82 zcmey#_LEIPWLf=RWwjTsMhp!