diff --git a/.idea/.idea.Infra/.idea/workspace.xml b/.idea/.idea.Infra/.idea/workspace.xml index ac83830..cd5a35f 100644 --- a/.idea/.idea.Infra/.idea/workspace.xml +++ b/.idea/.idea.Infra/.idea/workspace.xml @@ -5,51 +5,73 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + @@ -125,10 +149,10 @@ - + @@ -173,58 +198,19 @@ - - file://$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/GameplayState.cs - 141 - - - - - - - - - file://$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/GameplayState.cs - 62 - - - - - - - file://$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/MainMenuState.cs - 60 + 58 - - - - file://$PROJECT_DIR$/Assets/Code/Example/Race/RaceGame.cs - 62 - - - - - - - diff --git a/Assets/Code/Example/Platformer/Entity/Enemies/Bee.cs b/Assets/Code/Example/Platformer/Entity/Enemies/Bee.cs index bfa8722..6d48528 100644 --- a/Assets/Code/Example/Platformer/Entity/Enemies/Bee.cs +++ b/Assets/Code/Example/Platformer/Entity/Enemies/Bee.cs @@ -1,8 +1,5 @@ -using System; using System.Collections.Generic; -using DG.Tweening; -using DG.Tweening.Core; -using DG.Tweening.Plugins.Options; +using PrimeTween; using UnityEngine; namespace Code.Example.Platformer.Entity.Enemies @@ -10,50 +7,56 @@ namespace Code.Example.Platformer.Entity.Enemies public class Bee : Entity { [SerializeField] private List partolPoints; - private bool _onPatrol; - private bool _onPatrolMoveDamnit; - private int _currentPartolPoint; + [SerializeField] private bool onPatrol = true; + private int _currentPatrolPoint; - private Transform _currentTarget; - private TweenerCore _patrolAction; + private Vector3 _velocity = new Vector3(1,1,1); + [SerializeField] private Transform _currentTarget; + + private Tween _patrolAction; protected override void Move() { - if (_onPatrol && !_onPatrolMoveDamnit) - { - _onPatrolMoveDamnit = true; - _patrolAction = transform.DOMove(partolPoints[_currentPartolPoint].position, 3f); - _patrolAction.onComplete += OnControlPointReached; + if (onPatrol && !_patrolAction.isAlive) + { + _patrolAction = Tween + .PositionAtSpeed(transform,partolPoints[_currentPatrolPoint].position, 0.5f) + .OnComplete(target: this, target => target.OnControlPointReached()); } - else + else if(_currentTarget) { + var direction = _currentTarget.position - transform.position; direction.Normalize(); var targetPosition = _currentTarget.position + direction * -2f; UnityEngine.Debug.DrawLine(transform.position, targetPosition, Color.red); - - transform.DOMove(_currentTarget.position, 2f).onComplete += OnControlPointReached; + + transform.position = Vector3.SmoothDamp(transform.position,_currentTarget.position,ref _velocity, 1f); + // Tween + // .PositionAtSpeed(transform, _currentTarget.position, 1f).OnUpdate(transform, ); + // // .OnComplete(OnControlPointReached); } } private void OnControlPointReached() - { - if (++_currentPartolPoint >= partolPoints.Count) _currentPartolPoint = 0; - _onPatrolMoveDamnit = false; + { + if (++_currentPatrolPoint >= partolPoints.Count) _currentPatrolPoint = 0; } public void GotTarget(Transform other) { - _onPatrol = false; + onPatrol = false; + _currentTarget = other; - _patrolAction?.Complete(); + + _patrolAction.Stop(); } public void LostTarget() { - _onPatrol = true; - _currentTarget = null; + onPatrol = true; + _currentTarget = null; } } } \ No newline at end of file diff --git a/Assets/Code/Example/Platformer/PlatformerState.cs b/Assets/Code/Example/Platformer/PlatformerState.cs index bf28a65..4d55a14 100644 --- a/Assets/Code/Example/Platformer/PlatformerState.cs +++ b/Assets/Code/Example/Platformer/PlatformerState.cs @@ -1,4 +1,5 @@ using Code.Infrastructure.App; +using Code.Infrastructure.Audio; using Code.Infrastructure.Camera; using Code.Infrastructure.EventBus; using Code.Infrastructure.Generators; @@ -36,6 +37,7 @@ namespace Code.Example.Platformer private void LoadingCompleted() { + Context.AudioService.CancelMusic(AudioNames.UISounds,0); Context.UIService.ClosePanel(UIPanelType.Loading); } diff --git a/Assets/Code/Example/Race/Racer/Car/CarWheelRotatorPlayer.cs b/Assets/Code/Example/Race/Racer/Car/CarWheelRotatorPlayer.cs index 1df7655..aafc046 100644 --- a/Assets/Code/Example/Race/Racer/Car/CarWheelRotatorPlayer.cs +++ b/Assets/Code/Example/Race/Racer/Car/CarWheelRotatorPlayer.cs @@ -1,4 +1,4 @@ -using DG.Tweening; +using PrimeTween; using UnityEngine; namespace Code.Example.Race.Racer.Car @@ -15,7 +15,7 @@ namespace Code.Example.Race.Racer.Car { var wheelRotation = wheel.localRotation.eulerAngles; wheelRotation.y = amount; - wheel.DOLocalRotate(wheelRotation, 1f); + Tween.LocalRotation(wheel,wheelRotation, 1f); // wheel.localRotation = Quaternion.Euler(wheelRotation); } } diff --git a/Assets/Code/Example/Race/UI/PlayerScores.cs b/Assets/Code/Example/Race/UI/PlayerScores.cs index 6f06264..5496eb3 100644 --- a/Assets/Code/Example/Race/UI/PlayerScores.cs +++ b/Assets/Code/Example/Race/UI/PlayerScores.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; using Code.Infrastructure.UI; -using DG.Tweening; +using PrimeTween; using TMPro; using UnityEngine; using UnityEngine.UI; @@ -26,14 +26,14 @@ namespace Code.Example.Race.UI } public override void Open(Action callback = null) { - image.DOColor(shownColor, 1f); - scoreText.DOColor(shownColor, 1f).onComplete = () => callback?.Invoke(); + Tween.Color(image,shownColor, 1f); + Tween.Color(scoreText,shownColor, 1f).OnComplete( () => callback?.Invoke()); } public override void Close(Action callback = null) { - image.DOColor(hiddenColor, 1f); - scoreText.DOColor(hiddenColor, 1f).onComplete = () => callback?.Invoke(); + Tween.Color(image,hiddenColor, 1f); + Tween.Color(scoreText,hiddenColor, 1f).OnComplete( () => callback?.Invoke()); } } diff --git a/Assets/Code/Example/Race/UI/WinScreen.cs b/Assets/Code/Example/Race/UI/WinScreen.cs index 0461ac2..48b5292 100644 --- a/Assets/Code/Example/Race/UI/WinScreen.cs +++ b/Assets/Code/Example/Race/UI/WinScreen.cs @@ -1,6 +1,6 @@ using System; using Code.Infrastructure.UI; -using DG.Tweening; +using PrimeTween; using TMPro; using UnityEngine; using UnityEngine.UI; @@ -17,14 +17,14 @@ namespace Code.Example.Race.UI public void SetText(string text) => winText.text = text; public override void Open(Action callback = null) { - image.DOColor(shownColor, 1f); - winText.DOColor(shownColor, 1f).onComplete = () => callback?.Invoke(); + Tween.Color(image,shownColor, 1f); + Tween.Color(winText,shownColor, 1f).OnComplete( () => callback?.Invoke()); } public override void Close(Action callback = null) { - image.DOColor(hiddenColor, 1f); - winText.DOColor(hiddenColor, 1f).onComplete = () => callback?.Invoke(); + Tween.Color(image,hiddenColor, 1f); + Tween.Color(winText,hiddenColor, 1f).OnComplete( () => callback?.Invoke()); } } } \ No newline at end of file diff --git a/Assets/Code/Infrastructure/App/PapaInstaller.cs b/Assets/Code/Infrastructure/App/PapaInstaller.cs index 122d25d..40981e6 100644 --- a/Assets/Code/Infrastructure/App/PapaInstaller.cs +++ b/Assets/Code/Infrastructure/App/PapaInstaller.cs @@ -13,6 +13,7 @@ using Reflex.Injectors; using Unity.Cinemachine; using UnityEngine; using UnityEngine.Rendering.Universal; +using UnityEngine.SceneManagement; using Resolution = Reflex.Enums.Resolution; namespace Code.Infrastructure.App @@ -32,6 +33,8 @@ namespace Code.Infrastructure.App { public void InstallBindings(ContainerBuilder containerBuilder) { + if(SceneManager.GetActiveScene().buildIndex != 0) SceneManager.LoadScene(0, LoadSceneMode.Single); + InitLoadings(); containerBuilder.RegisterType(typeof(EventBus.EventBus), Lifetime.Singleton, Resolution.Eager); diff --git a/Assets/Code/Infrastructure/UI/Panels/LoadingPanel.cs b/Assets/Code/Infrastructure/UI/Panels/LoadingPanel.cs index 08f4875..c4d821d 100644 --- a/Assets/Code/Infrastructure/UI/Panels/LoadingPanel.cs +++ b/Assets/Code/Infrastructure/UI/Panels/LoadingPanel.cs @@ -1,5 +1,5 @@ -using System; -using DG.Tweening; +using System; +using PrimeTween; using UnityEngine; using UnityEngine.UI; @@ -12,12 +12,12 @@ namespace Code.Infrastructure.UI.Panels [SerializeField] private Color hiddenColor; public override void Open(Action callback = null) { - image.DOColor(shownColor, 1f).onComplete = () => callback?.Invoke(); + Tween.Color(image,shownColor, 1f).OnComplete( () => callback?.Invoke()); } public override void Close(Action callback = null) { - image.DOColor(hiddenColor, 1f).onComplete += () => callback?.Invoke(); + Tween.Color(image,hiddenColor, 1f).OnComplete( () => callback?.Invoke()); } } } \ No newline at end of file diff --git a/Assets/Code/Infrastructure/UI/Panels/LogoPanel.cs b/Assets/Code/Infrastructure/UI/Panels/LogoPanel.cs index 3c150c2..36ff523 100644 --- a/Assets/Code/Infrastructure/UI/Panels/LogoPanel.cs +++ b/Assets/Code/Infrastructure/UI/Panels/LogoPanel.cs @@ -1,5 +1,5 @@ -using System; -using DG.Tweening; +using System; +using PrimeTween; using UnityEngine; using UnityEngine.UI; @@ -12,12 +12,12 @@ namespace Code.Infrastructure.UI.Panels [SerializeField] private Color hiddenColor; public override void Open(Action callback = null) { - image.DOColor(shownColor, 1f).onComplete = () => callback?.Invoke(); + Tween.Color(image,shownColor, 1f).OnComplete( () => callback?.Invoke()); } public override void Close(Action callback = null) { - image.DOColor(hiddenColor, 1f).onComplete += () => callback?.Invoke(); + Tween.Color(image,hiddenColor, 1f).OnComplete( () => callback?.Invoke()); } } } \ No newline at end of file diff --git a/Assets/DOTween/DOTween.XML b/Assets/DOTween/DOTween.XML deleted file mode 100644 index f56085a..0000000 --- a/Assets/DOTween/DOTween.XML +++ /dev/null @@ -1,3107 +0,0 @@ - - - - DOTween - - - - - Types of autoPlay behaviours - - - - No tween is automatically played - - - Only Sequences are automatically played - - - Only Tweeners are automatically played - - - All tweens are automatically played - - - - What axis to constrain in case of Vector tweens - - - - Called the first time the tween is set in a playing state, after any eventual delay - - - - Used in place of System.Func, which is not available in mscorlib. - - - - - Used in place of System.Action. - - - - - Public so it can be used by lose scripts related to DOTween (like DOTweenAnimation) - - - - - Used to separate DOTween class from the MonoBehaviour instance (in order to use static constructors on DOTween). - Contains all instance-based methods - - - - Used internally inside Unity Editor, as a trick to update DOTween's inspector at every frame - - - - Directly sets the current max capacity of Tweeners and Sequences - (meaning how many Tweeners and Sequences can be running at the same time), - so that DOTween doesn't need to automatically increase them in case the max is reached - (which might lead to hiccups when that happens). - Sequences capacity must be less or equal to Tweeners capacity - (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's). - Beware: use this method only when there are no tweens running. - - Max Tweeners capacity. - Default: 200 - Max Sequences capacity. - Default: 50 - - - - This class contains a C# port of the easing equations created by Robert Penner (http://robertpenner.com/easing). - - - - - Easing equation function for a bounce (exponentially decaying parabolic bounce) easing in: accelerating from zero velocity. - - - Current time (in frames or seconds). - - - Expected easing duration (in frames or seconds). - - Unused: here to keep same delegate for all ease types. - Unused: here to keep same delegate for all ease types. - - The eased value. - - - - - Easing equation function for a bounce (exponentially decaying parabolic bounce) easing out: decelerating from zero velocity. - - - Current time (in frames or seconds). - - - Expected easing duration (in frames or seconds). - - Unused: here to keep same delegate for all ease types. - Unused: here to keep same delegate for all ease types. - - The eased value. - - - - - Easing equation function for a bounce (exponentially decaying parabolic bounce) easing in/out: acceleration until halfway, then deceleration. - - - Current time (in frames or seconds). - - - Expected easing duration (in frames or seconds). - - Unused: here to keep same delegate for all ease types. - Unused: here to keep same delegate for all ease types. - - The eased value. - - - - - Returns a value between 0 and 1 (inclusive) based on the elapsed time and ease selected. - Use this method if you don't care about , otherwise use - - - - - USE THIS FOR CUSTOM PLUGINS when you want to be able to use . - Returns a value that is from 0 to 1 if is not incremental, otherwise from 0 to (1 * completed loops) - - - - - Returns a value between 0 and 1 (inclusive) based on the elapsed time and ease selected - - - - - Used to interpret AnimationCurves as eases. - Public so it can be used by external ease factories - - - - - Behaviour in case a tween nested inside a Sequence fails and is captured by safe mode - - - - If the Sequence contains other elements, kill the failed tween but preserve the rest - - - Kill the whole Sequence - - - - Log types thrown by errors captured and prevented by safe mode - - - - No logs. NOT RECOMMENDED - - - Throw a normal log - - - Throw a warning log (default) - - - Throw an error log - - - - Additional notices passed to plugins when updating. - Public so it can be used by custom plugins. Internally, only PathPlugin uses it - - - - - None - - - - - 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 - - - - - Various utils - - - - - Returns a Vector3 with z = 0 - - - - - Returns the 2D angle between two vectors - - - - - Returns a point on a circle with the given center and radius, - using Unity's circle coordinates (0° points up and increases clockwise) - - - - - 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) - - - - - Used for tween callbacks - - - - - Used for tween callbacks - - - - - Used for custom and animationCurve-based ease functions. Must return a value between 0 and 1. - - - - - Straight Quaternion plugin. Instead of using Vector3 values accepts Quaternion values directly. - Beware: doesn't work with LoopType.Incremental (neither directly nor if inside a LoopType.Incremental Sequence). - To use it, call DOTween.To with the plugin parameter overload, passing it PureQuaternionPlugin.Plug() as first parameter - (do not use any of the other public PureQuaternionPlugin methods): - DOTween.To(PureQuaternionPlugin.Plug(), ()=> myQuaternionProperty, x=> myQuaternionProperty = x, myQuaternionEndValue, duration); - - - - - Plug this plugin inside a DOTween.To call. - Example: - DOTween.To(PureQuaternionPlugin.Plug(), ()=> myQuaternionProperty, x=> myQuaternionProperty = x, myQuaternionEndValue, duration); - - - - INTERNAL: do not use - - - INTERNAL: do not use - - - INTERNAL: do not use - - - INTERNAL: do not use - - - INTERNAL: do not use - - - INTERNAL: do not use - - - INTERNAL: do not use - - - INTERNAL: do not use - - - - Extra non-tweening-related curve methods - - - - - Cubic bezier curve methods - - - - - Calculates a point along the given Cubic Bezier segment-curve. - - Segment start point - Start point's control point/handle - Segment end point - End point's control point/handle - 0-1 percentage along which to retrieve point - - - - Returns an array containing a series of points along the given Cubic Bezier segment-curve. - - Start point - Start point's control point/handle - End point - End point's control point/handle - Cloud resolution (min: 2) - - - - Calculates a series of points along the given Cubic Bezier segment-curve and adds them to the given list. - - Start point - Start point's control point/handle - End point - End point's control point/handle - Cloud resolution (min: 2) - - - - Main DOTween class. Contains static methods to create and control tweens in a generic way - - - - DOTween's version - - - If TRUE (default) makes tweens slightly slower but safer, automatically taking care of a series of things - (like targets becoming null while a tween is playing). - Default: TRUE - - - Log type when safe mode reports capturing an error and preventing it - - - Behaviour in case a tween nested inside a Sequence fails (and is 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. - Beware, this will slightly slow down your tweens while inside Unity Editor. - Default: FALSE - - - Global DOTween global timeScale (default: 1). - The final timeScale of a non-timeScaleIndependent tween is: - Unity's Time.timeScale * DOTween.timeScale * tween.timeScale - while the final timeScale of a timeScaleIndependent tween is: - DOTween.unscaledTimeScale * DOTween.timeScale * tween.timeScale - - - DOTween timeScale applied only to timeScaleIndependent tweens (default: 1). - The final timeScale of a timeScaleIndependent tween is: - DOTween.unscaledTimeScale * DOTween.timeScale * tween.timeScale - - - If TRUE, DOTween will use Time.smoothDeltaTime instead of Time.deltaTime for UpdateType.Normal and UpdateType.Late tweens - (unless they're set as timeScaleIndependent, in which case a value between the last timestep - and will be used instead). - Setting this to TRUE will lead to smoother animations. - Default: FALSE - - - If is TRUE, this indicates the max timeStep that an independent update call can last. - Setting this to TRUE will lead to smoother animations. - Default: FALSE - - - 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 - - - Gets/sets the max Tweeners capacity (automatically increased by DOTween when necessary). - You can also set both Tweeners and Sequences capacity via the static method - - - Gets/sets the max Sequences capacity (automatically increased by DOTween when necessary). - You can also set both Tweeners and Sequences capacity via the static method - - - If TRUE activates various debug options - - - Stores the target id so it can be used to give more info in case of safeMode error capturing. - Only active if both debugMode and useSafeMode are TRUE - - - Default updateType for new tweens. - Default: UpdateType.Normal - - - Sets whether Unity's timeScale should be taken into account by default or not. - Default: false - - - Default autoPlay behaviour for new tweens. - Default: AutoPlay.All - - - Default autoKillOnComplete behaviour for new tweens. - Default: TRUE - - - Default loopType applied to all new tweens. - Default: LoopType.Restart - - - If TRUE all newly created tweens are set as recyclable, otherwise not. - Default: FALSE - - - Default ease applied to all new Tweeners (not to Sequences which always have Ease.Linear as default). - Default: Ease.InOutQuad - - - Default overshoot/amplitude used for eases - Default: 1.70158f - - - 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, - otherwise it will be called automatically and will use default options. - Calling it a second time won't have any effect. - You can chain SetCapacity to this method, to directly set the max starting size of Tweeners and Sequences: - DOTween.Init(false, false, LogBehaviour.Default).SetCapacity(100, 20); - - If TRUE all new tweens will be set for recycling, meaning that when killed, - instead of being destroyed, they will be put in a pool and reused instead of creating new tweens. This option allows you to avoid - GC allocations by reusing tweens, but you will have to take care of tween references, since they might result active - even if they were killed (since they might have been respawned and are now being used for other tweens). - If you want to automatically set your tween references to NULL when a tween is killed - you can use the OnKill callback like this: - .OnKill(()=> myTweenReference = null) - You can change this setting at any time by changing the static property, - or you can set the recycling behaviour for each tween separately, using: - SetRecyclable(bool recyclable) - Default: FALSE - If TRUE makes tweens slightly slower but safer, automatically taking care of a series of things - (like targets becoming null while a tween is playing). - You can change this setting at any time by changing the static property. - Default: FALSE - Type of logging to use. - You can change this setting at any time by changing the static property. - Default: ErrorsOnly - - - - Directly sets the current max capacity of Tweeners and Sequences - (meaning how many Tweeners and Sequences can be running at the same time), - so that DOTween doesn't need to automatically increase them in case the max is reached - (which might lead to hiccups when that happens). - Sequences capacity must be less or equal to Tweeners capacity - (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's). - Beware: use this method only when there are no tweens running. - - Max Tweeners capacity. - Default: 200 - Max Sequences capacity. - Default: 50 - - - - Kills all tweens, clears all cached tween pools and plugins and resets the max Tweeners/Sequences capacities to the default values. - - If TRUE also destroys DOTween's gameObject and resets its initializiation, default settings and everything else - (so that next time you use it it will need to be re-initialized) - - - - Clears all cached tween pools. - - - - - Checks all active tweens to find and remove eventually invalid ones (usually because their targets became NULL) - and returns the total number of invalid tweens found and removed. - IMPORTANT: this will cause an error on UWP platform, so don't use it there - 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. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - - - Tweens a property or field to the given value using default plugins - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - - - Tweens a property or field to the given value using default plugins - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - - - Tweens a property or field to the given value using default plugins - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - - - Tweens a property or field to the given value using default plugins - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - - - Tweens a property or field to the given value using default plugins - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - - - Tweens a property or field to the given value using default plugins - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - - - Tweens a property or field to the given value using default plugins - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - - - Tweens a property or field to the given value using default plugins - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - - - Tweens a property or field to the given value using default plugins - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - - - Tweens a property or field to the given value using default plugins - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - - - Tweens a property or field to the given value using default plugins - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - - - Tweens a property or field to the given value using default plugins - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - - - Tweens a property or field to the given value using default plugins - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - - - Tweens a property or field to the given value using a custom plugin - The plugin to use. Each custom plugin implements a static Get() method - you'll need to call to assign the correct plugin in the correct way, like this: - CustomPlugin.Get() - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - - - Tweens only one axis of a Vector3 to the given value using default plugins. - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - The axis to tween - - - Tweens only the alpha of a Color to the given value using default plugins - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end value to reachThe tween's duration - - - Tweens a virtual property from the given start to the given end value - and implements a setter that allows to use that value with an external method or a lambda - Example: - To(MyMethod, 0, 12, 0.5f); - Where MyMethod is a function that accepts a float parameter (which will be the result of the virtual tween) - The action to perform with the tweened value - The value to start from - The end value to reach - The duration of the virtual tween - - - - Punches a Vector3 towards the given direction and then back to the starting one - as if it was connected to the starting position via an elastic. - This tween type generates some GC allocations at startup - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The direction and strength of the punch - 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 direction and the opposite decaying direction, - while 0 oscillates only between the starting position and the decaying direction - - - Shakes a Vector3 with the given values. - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - 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 and behave like a random punch. - If TRUE only shakes on the X Y axis (looks better with things like cameras). - If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not - Randomness mode - - - Shakes a Vector3 with the given values. - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - 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 and behave like a random punch. - If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not - Randomness mode - - - Tweens a property or field to the given values using default plugins. - Ease is applied between each segment and not as a whole. - This tween type generates some GC allocations at startup - A getter for the field or property to tween. - Example usage with lambda:()=> myProperty - A setter for the field or property to tween - Example usage with lambda:x=> myProperty = x - The end values to reach for each segment. This array must have the same length as durations - The duration of each segment. This array must have the same length as endValues - - - - Returns a new to be used for tween groups. - Mind that Sequences don't have a target applied automatically like Tweener creation shortcuts, - so if you want to be able to kill this Sequence when calling DOTween.Kill(target) you'll have to add - the target manually; you can do that directly by using the overload instead of this one - - - - - Returns a new to be used for tween groups, and allows to set a target - (because Sequences don't have their target set automatically like Tweener creation shortcuts). - That way killing/controlling tweens by target will apply to this Sequence too. - - The target of the Sequence. Relevant only for static target-based methods like DOTween.Kill(target), - useless otherwise - - - Completes all tweens and returns the number of actual tweens completed - (meaning 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 - - - Completes all tweens with the given ID or target and returns the number of actual tweens completed - (meaning the tweens that don't have infinite loops and were not already complete) - For Sequences only: if TRUE internal Sequence callbacks will be fired, - otherwise they will be ignored - - - Flips all tweens (changing their direction to forward if it was backwards and viceversa), - then returns the number of actual tweens flipped - - - Flips the tweens with the given ID or target (changing their direction to forward if it was backwards and viceversa), - then returns the number of actual tweens flipped - - - Sends all tweens to the given position (calculating also eventual loop cycles) and returns the actual tweens involved - - - Sends all tweens with the given ID or target to the given position (calculating also eventual loop cycles) - and returns the actual tweens involved - - - Kills all tweens and returns the number of actual tweens killed - If TRUE completes the tweens before killing them - - - Kills all tweens and returns the number of actual tweens killed - If TRUE completes the tweens before killing them - Eventual IDs or targets to exclude from the killing - - - Kills all tweens with the given ID or target and returns the number of actual tweens killed - If TRUE completes the tweens before killing them - - - Kills all tweens with the given target and the given ID, and returns the number of actual tweens killed - If TRUE completes the tweens before killing them - - - Pauses all tweens and returns the number of actual tweens paused - - - Pauses all tweens with the given ID or target and returns the number of actual tweens paused - (meaning the tweens that were actually playing and have been paused) - - - Plays all tweens and returns the number of actual tweens played - (meaning tweens that were not already playing or complete) - - - Plays all tweens with the given ID or target and returns the number of actual tweens played - (meaning the tweens that were not already playing or complete) - - - Plays all tweens with the given target and the given ID, and returns the number of actual tweens played - (meaning the tweens that were not already playing or complete) - - - Plays backwards all tweens and returns the number of actual tweens played - (meaning tweens that were not already started, playing backwards or rewinded) - - - Plays backwards all tweens with the given ID or target and returns the number of actual tweens played - (meaning the tweens that were not already started, playing backwards or rewinded) - - - Plays backwards all tweens with the given target and ID and returns the number of actual tweens played - (meaning the tweens that were not already started, playing backwards or rewinded) - - - Plays forward all tweens and returns the number of actual tweens played - (meaning tweens that were not already playing forward or complete) - - - Plays forward all tweens with the given ID or target and returns the number of actual tweens played - (meaning the tweens that were not already playing forward or complete) - - - Plays forward all tweens with the given target and ID and returns the number of actual tweens played - (meaning the tweens that were not already started, playing backwards or rewinded) - - - Restarts all tweens, then returns the number of actual tweens restarted - - - Restarts all tweens with the given ID or target, then returns the number of actual tweens restarted - If TRUE includes the eventual tweens delays, otherwise skips them - If >= 0 changes the startup delay of all involved tweens to this value, otherwise doesn't touch it - - - Restarts all tweens with the given target and the given ID, and returns the number of actual tweens played - (meaning the tweens that were not already playing or complete) - If TRUE includes the eventual tweens delays, otherwise skips them - If >= 0 changes the startup delay of all involved tweens to this value, otherwise doesn't touch it - - - Rewinds and pauses all tweens, then returns the number of actual tweens rewinded - (meaning tweens that were not already rewinded) - - - Rewinds and pauses all tweens with the given ID or target, then returns the number of actual tweens rewinded - (meaning the tweens that were not already rewinded) - - - Smoothly rewinds all tweens (delays excluded), then returns the number of actual tweens rewinding/rewinded - (meaning tweens that were not already rewinded). - A "smooth rewind" animates the tween to its start position, - skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent. - Note that a tween that was smoothly rewinded will have its play direction flipped - - - Smoothly rewinds all tweens (delays excluded) with the given ID or target, then returns the number of actual tweens rewinding/rewinded - (meaning the tweens that were not already rewinded). - A "smooth rewind" animates the tween to its start position, - skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent. - Note that a tween that was smoothly rewinded will have its play direction flipped - - - Toggles the play state of all tweens and returns the number of actual tweens toggled - (meaning tweens that could be played or paused, depending on the toggle state) - - - Toggles the play state of all tweens with the given ID or target and returns the number of actual tweens toggled - (meaning the tweens that could be played or paused, depending on the toggle state) - - - - Returns TRUE if a tween with the given ID or target is active. - You can also use this to know if a shortcut tween is active for a given target. - Example: - transform.DOMoveX(45, 1); // transform is automatically added as the tween target - DOTween.IsTweening(transform); // Returns true - - The target or ID to look for - If FALSE (default) returns TRUE as long as a tween for the given target/ID is active, - otherwise also requires it to be playing - - - - Returns the total number of active tweens (so both Tweeners and Sequences). - A tween is considered active if it wasn't killed, regardless if it's playing or paused - - - - - Returns the total number of active Tweeners. - A Tweener is considered active if it wasn't killed, regardless if it's playing or paused - - - - - Returns the total number of active Sequences. - A Sequence is considered active if it wasn't killed, regardless if it's playing or paused - - - - - Returns the total number of active and playing tweens. - A tween is considered as playing even if its delay is actually playing - - - - - Returns a the total number of active tweens with the given id. - - If TRUE returns only the tweens with the given ID that are currently 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 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) - - - - - Creates virtual tweens that can be used to change other elements via their OnUpdate calls - - - - - Tweens a virtual float. - You can add regular settings to the generated tween, - but do not use OnUpdate or you will overwrite the onVirtualUpdate parameter - - The value to start from - The value to tween to - The duration of the tween - A callback which must accept a parameter of type float, called at each update - - - - Tweens a virtual int. - You can add regular settings to the generated tween, - but do not use OnUpdate or you will overwrite the onVirtualUpdate parameter - - The value to start from - The value to tween to - The duration of the tween - A callback which must accept a parameter of type int, called at each update - - - - Tweens a virtual Vector2. - You can add regular settings to the generated tween, - but do not use OnUpdate or you will overwrite the onVirtualUpdate parameter - - The value to start from - The value to tween to - The duration of the tween - A callback which must accept a parameter of type Vector3, called at each update - - - - Tweens a virtual Vector3. - You can add regular settings to the generated tween, - but do not use OnUpdate or you will overwrite the onVirtualUpdate parameter - - The value to start from - The value to tween to - The duration of the tween - A callback which must accept a parameter of type Vector3, called at each update - - - - Tweens a virtual Color. - You can add regular settings to the generated tween, - but do not use OnUpdate or you will overwrite the onVirtualUpdate parameter - - The value to start from - The value to tween to - The duration of the tween - A callback which must accept a parameter of type Color, called at each update - - - Returns a value based on the given ease and lifetime percentage (0 to 1) - The value to start from when lifetimePercentage is 0 - The value to reach when lifetimePercentage is 1 - The time percentage (0 to 1) at which the value should be taken - The type of ease - - - Returns a value based on the given ease and lifetime percentage (0 to 1) - The value to start from when lifetimePercentage is 0 - The value to reach when lifetimePercentage is 1 - The time percentage (0 to 1) at which the value should be taken - The type of ease - Eventual overshoot to use with Back ease - - - Returns a value based on the given ease and lifetime percentage (0 to 1) - The value to start from when lifetimePercentage is 0 - The value to reach when lifetimePercentage is 1 - The time percentage (0 to 1) at which the value should be taken - The type of ease - Eventual amplitude to use with Elastic easeType - Eventual period to use with Elastic easeType - - - Returns a value based on the given ease and lifetime percentage (0 to 1) - The value to start from when lifetimePercentage is 0 - The value to reach when lifetimePercentage is 1 - The time percentage (0 to 1) at which the value should be taken - The AnimationCurve to use for ease - - - Returns a value based on the given ease and lifetime percentage (0 to 1) - The value to start from when lifetimePercentage is 0 - The value to reach when lifetimePercentage is 1 - The time percentage (0 to 1) at which the value should be taken - The type of ease - - - Returns a value based on the given ease and lifetime percentage (0 to 1) - The value to start from when lifetimePercentage is 0 - The value to reach when lifetimePercentage is 1 - The time percentage (0 to 1) at which the value should be taken - The type of ease - Eventual overshoot to use with Back ease - - - Returns a value based on the given ease and lifetime percentage (0 to 1) - The value to start from when lifetimePercentage is 0 - The value to reach when lifetimePercentage is 1 - The time percentage (0 to 1) at which the value should be taken - The type of ease - Eventual amplitude to use with Elastic easeType - Eventual period to use with Elastic easeType - - - Returns a value based on the given ease and lifetime percentage (0 to 1) - The value to start from when lifetimePercentage is 0 - The value to reach when lifetimePercentage is 1 - The time percentage (0 to 1) at which the value should be taken - The AnimationCurve to use for ease - - - Fires the given callback after the given time. - Callback delay - Callback to fire when the delay has expired - If TRUE (default) ignores Unity's timeScale - - - - Don't assign this! It's assigned automatically when creating 0 duration tweens - - - - - Don't assign this! It's assigned automatically when setting the ease to an AnimationCurve or to a custom ease function - - - - - Allows to wrap ease method in special ways, adding extra features - - - - - Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS - - FPS at which the tween should be played - Ease type - - - - Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS - - FPS at which the tween should be played - AnimationCurve to use for the ease - - - - Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS - - FPS at which the tween should be played - Custom ease function to use - - - - Used to allow method chaining with DOTween.Init - - - - - Directly sets the current max capacity of Tweeners and Sequences - (meaning how many Tweeners and Sequences can be running at the same time), - so that DOTween doesn't need to automatically increase them in case the max is reached - (which might lead to hiccups when that happens). - Sequences capacity must be less or equal to Tweeners capacity - (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's). - Beware: use this method only when there are no tweens running. - - Max Tweeners capacity. - Default: 200 - 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) - - - - Ignores the path mode (and thus LookAt behaviour) - - - Regular 3D path - - - 2D top-down path - - - 2D side-scroller path - - - - Type of path to use with DOPath tweens - - - - Linear, composed of straight segments between each waypoint - - - Curved path (which uses Catmull-Rom curves) - - - EXPERIMENTAL: Curved path (which uses Cubic Bezier curves, where each point requires two extra control points) - - - - Tweens a Vector2 along a circle. - EndValue represents the center of the circle, start and end value degrees are inside options - ChangeValue x is changeValue°, y is unused - - - - - Path control point - - - - - Path waypoints (modified by PathPlugin when setting relative end/change value or by CubicBezierDecoder) and by DOTweenPathInspector - - - - - Minimum input points necessary to create the path (doesn't correspond to actual waypoints required) - - - - - Gets the point on the path at the given percentage (0 to 1) - - The percentage (0 to 1) at which to get the point - If TRUE constant speed is taken into account, otherwise not - - - - Base interface for all tween plugins options - - - - Resets the plugin - - - - This plugin generates some GC allocations at startup - - - - - Path plugin works exclusively with Transforms - - - - - Rotation mode used with DORotate methods - - - - - Fastest way that never rotates beyond 360° - - - - - Fastest way that rotates beyond 360° - - - - - Adds the given rotation to the transform using world axis and an advanced precision mode - (like when using transform.Rotate(Space.World)). - In this mode the end value is is always considered relative - - - - - Adds the given rotation to the transform's local axis - (like when rotating an object with the "local" switch enabled in Unity's editor or using transform.Rotate(Space.Self)). - In this mode the end value is is always considered relative - - - - - Type of scramble to apply to string tweens - - - - - No scrambling of characters - - - - - A-Z + a-z + 0-9 characters - - - - - A-Z characters - - - - - a-z characters - - - - - 0-9 characters - - - - - Custom characters - - - - - Type of randomness to apply to a shake tween - - - - Default, full randomness - - - Creates a more balanced randomness that looks more harmonic - - - - Methods that extend Tween objects and allow to control or get data from them - - - - Completes the tween - - - Completes the tween - For Sequences only: if TRUE also internal Sequence callbacks will be fired, - otherwise they will be ignored - - - Optional: indicates that the tween creation has ended, to be used (optionally) as the last element of tween chaining creation.
- This method won't do anything except in case of 0-duration tweens, - where it will complete them immediately instead of waiting for the next internal update routine - (unless they're nested in a Sequence, in which case the Sequence will still be the one in control and this method will be ignored)
-
- - Flips the direction of this tween (backwards if it was going forward or viceversa) - - - Forces the tween to initialize its settings immediately - - - Send the tween to the given position in time - 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 - - - Send the tween to the given position in time while also executing any callback between the previous time position and the new one - 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 - - - Kills the tween - If TRUE completes the tween before killing it - - - - Forces this tween to update manually, regardless of the set via SetUpdate. - Note that the tween will still be subject to normal tween rules, so if for example it's paused this method will do nothing. - Also note that if you only want to update this tween instance manually you'll have to set it to anyway, - so that it's not updated automatically. - - Manual deltaTime - Unscaled delta time (used with tweens set as timeScaleIndependent) - - - Pauses the tween - - - Plays the tween - - - Sets the tween in a backwards direction and plays it - - - Sets the tween in a forward direction and plays it - - - Restarts the tween from the beginning - Ignored in case of Sequences. If TRUE includes the eventual tween delay, otherwise skips it - Ignored in case of Sequences. If >= 0 changes the startup delay to this value, otherwise doesn't touch it - - - Rewinds and pauses the tween - Ignored in case of Sequences. If TRUE includes the eventual tween delay, otherwise skips it - - - Smoothly rewinds the tween (delays excluded). - A "smooth rewind" animates the tween to its start position, - skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent. - If called on a tween who is still waiting for its delay to happen, it will simply set the delay to 0 and pause the tween. - Note that a tween that was smoothly rewinded will have its play direction flipped - - - Plays the tween if it was paused, pauses it if it was playing - - - Send a path tween to the given waypoint. - Has no effect if this is not a path tween. - BEWARE, this is a special utility method: - it works only with Linear eases. Also, the lookAt direction might be wrong after calling this and might need to be set manually - (because it relies on a smooth path movement and doesn't work well with jumps that encompass dramatic direction changes) - Waypoint index to reach - (if higher than the max waypoint index the tween will simply go to the last one) - If TRUE will play the tween after reaching the given waypoint, otherwise it will pause it - - - - Creates a yield instruction 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(); - - - - - Creates a yield instruction 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(); - - - - - Creates a yield instruction that waits until the tween is killed. - It can be used inside a coroutine as a yield. - Example usage:yield return myTween.WaitForKill(); - - - - - Creates a yield instruction 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 - - - - Creates a yield instruction 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 - - - - Creates a yield instruction 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(); - - - - Returns the total number of loops completed by this tween - - - Returns the eventual delay set for this tween - - - Returns the eventual elapsed delay set for this tween - - - Returns the duration of this tween (delays excluded). - NOTE: when using settings like SpeedBased, the duration will be recalculated when the tween starts - If TRUE returns the full duration loops included, - otherwise the duration of a single loop cycle - - - Returns the elapsed time for this tween (delays exluded) - If TRUE returns the elapsed time since startup loops included, - otherwise the elapsed time within the current loop cycle - - - Returns the elapsed percentage (0 to 1) of this tween (delays exluded) - If TRUE returns the elapsed percentage since startup loops included, - otherwise the elapsed percentage within the current loop cycle - - - Returns the elapsed percentage (0 to 1) of this tween (delays exluded), - based on a single loop, and calculating eventual backwards Yoyo loops as 1 to 0 instead of 0 to 1 - - - Returns FALSE if this tween has been killed or is NULL, TRUE otherwise. - BEWARE: if this tween is recyclable it might have been spawned again for another use and thus return TRUE anyway. - When working with recyclable tweens you should take care to know when a tween has been killed and manually set your references to NULL. - If you want to be sure your references are set to NULL when a tween is killed you can use the OnKill callback like this: - .OnKill(()=> myTweenReference = null) - - - Returns TRUE if this tween was reversed and is set to go backwards - - - NOTE: To check if a tween was simply set to go backwards see . - Returns TRUE if this tween is going backwards for any of these reasons: - - The tween was reversed and is going backwards on a straight loop - - The tween was reversed and is going backwards on an odd Yoyo loop - - The tween is going forward but on an even Yoyo loop - IMPORTANT: if used inside a tween's callback, this will return a result concerning the exact frame when it's asked, - so for example in a callback at the end of a Yoyo loop step this method will never return FALSE - because the frame will never end exactly there and the tween will already be going backwards when the callback is fired - - - Returns TRUE if the tween is complete - (silently fails and returns FALSE if the tween has been killed) - - - Returns TRUE if this tween was set to be timeScale independent via the tween.SetUpdate method - - - Returns TRUE if this tween has been initialized - - - Returns TRUE if this tween is playing - - - Returns the total number of loops set for this tween - (returns -1 if the loops are infinite) - - - - Returns a point on a path based on the given path percentage. - Returns Vector3.zero if this is not a path tween, if the tween is invalid, or if the path is not yet initialized. - A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature). - You can force a path to be initialized by calling myTween.ForceInit(). - - Percentage of the path (0 to 1) on which to get the point - - - - Returns an array of points that can be used to draw the path. - Note that this method generates allocations, because it creates a new array. - Returns NULL if this is not a path tween, if the tween is invalid, or if the path is not yet initialized. - A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature). - You can force a path to be initialized by calling myTween.ForceInit(). - - How many points to create for each path segment (waypoint to waypoint). - Only used in case of non-Linear paths - - - - Returns the length of a path. - Returns -1 if this is not a path tween, if the tween is invalid, or if the path is not yet initialized. - A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature). - You can force a path to be initialized by calling myTween.ForceInit(). - - - - - Types of loop - - - - Each loop cycle restarts from the beginning - - - The tween moves forward and backwards at alternate cycles - - - Continuously increments the tween at the end of each loop cycle (A to B, B to B+(A-B), and so on), thus always moving "onward". - In case of String tweens works only if the tween is set as relative - - - - Controls other tweens as a group - - - - - Methods that extend known Unity objects and allow to directly create and control tweens from their instances - - - - 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 - The end value to reachThe duration of the tween - - - Tweens a Camera's backgroundColor to the given value. - Also stores the camera 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 farClipPlane to the given value. - Also stores the camera 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 fieldOfView to the given value. - Also stores the camera 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 nearClipPlane to the given value. - Also stores the camera 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 orthographicSize to the given value. - Also stores the camera 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 pixelRect to the given value. - Also stores the camera 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 rect to the given value. - Also stores the camera as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Shakes a Camera's localPosition along its relative X Y axes with the given values. - Also stores the camera 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 shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not - Randomness mode - - - Shakes a Camera's localPosition along its relative X Y axes with the given values. - Also stores the camera 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 shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not - Randomness mode - - - Shakes a Camera's localRotation. - Also stores the camera 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 shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not - Randomness mode - - - Shakes a Camera's localRotation. - Also stores the camera 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 shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not - Randomness mode - - - Tweens a Light's color to the given value. - Also stores the light as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a Light's intensity to the given value. - Also stores the light as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a Light's shadowStrength to the given value. - Also stores the light as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a LineRenderer's color to the given value. - Also stores the LineRenderer as the tween's target so it can be used for filtered operations. - Note that this method requires to also insert the start colors for the tween, - since LineRenderers have no way to get them. - The start value to tween from - The end value to reachThe duration of the tween - - - Tweens a Material's color 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 reachThe duration of the tween - - - Tweens a Material's named color property 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 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). - Also stores the material 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 - (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 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 - The end value to reach - 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 - The end value to reach - The duration of the tween - - - Tweens a Material's named texture offset property 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 name of the material property to tween - The duration of the tween - - - Tweens a Material's texture scale 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 duration of the tween - - - Tweens a Material's named texture scale property 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 name of the material property to tween - The duration of the tween - - - Tweens a Material's named Vector property 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 name of the material property to tween - The duration of the tween - - - 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 - The ID of the material property to tween (also called nameID in Unity's manual) - The duration of the tween - - - Tweens a TrailRenderer's startWidth/endWidth to the given value. - Also stores the TrailRenderer as the tween's target so it can be used for filtered operations - The end startWidth to reachThe end endWidth to reach - The duration of the tween - - - Tweens a TrailRenderer's time to the given value. - Also stores the TrailRenderer as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a Transform's position to the given value. - Also stores the transform 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 Transform's X position to the given value. - Also stores the transform 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 Transform's Y position to the given value. - Also stores the transform 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 Transform's Z position to the given value. - Also stores the transform 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 Transform's localPosition to the given value. - Also stores the transform 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 Transform's X localPosition to the given value. - Also stores the transform 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 Transform's Y localPosition to the given value. - Also stores the transform 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 Transform's Z localPosition to the given value. - Also stores the transform 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 Transform's rotation to the given value. - Also stores the transform 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 Transform's rotation to the given value using pure quaternion values. - Also stores the transform as the tween's target so it can be used for filtered operations. - PLEASE NOTE: DORotate, which takes Vector3 values, is the preferred rotation method. - This method was implemented for very special cases, and doesn't support LoopType.Incremental loops - (neither for itself nor if placed inside a LoopType.Incremental Sequence) - - The end value to reachThe duration of the tween - - - Tweens a Transform's localRotation to the given value. - Also stores the transform 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 Transform's rotation to the given value using pure quaternion values. - Also stores the transform as the tween's target so it can be used for filtered operations. - PLEASE NOTE: DOLocalRotate, which takes Vector3 values, is the preferred rotation method. - This method was implemented for very special cases, and doesn't support LoopType.Incremental loops - (neither for itself nor if placed inside a LoopType.Incremental Sequence) - - The end value to reachThe duration of the tween - - - Tweens a Transform's localScale to the given value. - Also stores the transform as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a Transform's localScale uniformly to the given value. - Also stores the transform as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a Transform's X localScale to the given value. - Also stores the transform as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a Transform's Y localScale to the given value. - Also stores the transform as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a Transform's Z localScale to the given value. - Also stores the transform as the tween's target so it can be used for filtered operations - The end value to reachThe duration of the tween - - - Tweens a Transform's rotation so that it will look towards the given world position. - Also stores the transform 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) - - - EXPERIMENTAL Tweens a Transform's rotation so that it will look towards the given world position, - while also updating the lookAt position every frame - (contrary to which calculates the lookAt rotation only once, when the tween starts). - Also stores the transform 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) - - - Punches a Transform's localPosition towards the given direction and then back to the starting one - as if it was connected to the starting position via an elastic. - The direction and strength of the punch (added to the Transform'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 - - - Punches a Transform's localScale towards the given size and then back to the starting one - as if it was connected to the starting scale via an elastic. - The punch strength (added to the Transform's current scale) - 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 size when bouncing backwards. - 1 creates a full oscillation between the punch scale and the opposite scale, - while 0 oscillates only between the punch scale and the start scale - - - Punches a Transform's localRotation towards the given size and then back to the starting one - as if it was connected to the starting rotation via an elastic. - 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 - - - Shakes a Transform's localPosition with the given values. - 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 - Randomness mode - - - Shakes a Transform's localPosition with the given values. - 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 - Randomness mode - - - Shakes a Transform's localRotation. - 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 shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not - Randomness mode - - - Shakes a Transform's localRotation. - 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 shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not - Randomness mode - - - Shakes a Transform's localScale. - 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 shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not - Randomness mode - - - Shakes a Transform's localScale. - 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 shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not - Randomness mode - - - Tweens a Transform'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 transform 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 Transform's localPosition to the given value, while also applying a jump effect along the Y axis. - Returns a Sequence instead of a Tweener. - Also stores the transform 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 Transform's position through the given path waypoints, using the chosen path algorithm. - Also stores the transform as the tween's target so it can be used for filtered operations - The waypoints to go through - The duration of the tween - The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) - 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 Transform's localPosition through the given path waypoints, using the chosen path algorithm. - Also stores the transform as the tween's target so it can be used for filtered operations - The waypoint to go through - The duration of the tween - The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) - 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) - - - 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 - The end value to reachThe duration of the tween - - - Tweens a Light'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 Light as the tween's target so it can be used for filtered operations - The value to tween toThe duration of the tween - - - Tweens a Material'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 Material as the tween's target so it can be used for filtered operations - The value to tween toThe duration of the tween - - - Tweens a Material's named color property 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 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, - instead than fight each other as multiple DOMove would do. - Also stores the transform as the tween's target so it can be used for filtered operations - The value to tween byThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - Tweens a Transform's localPosition 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, - instead than fight each other as multiple DOMove would do. - Also stores the transform as the tween's target so it can be used for filtered operations - The value to tween byThe duration of the tween - If TRUE the tween will smoothly snap all values to integers - - - EXPERIMENTAL METHOD - Tweens a Transform's rotation BY the given value (as if you chained a SetRelative), - in a way that allows other DOBlendableRotate tweens to work together on the same target, - instead than fight each other as multiple DORotate would do. - Also stores the transform as the tween's target so it can be used for filtered operations - The value to tween byThe duration of the tween - Rotation mode - - - EXPERIMENTAL METHOD - Tweens a Transform's lcoalRotation BY the given value (as if you chained a SetRelative), - in a way that allows other DOBlendableRotate tweens to work together on the same target, - instead than fight each other as multiple DORotate would do. - Also stores the transform as the tween's target so it can be used for filtered operations - 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, - instead than fight each other as multiple DOScale would do. - Also stores the transform as the tween's target so it can be used for filtered operations - The value to tween byThe 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 - - - - 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 - - - - 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. - - - - - 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 - - - - 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. - - - - - 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 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 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. - - - - - 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. - - - - - 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. - - - - - 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. - - - - - 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. - - - - - 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. - - - - - This class serves only as a utility class to store tween settings to apply on multiple tweens. - It is in no way needed otherwise, since you can directly apply tween settings to a tween via chaining - - - - A variable you can eventually Clear and reuse when needed, - to avoid instantiating TweenParams objects - - - Creates a new TweenParams object, which you can use to store tween settings - to pass to multiple tweens via myTween.SetAs(myTweenParms) - - - Clears and resets this TweenParams instance using default values, - so it can be reused without instantiating another one - - - Sets the autoKill behaviour of the tween. - Has no effect if the tween has already started - 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 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 the target for the tween, which can then be used as a filter with DOTween's static methods. - IMPORTANT: use it with caution. If you just want to set an ID for the tween use SetId instead. - When using shorcuts the shortcut target is already assigned as the tween's target, - so using this method will overwrite it and prevent shortcut-operations like myTarget.DOPause from working correctly. - The target to assign to this tween. Can be an int, a string, an object or anything else. - - - Sets the looping options for the tween. - Has no effect if the tween has already started - Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence) - Loop behaviour type (default: LoopType.Restart) - - - Sets the ease of the tween. - If applied to Sequences eases the whole sequence animation - Eventual overshoot or amplitude to use with Back or Elastic easeType (default is 1.70158) - Eventual period to use with Elastic easeType (default is 0) - - - Sets the ease of the tween using an AnimationCurve. - If applied to Sequences eases the whole sequence animation - - - Sets the ease of the tween using a custom ease function. - If applied to Sequences eases the whole sequence animation - - - Sets the recycling behaviour for the tween. - If TRUE the tween will be recycled after being killed, otherwise it will be destroyed. - - - Sets the update type to the one defined in DOTween.defaultUpdateType (UpdateType.Normal unless changed) - and lets you choose if it should be independent from Unity's Time.timeScale - If TRUE the tween will ignore Unity's Time.timeScale - - - Sets the type of update (default or independent) for the tween - The type of update (default: UpdateType.Normal) - If TRUE the tween will ignore Unity's Time.timeScale - - - Sets the onStart callback for the tween. - Called the first time the tween is set in a playing state, after any eventual delay - - - Sets the onPlay callback for the tween. - 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 onRewind callback for the tween. - 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. - Called each time the tween updates - - - Sets the onStepComplete callback for the tween. - Called the moment the tween completes one loop cycle, even when going backwards - - - Sets the onComplete callback for the tween. - Called the moment the tween reaches its final forward position, loops included - - - Sets the onKill callback for the tween. - Called the moment the tween is killed - - - Sets the onWaypointChange callback for the tween. - Called when a path tween reaches a new waypoint - - - Sets a delayed startup for the tween. - Has no effect on Sequences or if the tween has already started - - - If isRelative is TRUE sets the tween as relative - (the endValue will be calculated as startValue + endValue instead than being used directly). - Has no effect on Sequences or if the tween has already started - - - If isSpeedBased is TRUE sets the tween as speed based - (the duration will represent the number of units the tween moves x second). - Has no effect on Sequences, nested tweens, or if the tween has already started - - - - Methods that extend Tween objects and allow to set their parameters - - - - 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 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 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. - IMPORTANT: use it with caution. If you just want to set an ID for the tween use SetId instead. - When using shorcuts the shortcut target is already assigned as the tween's target, - so using this method will overwrite it and prevent shortcut-operations like myTarget.DOPause from working correctly. - The target to assign to this tween. Can be an int, a string, an object or anything else. - - - Sets the looping options for the tween. - Has no effect if the tween has already started - Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence) - - - Sets the looping options for the tween. - Has no effect if the tween has already started - Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence) - Loop behaviour type (default: LoopType.Restart) - - - Sets the ease of the tween. - If applied to Sequences eases the whole sequence animation - - - Sets the ease of the tween. - If applied to Sequences eases the whole sequence animation - - Eventual overshoot to use with Back or Flash ease (default is 1.70158 - 1 for Flash). - In case of Flash ease it must be an intenger and sets the total number of flashes that will happen. - Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value. - - - - Sets the ease of the tween. - If applied to Sequences eases the whole sequence animation - Eventual amplitude to use with Elastic easeType or overshoot to use with Flash easeType (default is 1.70158 - 1 for Flash). - In case of Flash ease it must be an integer and sets the total number of flashes that will happen. - Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value. - - Eventual period to use with Elastic or Flash easeType (default is 0). - In case of Flash ease it indicates the power in time of the ease, and must be between -1 and 1. - 0 is balanced, 1 weakens the ease with time, -1 starts the ease weakened and gives it power towards the end. - - - - Sets the ease of the tween using an AnimationCurve. - If applied to Sequences eases the whole sequence animation - - - Sets the ease of the tween using a custom ease function (which must return a value between 0 and 1). - If applied to Sequences eases the whole sequence animation - - - Allows the tween to be recycled after being killed. - - - Sets the recycling behaviour for the tween. - If TRUE the tween will be recycled after being killed, otherwise it will be destroyed. - - - Sets the update type to UpdateType.Normal and lets you choose if it should be independent from Unity's Time.timeScale - If TRUE the tween will ignore Unity's Time.timeScale - - - Sets the type of update for the tween - The type of update (defalt: UpdateType.Normal) - - - Sets the type of update for the tween and lets you choose if it should be independent from Unity's Time.timeScale - The type of update - If TRUE the tween will ignore Unity's Time.timeScale - - - EXPERIMENTAL: inverts this tween, so that it will play from the end to the beginning - (playing it backwards will actually play it from the beginning to the end). - Has no effect if the tween has already started or if it's added to a Sequence - - - EXPERIMENTAL: inverts this tween, so that it will play from the end to the beginning - (playing it backwards will actually play it from the beginning to the end). - Has no effect if the tween has already started or if it's added to a Sequence - If TRUE the tween will be inverted, otherwise it won't - - - 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, 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 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, 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, clearing any previous onUpdate callback that was set. - Called each time the tween updates - - - 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, 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, clearing any previous onKill callback that was set. - Called the moment the tween is killed - - - Sets the onWaypointChange callback for the tween, clearing any previous onWaypointChange callback that was set. - Called when a path tween's current waypoint changes - - - Sets the parameters of the tween (id, ease, loops, delay, timeScale, callbacks, etc) as the parameters of the given one. - Doesn't copy specific SetOptions settings: those will need to be applied manually each time. - Has no effect if the tween has already started. - NOTE: the tween's target will not be changed - Tween from which to copy the parameters - - - Sets the parameters of the tween (id, ease, loops, delay, timeScale, callbacks, etc) as the parameters of the given TweenParams. - Has no effect if the tween has already started. - TweenParams from which to copy the parameters - - - Adds the given tween to the end of the Sequence. - Has no effect if the Sequence has already started - The tween to append - - - Adds the given tween to the beginning of the Sequence, pushing forward the other nested content. - Has no effect if the Sequence has already started - The tween to prepend - - - Inserts the given tween at the same time position of the last tween, callback or interval added to the Sequence. - Note that, in case of a Join after an interval, the insertion time will be the time where the interval starts, not where it finishes. - Has no effect if the Sequence has already started - - - Inserts the given tween at the given time position in the Sequence, - automatically adding an interval if needed. - Has no effect if the Sequence has already started - The time position where the tween will be placed - The tween to insert - - - Adds the given interval to the end of the Sequence. - Has no effect if the Sequence has already started - The interval duration - - - Adds the given interval to the beginning of the Sequence, pushing forward the other nested content. - Has no effect if the Sequence has already started - The interval duration - - - Adds the given callback to the end of the Sequence. - Has no effect if the Sequence has already started - The callback to append - - - Adds the given callback to the beginning of the Sequence, pushing forward the other nested content. - Has no effect if the Sequence has already started - The callback to prepend - - - Inserts the given callback at the same time position of the last tween, callback or interval added to the Sequence. - Note that, in case of a Join after an interval, the insertion time will be the time where the interval starts, not where it finishes. - Has no effect if the Sequence has already started - /// <param name="callback">The callback to prepend</param> - - - Inserts the given callback at the given time position in the Sequence, - automatically adding an interval if needed. - Has no effect if the Sequence has already started - The time position where the callback will be placed - The callback to insert - - - Changes a TO tween into a FROM tween: sets the current target's position as the tween's endValue - then immediately sends the target to the previously set endValue. - - - Changes a TO tween into a FROM tween: sets the current target's position as the tween's endValue - 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 current value of the target as the endValue, - and the previously passed endValue as the actual startValue. - If TRUE sets the target to from value immediately, otherwise waits for the tween to start - 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 - If TRUE the FROM/TO values will be calculated as relative to the current ones - - - 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 - If TRUE the FROM/TO values will be calculated as relative to the current ones - - - 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 - If TRUE the FROM/TO values will be calculated as relative to the current ones - - - 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 - If TRUE the FROM/TO values will be calculated as relative to the current ones - - - Sets a delayed startup for the tween. - In case of Sequences behaves the same as , - which means the delay will repeat in case of loops (while with tweens it's ignored after the first loop cycle). - Has no effect if the tween has already started - - - EXPERIMENTAL: implemented in v1.2.340. - Sets a delayed startup for the tween with options to choose how the delay is applied in case of Sequences. - Has no effect if the tween has already started - Only used by types: If FALSE sets the delay as a one-time occurrence - (defaults to this for types), - otherwise as a Sequence interval which will repeat at the beginning of every loop cycle - - - Sets the tween as relative - (the endValue will be calculated as startValue + endValue instead than being used directly). - Has no effect on Sequences or if the tween has already started - - - If isRelative is TRUE sets the tween as relative - (the endValue will be calculated as startValue + endValue instead than being used directly). - Has no effect on Sequences or if the tween has already started - - - If isSpeedBased is TRUE sets the tween as speed based - (the duration will represent the number of units the tween moves x second). - Has no effect on Sequences, nested tweens, or if the tween has already started - - - If isSpeedBased is TRUE sets the tween as speed based - (the duration will represent the number of units the tween moves x second). - Has no effect on Sequences, nested tweens, or if the tween has already started - - - Options for float tweens - If TRUE the tween will smoothly snap all values to integers - - - Options for Vector2 tweens - If TRUE the tween will smoothly snap all values to integers - - - Options for Vector2 tweens - Selecting an axis will tween the vector only on that axis, leaving the others untouched - If TRUE the tween will smoothly snap all values to integers - - - Options for Vector3 tweens - If TRUE the tween will smoothly snap all values to integers - - - Options for Vector3 tweens - Selecting an axis will tween the vector only on that axis, leaving the others untouched - If TRUE the tween will smoothly snap all values to integers - - - Options for Vector4 tweens - If TRUE the tween will smoothly snap all values to integers - - - Options for Vector4 tweens - Selecting an axis will tween the vector only on that axis, leaving the others untouched - If TRUE the tween will smoothly snap all values to integers - - - Options for Quaternion tweens - If TRUE (default) the rotation will take the shortest route, and will not rotate more than 360°. - If FALSE the rotation will be fully accounted. Is always FALSE if the tween is set as relative - - - Options for Color tweens - If TRUE only the alpha value of the color will be tweened - - - Options for Vector4 tweens - If TRUE the tween will smoothly snap all values to integers - - - Options for Vector4 tweens - If TRUE, rich text will be interpreted correctly while animated, - otherwise all tags will be considered as normal text - The type of scramble 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 to use default ones - - - Options for Vector3Array tweens - If TRUE the tween will smoothly snap all values to integers - - - Options for Vector3Array tweens - If TRUE the tween will smoothly snap all values to integers - - - Options for ShapeCircle tweens - If TRUE the center you set in the DOTween.To method will be considered as relative - to the starting position of the target - If TRUE the tween will smoothly snap all values to integers - - - Options for Path tweens (created via the DOPath shortcut) - The eventual movement axis to lock. You can input multiple axis if you separate them like this: - AxisConstrain.X | AxisConstraint.Y - The eventual rotation axis to lock. You can input multiple axis if you separate them like this: - AxisConstrain.X | AxisConstraint.Y - - - Options for Path tweens (created via the DOPath shortcut) - If TRUE the path will be automatically closed - The eventual movement axis to lock. You can input multiple axis if you separate them like this: - AxisConstrain.X | AxisConstraint.Y - The eventual rotation axis to lock. You can input multiple axis if you separate them like this: - AxisConstrain.X | AxisConstraint.Y - - - Additional LookAt options for Path tweens (created via the DOPath shortcut). - Orients the target towards the given position. - Must be chained directly to the tween creation method or to a SetOptions - The position to look at - The eventual direction to consider as "forward". - If left to NULL defaults to the regular forward side of the transform - The vector that defines in which direction up is (default: Vector3.up) - - - Additional LookAt options for Path tweens (created via the DOPath shortcut). - Orients the target towards the given position with options to keep the Z rotation stable. - Must be chained directly to the tween creation method or to a SetOptions - The position to look at - If TRUE doesn't rotate the target along the Z axis - - - Additional LookAt options for Path tweens (created via the DOPath shortcut). - Orients the target towards another transform. - Must be chained directly to the tween creation method or to a SetOptions - The transform to look at - The eventual direction to consider as "forward". - If left to NULL defaults to the regular forward side of the transform - The vector that defines in which direction up is (default: Vector3.up) - - - Additional LookAt options for Path tweens (created via the DOPath shortcut). - Orients the target towards another transform with options to keep the Z rotation stable. - Must be chained directly to the tween creation method or to a SetOptions - The transform to look at - If TRUE doesn't rotate the target along the Z axis - - - Additional LookAt options for Path tweens (created via the DOPath shortcut). - Orients the target to the path, with the given lookAhead. - Must be chained directly to the tween creation method or to a SetOptions - The percentage of lookAhead to use (0 to 1) - The eventual direction to consider as "forward". - If left to NULL defaults to the regular forward side of the transform - The vector that defines in which direction up is (default: Vector3.up) - - - Additional LookAt options for Path tweens (created via the DOPath shortcut). - Orients the path with options to keep the Z rotation stable. - Must be chained directly to the tween creation method or to a SetOptions - The percentage of lookAhead to use (0 to 1) - If TRUE doesn't rotate the target along the Z axis - - - - Types of log behaviours - - - - Log only warnings and errors - - - Log warnings, errors and additional infos - - - Log only errors - - - - Indicates either a Tweener or a Sequence - - - - TimeScale for the tween - - - If TRUE the tween will play backwards - - - If TRUE the tween is completely inverted but without playing it backwards - (play backwards will actually play the tween in the original direction) - - - 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 shortcuts - - - 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 - - - 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. - - - 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 - - - Called each time the tween updates - - - Called the moment the tween completes one loop cycle - - - Called the moment the tween reaches completion (loops included) - - - Called the moment the tween is killed - - - Called when a path tween's current waypoint changes - - - Tweeners-only (ignored by Sequences), returns TRUE if the tween was set as relative - - - - Set by SetTarget if DOTween's Debug Mode is on (see DOTween Utility Panel -> "Store GameObject's ID" debug option - - - - 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 - - - Returns TRUE if the tween is set to loop (either a set number of times or infinitely) - - - 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 - - - - 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 - - - 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 - - - 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 - - - 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 - - - - Used internally - - - - - Update type - - - - Updates every frame during Update calls - - - Updates every frame during LateUpdate calls - - - Updates using FixedUpdate calls - - - Updates using manual update calls - -
-
diff --git a/Assets/DOTween/DOTween.XML.meta b/Assets/DOTween/DOTween.XML.meta deleted file mode 100644 index 814057e..0000000 --- a/Assets/DOTween/DOTween.XML.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 619a29c7459169344b7a685b0b9ada64 -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/DOTween/DOTween.dll b/Assets/DOTween/DOTween.dll deleted file mode 100644 index 73235fc..0000000 Binary files a/Assets/DOTween/DOTween.dll and /dev/null differ diff --git a/Assets/DOTween/DOTween.dll.meta b/Assets/DOTween/DOTween.dll.meta deleted file mode 100644 index 7743937..0000000 --- a/Assets/DOTween/DOTween.dll.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: b1830ce43b03605458c19d07b1aacb50 \ No newline at end of file diff --git a/Assets/DOTween/Editor/DOTweenEditor.XML b/Assets/DOTween/Editor/DOTweenEditor.XML deleted file mode 100644 index 690bfc4..0000000 --- a/Assets/DOTween/Editor/DOTweenEditor.XML +++ /dev/null @@ -1,144 +0,0 @@ - - - - DOTweenEditor - - - - - Contains compatibility methods taken from DemiEditor (for when DOTween is without it) - - - - - Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account - - - - - Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account - - - - - Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account - - - - - Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account - - - - - 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. - Note that this works by calling Rewind on all tweens, so it will work correctly - only if you have a single tween type per object and it wasn't killed - If TRUE also kills any cached tween - - - - 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 - - - Full major version + first minor version (ex: 2018.1f) - - - Major version - - - First minor version (ex: in 2018.1 it would be 1) - - - - Checks that the given editor texture use the correct import settings, - and applies them if they're incorrect. - - - - - 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. - Otherwise, either returns NULL or automatically creates it before loading and returning it - (depending on the given parameters). - - Asset type - 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 utility function - - - - Full major version + first minor version (ex: 2018.1f) - - - Major version - - - First minor version (ex: in 2018.1 it would be 1) - - - diff --git a/Assets/DOTween/Editor/DOTweenEditor.XML.meta b/Assets/DOTween/Editor/DOTweenEditor.XML.meta deleted file mode 100644 index 2bf527a..0000000 --- a/Assets/DOTween/Editor/DOTweenEditor.XML.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 349bac8e4773b584b822ab83d3f94fef -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/DOTween/Editor/DOTweenEditor.dll b/Assets/DOTween/Editor/DOTweenEditor.dll deleted file mode 100644 index c2d87f9..0000000 Binary files a/Assets/DOTween/Editor/DOTweenEditor.dll and /dev/null differ diff --git a/Assets/DOTween/Editor/DOTweenEditor.dll.meta b/Assets/DOTween/Editor/DOTweenEditor.dll.meta deleted file mode 100644 index 965e01f..0000000 --- a/Assets/DOTween/Editor/DOTweenEditor.dll.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 59bd38d8dc734194ba1f04ea39b85aac \ No newline at end of file diff --git a/Assets/DOTween/Editor/Imgs/DOTweenIcon.png b/Assets/DOTween/Editor/Imgs/DOTweenIcon.png deleted file mode 100644 index d06fc7c..0000000 Binary files a/Assets/DOTween/Editor/Imgs/DOTweenIcon.png and /dev/null differ diff --git a/Assets/DOTween/Editor/Imgs/DOTweenIcon.png.meta b/Assets/DOTween/Editor/Imgs/DOTweenIcon.png.meta deleted file mode 100644 index 1d34582..0000000 --- a/Assets/DOTween/Editor/Imgs/DOTweenIcon.png.meta +++ /dev/null @@ -1,130 +0,0 @@ -fileFormatVersion: 2 -guid: 6b91addab459f7545ba3dcb7ca8ad792 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 13 - mipmaps: - mipMapMode: 0 - enableMipMap: 1 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - flipGreenChannel: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMipmapLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 - platformSettings: - - serializedVersion: 4 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - customData: - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spriteCustomMetadata: - entries: [] - nameFileIdTable: {} - mipmapLimitGroupName: - pSDRemoveMatte: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/DOTween/Editor/Imgs/DOTweenMiniIcon.png b/Assets/DOTween/Editor/Imgs/DOTweenMiniIcon.png deleted file mode 100644 index 7cd74c1..0000000 Binary files a/Assets/DOTween/Editor/Imgs/DOTweenMiniIcon.png and /dev/null differ diff --git a/Assets/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta b/Assets/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta deleted file mode 100644 index 920b453..0000000 --- a/Assets/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta +++ /dev/null @@ -1,130 +0,0 @@ -fileFormatVersion: 2 -guid: 0e5e0a6c3ba204c45903041a4f43808f -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 13 - mipmaps: - mipMapMode: 0 - enableMipMap: 1 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - flipGreenChannel: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMipmapLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 - platformSettings: - - serializedVersion: 4 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - customData: - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spriteCustomMetadata: - entries: [] - nameFileIdTable: {} - mipmapLimitGroupName: - pSDRemoveMatte: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/DOTween/Editor/Imgs/Footer.png b/Assets/DOTween/Editor/Imgs/Footer.png deleted file mode 100644 index e29d02f..0000000 Binary files a/Assets/DOTween/Editor/Imgs/Footer.png and /dev/null differ diff --git a/Assets/DOTween/Editor/Imgs/Footer.png.meta b/Assets/DOTween/Editor/Imgs/Footer.png.meta deleted file mode 100644 index 4eb3ac6..0000000 --- a/Assets/DOTween/Editor/Imgs/Footer.png.meta +++ /dev/null @@ -1,130 +0,0 @@ -fileFormatVersion: 2 -guid: b675ca42bf0d83042b8553477e6b20b4 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 13 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - flipGreenChannel: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMipmapLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 2 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 - platformSettings: - - serializedVersion: 4 - buildTarget: DefaultTexturePlatform - maxTextureSize: 256 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - customData: - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spriteCustomMetadata: - entries: [] - nameFileIdTable: {} - mipmapLimitGroupName: - pSDRemoveMatte: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/DOTween/Editor/Imgs/Footer_dark.png b/Assets/DOTween/Editor/Imgs/Footer_dark.png deleted file mode 100644 index e48db5e..0000000 Binary files a/Assets/DOTween/Editor/Imgs/Footer_dark.png and /dev/null differ diff --git a/Assets/DOTween/Editor/Imgs/Footer_dark.png.meta b/Assets/DOTween/Editor/Imgs/Footer_dark.png.meta deleted file mode 100644 index 308d024..0000000 --- a/Assets/DOTween/Editor/Imgs/Footer_dark.png.meta +++ /dev/null @@ -1,130 +0,0 @@ -fileFormatVersion: 2 -guid: b744529a14333ff4aaf428f3586eb9d2 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 13 - mipmaps: - mipMapMode: 0 - enableMipMap: 1 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - flipGreenChannel: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMipmapLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 - platformSettings: - - serializedVersion: 4 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - customData: - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spriteCustomMetadata: - entries: [] - nameFileIdTable: {} - mipmapLimitGroupName: - pSDRemoveMatte: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/DOTween/Editor/Imgs/Header.jpg b/Assets/DOTween/Editor/Imgs/Header.jpg deleted file mode 100644 index 4d710d7..0000000 Binary files a/Assets/DOTween/Editor/Imgs/Header.jpg and /dev/null differ diff --git a/Assets/DOTween/Editor/Imgs/Header.jpg.meta b/Assets/DOTween/Editor/Imgs/Header.jpg.meta deleted file mode 100644 index 6976723..0000000 --- a/Assets/DOTween/Editor/Imgs/Header.jpg.meta +++ /dev/null @@ -1,130 +0,0 @@ -fileFormatVersion: 2 -guid: 6eb35f05a57f0f84eaf9071b132cfdd7 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 13 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - flipGreenChannel: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMipmapLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 2 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 - platformSettings: - - serializedVersion: 4 - buildTarget: DefaultTexturePlatform - maxTextureSize: 512 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 4 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - customData: - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spriteCustomMetadata: - entries: [] - nameFileIdTable: {} - mipmapLimitGroupName: - pSDRemoveMatte: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/DOTween/Modules/DOTweenModuleAudio.cs b/Assets/DOTween/Modules/DOTweenModuleAudio.cs deleted file mode 100644 index d958ae0..0000000 --- a/Assets/DOTween/Modules/DOTweenModuleAudio.cs +++ /dev/null @@ -1,198 +0,0 @@ -// 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; -using UnityEngine.Audio; // Required for AudioMixer - -#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 - - #region AudioMixer - - /// 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 - - #endregion - } -} -#endif diff --git a/Assets/DOTween/Modules/DOTweenModuleAudio.cs.meta b/Assets/DOTween/Modules/DOTweenModuleAudio.cs.meta deleted file mode 100644 index 518bdc7..0000000 --- a/Assets/DOTween/Modules/DOTweenModuleAudio.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 4702391d9345d634681a92c11ea2ca42 \ No newline at end of file diff --git a/Assets/DOTween/Modules/DOTweenModuleEPOOutline.cs b/Assets/DOTween/Modules/DOTweenModuleEPOOutline.cs deleted file mode 100644 index 2ab3775..0000000 --- a/Assets/DOTween/Modules/DOTweenModuleEPOOutline.cs +++ /dev/null @@ -1,146 +0,0 @@ -using UnityEngine; - -#if false || EPO_DOTWEEN // MODULE_MARKER - -using EPOOutline; -using DG.Tweening.Plugins.Options; -using DG.Tweening; -using DG.Tweening.Core; - -namespace DG.Tweening -{ - public static class DOTweenModuleEPOOutline - { - public static int DOKill(this SerializedPass target, bool complete) - { - return DOTween.Kill(target, complete); - } - - public static TweenerCore DOFloat(this SerializedPass target, string propertyName, float endValue, float duration) - { - var tweener = DOTween.To(() => target.GetFloat(propertyName), x => target.SetFloat(propertyName, x), endValue, duration); - tweener.SetOptions(true).SetTarget(target); - return tweener; - } - - public static TweenerCore DOFade(this SerializedPass target, string propertyName, float endValue, float duration) - { - var tweener = DOTween.ToAlpha(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration); - tweener.SetOptions(true).SetTarget(target); - return tweener; - } - - public static TweenerCore DOColor(this SerializedPass target, string propertyName, Color endValue, float duration) - { - var tweener = DOTween.To(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration); - tweener.SetOptions(false).SetTarget(target); - return tweener; - } - - public static TweenerCore DOVector(this SerializedPass target, string propertyName, Vector4 endValue, float duration) - { - var tweener = DOTween.To(() => target.GetVector(propertyName), x => target.SetVector(propertyName, x), endValue, duration); - tweener.SetOptions(false).SetTarget(target); - return tweener; - } - - public static TweenerCore DOFloat(this SerializedPass target, int propertyId, float endValue, float duration) - { - var tweener = DOTween.To(() => target.GetFloat(propertyId), x => target.SetFloat(propertyId, x), endValue, duration); - tweener.SetOptions(true).SetTarget(target); - return tweener; - } - - public static TweenerCore DOFade(this SerializedPass target, int propertyId, float endValue, float duration) - { - var tweener = DOTween.ToAlpha(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration); - tweener.SetOptions(true).SetTarget(target); - return tweener; - } - - public static TweenerCore DOColor(this SerializedPass target, int propertyId, Color endValue, float duration) - { - var tweener = DOTween.To(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration); - tweener.SetOptions(false).SetTarget(target); - return tweener; - } - - public static TweenerCore DOVector(this SerializedPass target, int propertyId, Vector4 endValue, float duration) - { - var tweener = DOTween.To(() => target.GetVector(propertyId), x => target.SetVector(propertyId, x), endValue, duration); - tweener.SetOptions(false).SetTarget(target); - return tweener; - } - - public static int DOKill(this Outlinable.OutlineProperties target, bool complete = false) - { - return DOTween.Kill(target, complete); - } - - public static int DOKill(this Outliner target, bool complete = false) - { - return DOTween.Kill(target, complete); - } - - /// - /// Controls the alpha (transparency) of the outline - /// - public static TweenerCore DOFade(this Outlinable.OutlineProperties target, float endValue, float duration) - { - var tweener = DOTween.ToAlpha(() => target.Color, x => target.Color = x, endValue, duration); - tweener.SetOptions(true).SetTarget(target); - return tweener; - } - - /// - /// Controls the color of the outline - /// - public static TweenerCore DOColor(this Outlinable.OutlineProperties target, Color endValue, float duration) - { - var tweener = DOTween.To(() => target.Color, x => target.Color = x, endValue, duration); - tweener.SetOptions(false).SetTarget(target); - return tweener; - } - - /// - /// Controls the amount of blur applied to the outline - /// - public static TweenerCore DOBlurShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false) - { - var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration); - tweener.SetOptions(snapping).SetTarget(target); - return tweener; - } - - /// - /// Controls the amount of blur applied to the outline - /// - public static TweenerCore DOBlurShift(this Outliner target, float endValue, float duration, bool snapping = false) - { - var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration); - tweener.SetOptions(snapping).SetTarget(target); - return tweener; - } - - /// - /// Controls the amount of dilation applied to the outline - /// - public static TweenerCore DODilateShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false) - { - var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration); - tweener.SetOptions(snapping).SetTarget(target); - return tweener; - } - - /// - /// Controls the amount of dilation applied to the outline - /// - public static TweenerCore DODilateShift(this Outliner target, float endValue, float duration, bool snapping = false) - { - var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration); - tweener.SetOptions(snapping).SetTarget(target); - return tweener; - } - } -} -#endif diff --git a/Assets/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta b/Assets/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta deleted file mode 100644 index ff5fa1d..0000000 --- a/Assets/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 216b83d657d96d44487cfbf4354eb0b7 \ No newline at end of file diff --git a/Assets/DOTween/Modules/DOTweenModulePhysics.cs b/Assets/DOTween/Modules/DOTweenModulePhysics.cs deleted file mode 100644 index 08b0700..0000000 --- a/Assets/DOTween/Modules/DOTweenModulePhysics.cs +++ /dev/null @@ -1,216 +0,0 @@ -// 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), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) - /// 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), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) - /// 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/Assets/DOTween/Modules/DOTweenModulePhysics.cs.meta b/Assets/DOTween/Modules/DOTweenModulePhysics.cs.meta deleted file mode 100644 index 377a5af..0000000 --- a/Assets/DOTween/Modules/DOTweenModulePhysics.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 7fbfab74b660bc54aa30fcfedeffea6d \ No newline at end of file diff --git a/Assets/DOTween/Modules/DOTweenModulePhysics2D.cs b/Assets/DOTween/Modules/DOTweenModulePhysics2D.cs deleted file mode 100644 index 8ce2b56..0000000 --- a/Assets/DOTween/Modules/DOTweenModulePhysics2D.cs +++ /dev/null @@ -1,193 +0,0 @@ -// 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; -using DG.Tweening.Plugins.Core.PathCore; -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; - } - - /// Tweens a Rigidbody2D's position through the given path waypoints, using the chosen path algorithm. - /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations. - /// NOTE: to tween a Rigidbody2D 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), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) - /// 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 Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear, - PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null - ) - { - if (resolution < 1) resolution = 1; - int len = path.Length; - Vector3[] path3D = new Vector3[len]; - for (int i = 0; i < len; ++i) path3D[i] = path[i]; - TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), new Path(pathType, path3D, resolution, gizmoColor), duration) - .SetTarget(target).SetUpdate(UpdateType.Fixed); - - t.plugOptions.isRigidbody2D = true; - t.plugOptions.mode = pathMode; - return t; - } - /// Tweens a Rigidbody2D's localPosition through the given path waypoints, using the chosen path algorithm. - /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations - /// NOTE: to tween a Rigidbody2D 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), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) - /// 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 Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear, - PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null - ) - { - if (resolution < 1) resolution = 1; - int len = path.Length; - Vector3[] path3D = new Vector3[len]; - for (int i = 0; i < len; ++i) path3D[i] = path[i]; - 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, path3D, resolution, gizmoColor), duration) - .SetTarget(target).SetUpdate(UpdateType.Fixed); - - t.plugOptions.isRigidbody2D = 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 Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D - ) - { - TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), path, duration) - .SetTarget(target); - - t.plugOptions.isRigidbody2D = true; - t.plugOptions.mode = pathMode; - return t; - } - internal static TweenerCore DOLocalPath( - this Rigidbody2D 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.isRigidbody2D = true; - t.plugOptions.mode = pathMode; - t.plugOptions.useLocalPosition = true; - return t; - } - - #endregion - - #endregion - - #endregion - } -} -#endif diff --git a/Assets/DOTween/Modules/DOTweenModulePhysics2D.cs.meta b/Assets/DOTween/Modules/DOTweenModulePhysics2D.cs.meta deleted file mode 100644 index 1d51b6e..0000000 --- a/Assets/DOTween/Modules/DOTweenModulePhysics2D.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: eea29b5b6af205e4ba70a656a6fbd3df \ No newline at end of file diff --git a/Assets/DOTween/Modules/DOTweenModuleSprite.cs b/Assets/DOTween/Modules/DOTweenModuleSprite.cs deleted file mode 100644 index 72afb7b..0000000 --- a/Assets/DOTween/Modules/DOTweenModuleSprite.cs +++ /dev/null @@ -1,93 +0,0 @@ -// Author: Daniele Giardini - http://www.demigiant.com -// Created: 2018/07/13 - -#if true // 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/Assets/DOTween/Modules/DOTweenModuleSprite.cs.meta b/Assets/DOTween/Modules/DOTweenModuleSprite.cs.meta deleted file mode 100644 index 3b1de1b..0000000 --- a/Assets/DOTween/Modules/DOTweenModuleSprite.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: c4f6bf0d0071f80429b63a9ac8c664bb \ No newline at end of file diff --git a/Assets/DOTween/Modules/DOTweenModuleUI.cs b/Assets/DOTween/Modules/DOTweenModuleUI.cs deleted file mode 100644 index 2381f4c..0000000 --- a/Assets/DOTween/Modules/DOTweenModuleUI.cs +++ /dev/null @@ -1,662 +0,0 @@ -// Author: Daniele Giardini - http://www.demigiant.com -// Created: 2018/07/13 - -#if true // MODULE_MARKER - -using System; -using System.Globalization; -using UnityEngine; -using UnityEngine.UI; -using DG.Tweening.Core; -using DG.Tweening.Core.Enums; -using DG.Tweening.Plugins; -using DG.Tweening.Plugins.Options; -using Outline = UnityEngine.UI.Outline; -using Text = UnityEngine.UI.Text; - -#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 - /// Randomness mode - public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, float strength = 100, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full) - { - return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, true, fadeOut, randomnessMode) - .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 - /// Randomness mode - public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, Vector2 strength, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full) - { - return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, fadeOut, randomnessMode) - .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 text from one integer to another, with options for thousands separators - /// - /// The value to start from - /// The end value to reach - /// The duration of the tween - /// If TRUE (default) also adds thousands separators - /// The to use (InvariantCulture if NULL) - public static TweenerCore DOCounter( - this Text target, int fromValue, int endValue, float duration, bool addThousandsSeparator = true, CultureInfo culture = null - ){ - int v = fromValue; - CultureInfo cInfo = !addThousandsSeparator ? null : culture ?? CultureInfo.InvariantCulture; - TweenerCore t = DOTween.To(() => v, x => { - v = x; - target.text = addThousandsSeparator - ? v.ToString("N0", cInfo) - : v.ToString(); - }, 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 - - #region Shapes - - /// Tweens a RectTransform's anchoredPosition so that it draws a circle around the given center. - /// Also stores the RectTransform as the tween's target so it can be used for filtered operations. - /// IMPORTANT: SetFrom(value) requires a instead of a float, where the X property represents the "from degrees value" - /// Circle-center/pivot around which to rotate (in UI anchoredPosition coordinates) - /// The end value degrees to reach (to rotate counter-clockwise pass a negative value) - /// The duration of the tween - /// If TRUE the coordinates will be considered as relative to the target's current anchoredPosition - /// If TRUE the tween will smoothly snap all values to integers - public static TweenerCore DOShapeCircle( - this RectTransform target, Vector2 center, float endValueDegrees, float duration, bool relativeCenter = false, bool snapping = false - ) - { - TweenerCore t = DOTween.To( - CirclePlugin.Get(), () => target.anchoredPosition, x => target.anchoredPosition = x, center, duration - ); - t.SetOptions(endValueDegrees, relativeCenter, snapping).SetTarget(target); - return t; - } - - #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/Assets/DOTween/Modules/DOTweenModuleUI.cs.meta b/Assets/DOTween/Modules/DOTweenModuleUI.cs.meta deleted file mode 100644 index 495b519..0000000 --- a/Assets/DOTween/Modules/DOTweenModuleUI.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: a7655e50a1228954492ba06913483c38 \ No newline at end of file diff --git a/Assets/DOTween/Modules/DOTweenModuleUnityVersion.cs b/Assets/DOTween/Modules/DOTweenModuleUnityVersion.cs deleted file mode 100644 index 8f818ba..0000000 --- a/Assets/DOTween/Modules/DOTweenModuleUnityVersion.cs +++ /dev/null @@ -1,389 +0,0 @@ -// Author: Daniele Giardini - http://www.demigiant.com -// Created: 2018/07/13 - -using System; -using UnityEngine; -using DG.Tweening.Core; -using DG.Tweening.Plugins.Options; -//#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0) -//using Task = System.Threading.Tasks.Task; -//#endif - -#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 - { - #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 - - #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 time 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 - -#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 - - #region .NET 4.6 or Newer - -#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0) - - #region Async Instructions - - /// - /// Returns an async that waits until the tween is killed or complete. - /// It can be used inside an async operation. - /// Example usage:await myTween.WaitForCompletion(); - /// - public static async System.Threading.Tasks.Task AsyncWaitForCompletion(this Tween t) - { - if (!t.active) { - if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); - return; - } - while (t.active && !t.IsComplete()) await System.Threading.Tasks.Task.Yield(); - } - - /// - /// Returns an async that waits until the tween is killed or rewinded. - /// It can be used inside an async operation. - /// Example usage:await myTween.AsyncWaitForRewind(); - /// - public static async System.Threading.Tasks.Task AsyncWaitForRewind(this Tween t) - { - if (!t.active) { - if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); - return; - } - while (t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0)) await System.Threading.Tasks.Task.Yield(); - } - - /// - /// Returns an async that waits until the tween is killed. - /// It can be used inside an async operation. - /// Example usage:await myTween.AsyncWaitForKill(); - /// - public static async System.Threading.Tasks.Task AsyncWaitForKill(this Tween t) - { - if (!t.active) { - if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); - return; - } - while (t.active) await System.Threading.Tasks.Task.Yield(); - } - - /// - /// Returns an async that waits until the tween is killed or has gone through the given amount of loops. - /// It can be used inside an async operation. - /// Example usage:await myTween.AsyncWaitForElapsedLoops(); - /// - /// Elapsed loops to wait for - public static async System.Threading.Tasks.Task AsyncWaitForElapsedLoops(this Tween t, int elapsedLoops) - { - if (!t.active) { - if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); - return; - } - while (t.active && t.CompletedLoops() < elapsedLoops) await System.Threading.Tasks.Task.Yield(); - } - - /// - /// Returns an async 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 an async operation. - /// Example usage:await myTween.AsyncWaitForPosition(); - /// - /// Position (loops included, delays excluded) to wait for - public static async System.Threading.Tasks.Task AsyncWaitForPosition(this Tween t, float position) - { - if (!t.active) { - if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); - return; - } - while (t.active && t.position * (t.CompletedLoops() + 1) < position) await System.Threading.Tasks.Task.Yield(); - } - - /// - /// Returns an async that waits until the tween is killed. - /// It can be used inside an async operation. - /// Example usage:await myTween.AsyncWaitForKill(); - /// - public static async System.Threading.Tasks.Task AsyncWaitForStart(this Tween t) - { - if (!t.active) { - if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); - return; - } - while (t.active && !t.playedOnce) await System.Threading.Tasks.Task.Yield(); - } - - #endregion -#endif - - #endregion - - #endregion -#endif - } - - // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ - // ███ CLASSES █████████████████████████████████████████████████████████████████████████████████████████████████████████ - // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ - - 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; - } - } - } -} diff --git a/Assets/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta b/Assets/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta deleted file mode 100644 index 78d2f44..0000000 --- a/Assets/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: c30601d6122da714ea28a9d7b1f1370c \ No newline at end of file diff --git a/Assets/DOTween/Modules/DOTweenModuleUtils.cs b/Assets/DOTween/Modules/DOTweenModuleUtils.cs deleted file mode 100644 index 12a365d..0000000 --- a/Assets/DOTween/Modules/DOTweenModuleUtils.cs +++ /dev/null @@ -1,167 +0,0 @@ -// 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 = null; - bool rBodyFoundAndTweened = false; -#if true // PHYSICS_MARKER - if (tweenRigidbody) { - Rigidbody rBody = target.GetComponent(); - if (rBody != null) { - rBodyFoundAndTweened = true; - t = isLocal - ? rBody.DOLocalPath(path, duration, pathMode) - : rBody.DOPath(path, duration, pathMode); - } - } -#endif -#if true // PHYSICS2D_MARKER - if (!rBodyFoundAndTweened && tweenRigidbody) { - Rigidbody2D rBody2D = target.GetComponent(); - if (rBody2D != null) { - rBodyFoundAndTweened = true; - t = isLocal - ? rBody2D.DOLocalPath(path, duration, pathMode) - : rBody2D.DOPath(path, duration, pathMode); - } - } -#endif - if (!rBodyFoundAndTweened) { - t = isLocal - ? target.transform.DOLocalPath(path, duration, pathMode) - : target.transform.DOPath(path, duration, pathMode); - } - return t; - } - - #endregion - } - } -} diff --git a/Assets/DOTween/Modules/DOTweenModuleUtils.cs.meta b/Assets/DOTween/Modules/DOTweenModuleUtils.cs.meta deleted file mode 100644 index 94ca152..0000000 --- a/Assets/DOTween/Modules/DOTweenModuleUtils.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 1c73d7d121d6d754baf7637129fc5f53 \ No newline at end of file diff --git a/Assets/DOTween/readme.txt b/Assets/DOTween/readme.txt deleted file mode 100644 index 37ff7ef..0000000 --- a/Assets/DOTween/readme.txt +++ /dev/null @@ -1,29 +0,0 @@ -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/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. - - -// LINKS /////////////////////////////////////////////////////// - -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 > 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/Assets/DOTween/readme.txt.meta b/Assets/DOTween/readme.txt.meta deleted file mode 100644 index 83c40ab..0000000 --- a/Assets/DOTween/readme.txt.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: c2248aea0ebe1cf4b8f32453c9692fc5 -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/DOTween.meta b/Assets/Plugins.meta similarity index 77% rename from Assets/DOTween.meta rename to Assets/Plugins.meta index 107ab7e..a21e99c 100644 --- a/Assets/DOTween.meta +++ b/Assets/Plugins.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f67d47da94dd9314dbba5ea80434dff0 +guid: c5225a17ca9835b4294886632c25de01 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/DOTween/Editor.meta b/Assets/Plugins/PrimeTween.meta similarity index 77% rename from Assets/DOTween/Editor.meta rename to Assets/Plugins/PrimeTween.meta index 9eccd8c..1421330 100644 --- a/Assets/DOTween/Editor.meta +++ b/Assets/Plugins/PrimeTween.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c68793a92f3b1514faf4138d9d7cd066 +guid: da2e19a1c5f8b4e2ca7c1785ea338b2e folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Plugins/PrimeTween/PrimeTweenInstaller.asset b/Assets/Plugins/PrimeTween/PrimeTweenInstaller.asset new file mode 100644 index 0000000..e3d412e --- /dev/null +++ b/Assets/Plugins/PrimeTween/PrimeTweenInstaller.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 118450fad714b420684eb5f984268b5c, type: 3} + m_Name: PrimeTweenInstaller + m_EditorClassIdentifier: + demoScene: {fileID: 102900000, guid: 13170347bc506405f88d3a87bd0982b3, type: 3} + demoSceneUrp: {fileID: 102900000, guid: 15054139658a5445689224c71f805b10, type: 3} + demoScenePro: {fileID: 102900000, guid: e8086c8f95dba534ca9bf16d3ce9ef31, type: 3} + demoSceneProUrp: {fileID: 102900000, guid: 2992e8ebf85ed47489b777c4d27b9952, type: 3} + uninstallButtonColor: {r: 1, g: 0.23113209, b: 0.2762581, a: 1} diff --git a/Assets/Plugins/PrimeTween/PrimeTweenInstaller.asset.meta b/Assets/Plugins/PrimeTween/PrimeTweenInstaller.asset.meta new file mode 100644 index 0000000..0987fe9 --- /dev/null +++ b/Assets/Plugins/PrimeTween/PrimeTweenInstaller.asset.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: aafeeef745bb4406db1b2cd166853022 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 252960 + packageName: "PrimeTween \xB7 High-Performance Animations and Sequences" + packageVersion: 1.3.7 + assetPath: Assets/Plugins/PrimeTween/PrimeTweenInstaller.asset + uploadId: 860556 diff --git a/Assets/DOTween/Editor/Imgs.meta b/Assets/Plugins/PrimeTween/internal.meta similarity index 77% rename from Assets/DOTween/Editor/Imgs.meta rename to Assets/Plugins/PrimeTween/internal.meta index 9ccae7d..bd0e4c4 100644 --- a/Assets/DOTween/Editor/Imgs.meta +++ b/Assets/Plugins/PrimeTween/internal.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2833224d328674142b6e584bcfa6486b +guid: f164d11d6323e46b786f187ecd84eb1b folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Plugins/PrimeTween/internal/PrimeTween.Installer.asmdef b/Assets/Plugins/PrimeTween/internal/PrimeTween.Installer.asmdef new file mode 100644 index 0000000..4bc81f0 --- /dev/null +++ b/Assets/Plugins/PrimeTween/internal/PrimeTween.Installer.asmdef @@ -0,0 +1,29 @@ +{ + "name": "PrimeTween.Installer", + "rootNamespace": "", + "references": [ + "PrimeTween.Runtime" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [ + { + "name": "com.kyrylokuzyk.primetween", + "expression": "1.0.0", + "define": "PRIME_TWEEN_INSTALLED" + }, + { + "name": "com.kyrylokuzyk.primetween", + "expression": "[1.3.6-pro]", + "define": "PRIME_TWEEN_PRO" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Plugins/PrimeTween/internal/PrimeTween.Installer.asmdef.meta b/Assets/Plugins/PrimeTween/internal/PrimeTween.Installer.asmdef.meta new file mode 100644 index 0000000..f8314f4 --- /dev/null +++ b/Assets/Plugins/PrimeTween/internal/PrimeTween.Installer.asmdef.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 090d70c1ebac0421985bd70fa7f561ef +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 252960 + packageName: "PrimeTween \xB7 High-Performance Animations and Sequences" + packageVersion: 1.3.7 + assetPath: Assets/Plugins/PrimeTween/internal/PrimeTween.Installer.asmdef + uploadId: 860556 diff --git a/Assets/Plugins/PrimeTween/internal/PrimeTweenInstaller.cs b/Assets/Plugins/PrimeTween/internal/PrimeTweenInstaller.cs new file mode 100644 index 0000000..48c7f27 --- /dev/null +++ b/Assets/Plugins/PrimeTween/internal/PrimeTweenInstaller.cs @@ -0,0 +1,548 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Reflection.Emit; +using System.Text; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEditor.PackageManager; +using UnityEditor.SceneManagement; +using UnityEngine; +using UnityEngine.Assertions; +using UnityEngine.Rendering; +using static UnityEngine.GUILayout; +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("PrimeTween.Internal")] + +namespace PrimeTween { + internal class PrimeTweenInstaller : ScriptableObject { + [SerializeField] internal SceneAsset demoScene; + [SerializeField] internal SceneAsset demoSceneUrp; + [SerializeField] internal SceneAsset demoScenePro; + [SerializeField] internal SceneAsset demoSceneProUrp; + [SerializeField] internal Color uninstallButtonColor; + + [ContextMenu(nameof(ResetReviewRequest))] void ResetReviewRequest() => ReviewRequest.ResetReviewRequest(); + [ContextMenu(nameof(DebugReviewRequest))] void DebugReviewRequest() => ReviewRequest.DebugReviewRequest(); + } + + [CustomEditor(typeof(PrimeTweenInstaller), false)] + internal class InstallerInspector : Editor { + internal const string pluginName = "PrimeTween"; + internal const string pluginPackageId = "com.kyrylokuzyk.primetween"; + internal const string tgzPath = "Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween.tgz"; + internal const string newTgzPath = "Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween-" + version + ".tgz"; + const string documentationUrl = "https://github.com/KyryloKuzyk/PrimeTween"; + bool isInstalled; + bool hasNewTgz; + GUIStyle boldButtonStyle; + GUIStyle uninstallButtonStyle; + GUIStyle wordWrapLabelStyle; + + void OnEnable() { + isInstalled = CheckPluginInstalled(); + hasNewTgz = File.Exists(newTgzPath); + } + + /// Use Package Manager because Unity 2018 doesn't support version defines + static bool CheckPluginInstalled() { + var listRequest = Client.List(true); + while (!listRequest.IsCompleted) { + } + return listRequest.Result.Any(_ => _.name == pluginPackageId); + } + + public override void OnInspectorGUI() { + if (boldButtonStyle == null) { + boldButtonStyle = new GUIStyle(GUI.skin.button) { fontStyle = FontStyle.Bold }; + } + var installer = (PrimeTweenInstaller)target; + if (uninstallButtonStyle == null) { + uninstallButtonStyle = new GUIStyle(GUI.skin.button) { normal = { textColor = installer.uninstallButtonColor } }; + } + if (wordWrapLabelStyle == null) { + wordWrapLabelStyle = new GUIStyle(GUI.skin.label) { wordWrap = true, richText = true, margin = new RectOffset(4, 4, 8, 8) }; + } + EditorGUI.indentLevel = 5; + Space(8); + Label(pluginName, EditorStyles.boldLabel); + Space(4); + if (!isInstalled) { + if (Button("Install " + pluginName)) { + installPlugin(); + } + return; + } + if (hasNewTgz) { + if (Button($"Update to {version}", boldButtonStyle)) { + ReviewRequest.OnPackageUpdate(); + } + Space(8); + } + if (Button("Documentation", boldButtonStyle)) { + Application.OpenURL(documentationUrl); + } + + Space(8); + var rpAsset = GraphicsSettings. + #if UNITY_2019_3_OR_NEWER + defaultRenderPipeline; + #else + renderPipelineAsset; + #endif + bool isUrp = rpAsset != null && rpAsset.GetType().Name.Contains("Universal"); + if (Button("Open Demo", boldButtonStyle)) { + var demoScene = isUrp ? installer.demoSceneUrp : installer.demoScene; + if (demoScene == null) { + Debug.LogError("Please re-import the plugin from Asset Store and import the 'Demo' folder.\n"); + return; + } + string path = AssetDatabase.GetAssetPath(demoScene); + EditorSceneManager.OpenScene(path); + } + #if PRIME_TWEEN_PRO + if (Button("Open Demo (Pro)", boldButtonStyle)) { + var demoScene = isUrp ? installer.demoSceneProUrp : installer.demoScenePro; + if (demoScene == null) { + Debug.LogError("Please re-import the plugin from Asset Store and import the 'Demo' folder.\n"); + return; + } + string path = AssetDatabase.GetAssetPath(demoScene); + EditorSceneManager.OpenScene(path); + } + #endif + #if UNITY_2019_4_OR_NEWER + if (Button("Import Basic Examples")) { + EditorUtility.DisplayDialog(pluginName, $"Please select the '{pluginName}' package in 'Package Manager', then press the 'Samples/Import' button at the bottom of the plugin's description.", "Ok"); + UnityEditor.PackageManager.UI.Window.Open(pluginPackageId); + } + #endif + if (Button("Support")) { + Application.OpenURL("https://github.com/KyryloKuzyk/PrimeTween#support"); + } + + Space(8); + if (Button("Uninstall", uninstallButtonStyle)) { + Client.Remove(pluginPackageId); + isInstalled = false; + var msg = $"Please remove the folder manually to uninstall {pluginName} completely: 'Assets/Plugins/{pluginName}'"; + EditorUtility.DisplayDialog(pluginName, msg, "Ok"); + Debug.Log(msg); + } + + if (EditorPrefs.GetBool(InsertCallbackBug.showInsertCallbackBugUi, false)) { + Space(24); + Label("Updating from PrimeTween [1.1.10 - 1.1.22]", EditorStyles.boldLabel); + Label("The behaviour of 'Sequence.ChainCallback()' and 'InsertCallback()' was fixed in PrimeTween 1.2.0 so the code written with older versions may work differently in some cases.", wordWrapLabelStyle); + if (Button("Find potential issues")) { + InsertCallbackBug.Find(); + } + BeginHorizontal(); + if (Button("More info")) { + Application.OpenURL(InsertCallbackBug.moreInfoUrl); + } + if (Button("Download version 1.1.22")) { + Application.OpenURL("https://github.com/KyryloKuzyk/PrimeTween/blob/545dcc52769d52841e282c772e98c8984bfeb243/Benchmarks/Packages/com.kyrylokuzyk.primetween.tgz"); + } + EndHorizontal(); + } + + Space(24); + Label("Enjoying PrimeTween?", EditorStyles.boldLabel); + Label("Consider leaving an honest review and starring PrimeTween on GitHub!\n\n" + + "Honest reviews make PrimeTween better and help other developers discover it.", wordWrapLabelStyle); + if (Button("Leave review!", GUI.skin.button)) { + ReviewRequest.DisableReviewRequest(); + ReviewRequest.OpenReviewsURL(); + } + } + + static void installPlugin() { + if (File.Exists(newTgzPath)) { + MoveAndRenameTgzArchive(); + } + + ReviewRequest.OnBeforeInstall(); + var path = $"file:../{tgzPath}"; + var addRequest = Client.Add(path); + while (!addRequest.IsCompleted) { + } + if (addRequest.Status == StatusCode.Success) { + Debug.Log($"{pluginName} installed successfully.\n" + + $"Offline documentation is located at Packages/{pluginName}/Documentation.md.\n" + + $"Online documentation: {documentationUrl}\n"); + } else { + Debug.LogError($"Please re-import the plugin from the Asset Store and check that the file exists: [{path}].\n\n{addRequest.Error?.message}\n"); + } + } + + internal static void MoveAndRenameTgzArchive() { + Assert.IsTrue(File.Exists(newTgzPath)); + Assert.IsTrue(File.Exists(newTgzPath + ".meta")); + File.Delete(tgzPath); + File.Delete(tgzPath + ".meta"); + File.Move(newTgzPath, tgzPath); + File.Move(newTgzPath + ".meta", tgzPath + ".meta"); + RevertTgzMeta(); + } + + static void RevertTgzMeta() { + const string path = tgzPath + ".meta"; + Assert.IsTrue(File.Exists(path), path); + File.WriteAllText(path, @"fileFormatVersion: 2 +guid: cdd0c4b9889044d73bc958a922ada300 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +"); + } + + [InitializeOnLoadMethod] + static void InitOnLoad() { + AssetDatabase.importPackageCompleted += name => { + if (name.Contains(pluginName)) { + if (CheckPluginInstalled()) { + ReviewRequest.OnPackageUpdate(); + } else { + var installer = AssetDatabase.LoadAssetAtPath("Assets/Plugins/PrimeTween/PrimeTweenInstaller.asset"); + EditorUtility.FocusProjectWindow(); // this is important to show the installer object in the Project window + Selection.activeObject = installer; + EditorGUIUtility.PingObject(installer); + EditorApplication.update += InstallAndUnsubscribeFromUpdate; + void InstallAndUnsubscribeFromUpdate() { + EditorApplication.update -= InstallAndUnsubscribeFromUpdate; + installPlugin(); + } + } + } + }; + } + + internal const string version = "1.3.8"; + } + + internal static class FixedUpdateParameterMigration { + internal static string[] FindLocalScriptGuids() { + var listRequest = Client.List(true); + while (!listRequest.IsCompleted) { + } + Assert.AreEqual(StatusCode.Success, listRequest.Status); + string[] folders = listRequest.Result + .Where(x => x.source == PackageSource.Embedded || x.source == PackageSource.Local) + .Where(x => x.name != InstallerInspector.pluginPackageId) + .Select(x => x.assetPath) + .Append("Assets") + .ToArray(); + return AssetDatabase.FindAssets("t:Script", folders); + } + + internal static bool Process(string[] scripts, bool? fixAutomatically = null) { + var logSb = new StringBuilder(); + var fileSb = new StringBuilder(); + foreach (string guid in scripts) + { + string path = AssetDatabase.GUIDToAssetPath(guid); + var textAsset = AssetDatabase.LoadAssetAtPath(path); + string text = textAsset.text; + if (!Regex.IsMatch(text, @"using PrimeTween\s*;")) { + continue; + } + var parameterMatches = Regex.Matches(text, @"useFixedUpdate\s*:"); + if (parameterMatches.Count > 0) { + if (!fixAutomatically.HasValue) { + return true; + } + logSb.Clear(); + if (fixAutomatically.Value) { + fileSb.Clear(); + fileSb.Append(text); + for (int i = parameterMatches.Count - 1; i >= 0; i--) { + var paramMatch = parameterMatches[i]; + fileSb.Remove(paramMatch.Index, paramMatch.Length); + fileSb.Insert(paramMatch.Index, "updateType:"); + } + File.WriteAllText(path, fileSb.ToString()); + logSb.Append($"PrimeTween automatically renamed ({parameterMatches.Count}) occurrences of 'useFixedUpdate' to 'updateType' in file '{textAsset.name}.cs':\n"); + } else { + logSb.Append($"PrimeTween: please rename ({parameterMatches.Count}) occurrences of 'useFixedUpdate' to 'updateType' in file '{textAsset.name}.cs':\n"); + } + var lineMatches = Regex.Matches(text, @"(?m)^.*useFixedUpdate\s*:.*$", RegexOptions.Multiline); + foreach (Match match in lineMatches) { + logSb.Append($"{match.Value.Trim().Replace("useFixedUpdate", "useFixedUpdate")}\n"); + } + Debug.unityLogger.Log(fixAutomatically.Value ? LogType.Warning : LogType.Error, logSb.ToString()); + } + } + // no need to call AssetDatabase.Refresh() here because MoveAndRenameTgzArchive() already does that + return false; + } + } + + internal static class ReviewRequest { + const string version = InstallerInspector.version; + const string canAskKey = "PrimeTween.canAskForReview"; + const string versionKey = "PrimeTween.version"; + + internal static void OnPackageUpdate() { + log("OnPackageUpdate"); + if (!File.Exists(InstallerInspector.newTgzPath)) { + Debug.LogError($"The installation archive is missing: '{InstallerInspector.newTgzPath}'. Please re-import PrimeTween from Asset Store."); + return; + } + bool shouldAskForReview = true; + var scriptGuids = FixedUpdateParameterMigration.FindLocalScriptGuids(); + if (FixedUpdateParameterMigration.Process(scriptGuids)) { + shouldAskForReview = false; + const string msg = "'bool useFixedUpdate' parameter was changed to 'UpdateType updateType' in version 1.3.0, which will cause breaking changes in your current project.\n" + + "PrimeTween can fix the breaking changes automatically, or you can fix them manually after the update.\n"; + Debug.LogWarning($"PrimeTween: the {msg}"); + int response = EditorUtility.DisplayDialogComplex($"{InstallerInspector.pluginName} {version}", + $"The {msg}", + "Fix automatically", + "Cancel", + "Fix manually"); + string cancelMessage = $"PrimeTween: update to {version} was cancelled. You can trigger update manually from 'Assets/Plugins/PrimeTween/PrimeTweenInstaller'."; + if (response == 1) { + Debug.LogWarning(cancelMessage); + return; + } + if (!EditorUtility.DisplayDialog($"{InstallerInspector.pluginName} {version}", "Please back up your project before proceeding.", "OK", "Cancel")) { + Debug.LogWarning(cancelMessage); + return; + } + bool fixAutomatically = response == 0; + FixedUpdateParameterMigration.Process(scriptGuids, fixAutomatically); + } + InstallerInspector.MoveAndRenameTgzArchive(); + if (UNITY_2018) { + var removeRequest = Client.Remove(InstallerInspector.pluginPackageId); + while (!removeRequest.IsCompleted) { + } + string path = $"file:../{InstallerInspector.tgzPath}"; + Client.Add(path); + } else { + EditorApplication.ExecuteMenuItem("Assets/Refresh"); // AssetDatabase.Refresh() refreshes the project only partially + } + + string prevVersion = savedVersion; + if (savedVersion == version) { + log($"same version {version}"); + return; + } + savedVersion = version; + + if (InsertCallbackBug.IsUpdatingFromVersionWithBug(prevVersion)) { + InsertCallbackBug.Find(); + EditorPrefs.SetBool(InsertCallbackBug.showInsertCallbackBugUi, true); + shouldAskForReview = false; + } else { + EditorPrefs.SetBool(InsertCallbackBug.showInsertCallbackBugUi, false); + } + log($"updated from version {prevVersion} to {version}, {nameof(shouldAskForReview)}: {shouldAskForReview}"); + if (shouldAskForReview) { + TryAskForReview(); + } + } + + static bool UNITY_2018 { + get { + #if UNITY_2018 + return true; + #else + return false; + #endif + } + } + + static void TryAskForReview() { + if (!EditorPrefs.GetBool(canAskKey, true)) { + log("can't ask"); + return; + } + DisableReviewRequest(); + var response = EditorUtility.DisplayDialogComplex("Enjoying PrimeTween?", + "Would you mind to leave an honest review on Asset store? Honest reviews make PrimeTween better and help other developers discover it.", + "Sure, leave a review!", + "Never ask again", + ""); + if (response == 0) { + OpenReviewsURL(); + } + } + + internal static void OnBeforeInstall() { + log($"OnBeforeInstall {version}"); + if (string.IsNullOrEmpty(savedVersion)) { + savedVersion = version; + } + } + + static string savedVersion { + get => EditorPrefs.GetString(versionKey); + set => EditorPrefs.SetString(versionKey, value); + } + + internal static void DisableReviewRequest() => EditorPrefs.SetBool(canAskKey, false); + internal static void OpenReviewsURL() => Application.OpenURL("https://assetstore.unity.com/packages/slug/252960#reviews"); + + internal static void ResetReviewRequest() { + Debug.Log(nameof(ResetReviewRequest)); + EditorPrefs.DeleteKey(versionKey); + EditorPrefs.DeleteKey(canAskKey); + } + + internal static void DebugReviewRequest() { + Debug.Log(nameof(DebugReviewRequest)); + savedVersion = "1.1.22"; + EditorPrefs.SetBool(canAskKey, false); + // TryAskForReview(); + } + + [System.Diagnostics.Conditional("_")] + static void log(string msg) { + Debug.Log($"ReviewRequest: {msg}"); + } + } + + internal static class InsertCallbackBug { + internal const string moreInfoUrl = "https://github.com/KyryloKuzyk/PrimeTween/discussions/112"; + internal const string showInsertCallbackBugUi = "PrimeTween.showInsertCallbackBugUi"; + static Dictionary OpCodeDict; + static MethodInfo[] methodsWithBug; + static MethodInfo[] groupMethods; + + internal static bool IsUpdatingFromVersionWithBug(string prevVersionString) { + if (Version.TryParse(prevVersionString, out var prevVersion) + && new Version(1, 1, 10) <= prevVersion + && prevVersion <= new Version(1, 1, 22) + ) { + return true; + } + return false; + } + + internal static void Find() { + OpCodeDict = typeof(OpCodes) + .GetFields(BindingFlags.Public | BindingFlags.Static) + .Select(x => (OpCode)x.GetValue(null)) + .ToDictionary(x => x.Value, x => x); + #if PRIME_TWEEN_INSTALLED + methodsWithBug = typeof(Sequence).GetMethods(BindingFlags.Public | BindingFlags.Instance) + .Where(methodInfo => methodInfo.Name == nameof(Sequence.ChainCallback) || methodInfo.Name == nameof(Sequence.InsertCallback)) + .Select(methodInfo => methodInfo.IsGenericMethod ? methodInfo.GetGenericMethodDefinition() : methodInfo) + .ToArray(); + Assert.AreEqual(4, methodsWithBug.Length); + groupMethods = typeof(Sequence).GetMethods(BindingFlags.Public | BindingFlags.Instance) + .Where(methodInfo => methodInfo.Name == nameof(Sequence.Group)) + .ToArray(); + #endif + Assert.AreEqual(2, groupMethods.Length); + + string methodAssemblyName = methodsWithBug[0].Module.Assembly.FullName; + const BindingFlags findAll = BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static; + int numPotentialIssues = AppDomain.CurrentDomain.GetAssemblies() + .Where(assembly => assembly.GetReferencedAssemblies().Any(dependency => dependency.FullName == methodAssemblyName)) + .Where(assembly => !assembly.GetName().Name.StartsWith("PrimeTween.", StringComparison.Ordinal)) + .SelectMany(assembly => assembly.GetTypes()) + .SelectMany(type => type.GetMethods(findAll).Cast().Union(type.GetConstructors(findAll))) + .Count(method => FindInMethod(method)); + if (numPotentialIssues == 0) { + Debug.Log($"PrimeTween updated to version {InstallerInspector.version}: no potential issues found in ChainCallback() and InsertCallback() usages.\n" + + $"More info: {moreInfoUrl}\n"); + } + + int updateResponse = EditorUtility.DisplayDialogComplex($"{InstallerInspector.pluginName} {InstallerInspector.version}", + "PrimeTween 1.2.0 fixed a bug in ChainCallback() and InsertCallback() methods.\n" + + "This fix may introduce breaking changes in the existing projects. Please see the Console output for more details.", + "More info", + "Close", + ""); + if (updateResponse == 0) { + Application.OpenURL(moreInfoUrl); + } + } + + /// https://stackoverflow.com/a/33034906/1951038 + static bool FindInMethod(MethodBase method) { + byte[] il = method.GetMethodBody()?.GetILAsByteArray(); + if (il == null) { + return false; + } + bool bugFound = false; + using (var br = new BinaryReader(new MemoryStream(il))) { + while (br.BaseStream.Position < br.BaseStream.Length) { + byte firstByte = br.ReadByte(); + short opCodeValue = firstByte == 0xFE ? BitConverter.ToInt16(new[] { br.ReadByte(), firstByte }, 0) : firstByte; + OpCode opCode = OpCodeDict[opCodeValue]; + switch (opCode.OperandType) { + case OperandType.ShortInlineBrTarget: + case OperandType.ShortInlineVar: + case OperandType.ShortInlineI: + br.ReadByte(); + break; + case OperandType.InlineVar: + br.ReadInt16(); + break; + case OperandType.InlineField: + case OperandType.InlineType: + case OperandType.ShortInlineR: + case OperandType.InlineString: + case OperandType.InlineSig: + case OperandType.InlineI: + case OperandType.InlineBrTarget: + br.ReadInt32(); + break; + case OperandType.InlineI8: + case OperandType.InlineR: + br.ReadInt64(); + break; + case OperandType.InlineSwitch: + var size = (int)br.ReadUInt32(); + br.ReadBytes(size * 4); + break; + case OperandType.InlineTok: + br.ReadUInt32(); + break; + case OperandType.InlineMethod: + int token = (int)br.ReadUInt32(); + if (method.Module.ResolveMethod(token) is MethodInfo resolvedMethod) { + if (bugFound) { + if (groupMethods.Contains(resolvedMethod)) { + Debug.LogError($"PrimeTween updated to version {InstallerInspector.version}: potential breaking change found in the '{method.DeclaringType}.{method.Name}()' method.\n" + + "Please double-check the behavior if Group() is called immediately after the ChainCallback() or InsertCallback() and apply the fix manually if necessary.\n" + + "Or use ChainCallbackObsolete/InsertCallbackObsolete() instead to preserve the old incorrect behavior.\n" + + $"More info: {moreInfoUrl}\n"); + return true; + } + } else { + bugFound = isMethodWithBug(resolvedMethod); + } + } + break; + case OperandType.InlineNone: + break; + default: + throw new Exception(); + } + } + } + return false; + } + + static bool isMethodWithBug(MethodInfo method) { + foreach (var methodWithBug in methodsWithBug) { + if (methodWithBug.IsGenericMethodDefinition && method.IsGenericMethod) { + if (methodWithBug == method.GetGenericMethodDefinition()) { + return true; + } + } else if (methodWithBug == method) { + return true; + } + } + return false; + } + } +} diff --git a/Assets/Plugins/PrimeTween/internal/PrimeTweenInstaller.cs.meta b/Assets/Plugins/PrimeTween/internal/PrimeTweenInstaller.cs.meta new file mode 100644 index 0000000..7b878a7 --- /dev/null +++ b/Assets/Plugins/PrimeTween/internal/PrimeTweenInstaller.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 118450fad714b420684eb5f984268b5c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 252960 + packageName: "PrimeTween \xB7 High-Performance Animations and Sequences" + packageVersion: 1.3.7 + assetPath: Assets/Plugins/PrimeTween/internal/PrimeTweenInstaller.cs + uploadId: 860556 diff --git a/Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween.tgz b/Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween.tgz new file mode 100644 index 0000000..9278ac0 Binary files /dev/null and b/Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween.tgz differ diff --git a/Assets/DOTween/Modules.meta b/Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween.tgz.meta similarity index 67% rename from Assets/DOTween/Modules.meta rename to Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween.tgz.meta index 3df8528..254cb2d 100644 --- a/Assets/DOTween/Modules.meta +++ b/Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween.tgz.meta @@ -1,6 +1,5 @@ fileFormatVersion: 2 -guid: 4238dd9a40574e74b8edf32491eb0a91 -folderAsset: yes +guid: cdd0c4b9889044d73bc958a922ada300 DefaultImporter: externalObjects: {} userData: diff --git a/Assets/Resources/Example/Platformer/Characters/Enemies/Bee/Bee.prefab b/Assets/Resources_moved/Example/Platformer/Bee.prefab similarity index 78% rename from Assets/Resources/Example/Platformer/Characters/Enemies/Bee/Bee.prefab rename to Assets/Resources_moved/Example/Platformer/Bee.prefab index c719228..4a8eb7a 100644 --- a/Assets/Resources/Example/Platformer/Characters/Enemies/Bee/Bee.prefab +++ b/Assets/Resources_moved/Example/Platformer/Bee.prefab @@ -1,5 +1,125 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &3289371692724125705 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5066566369128400178} + - component: {fileID: 8836731213023353337} + - component: {fileID: 3524195282899996530} + - component: {fileID: 6475761234177318450} + m_Layer: 12 + m_Name: Radar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5066566369128400178 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3289371692724125705} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4741199656111979734} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8836731213023353337 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3289371692724125705} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 582294c360404f6d952d9e28bde1fbea, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Code.Example.Platformer.Entity.Enemies.BeeRadar + bee: {fileID: 8386846360287835849} +--- !u!61 &3524195282899996530 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3289371692724125705} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 0.64, y: 0.64} + newSize: {x: 0.64, y: 0.64} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 1.5, y: 1.5} + m_EdgeRadius: 0 +--- !u!50 &6475761234177318450 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3289371692724125705} + m_BodyType: 1 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 0.1024 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 4 --- !u!1 &3801642601722797476 GameObject: m_ObjectHideFlags: 0 @@ -14,8 +134,6 @@ GameObject: - component: {fileID: 8927136534498308671} - component: {fileID: 5680405559112544362} - component: {fileID: 8386846360287835849} - - component: {fileID: 7940216146645726591} - - component: {fileID: 5514160892776806411} m_Layer: 11 m_Name: Bee m_TagString: Untagged @@ -35,7 +153,8 @@ Transform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 5066566369128400178} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!212 &4182593557770740918 @@ -151,7 +270,7 @@ Rigidbody2D: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3801642601722797476} - m_BodyType: 0 + m_BodyType: 1 m_Simulated: 0 m_UseFullKinematicContacts: 0 m_UseAutoMass: 0 @@ -208,63 +327,8 @@ MonoBehaviour: animator: {fileID: 5680405559112544362} spriteRenderer: {fileID: 4182593557770740918} groundPoint: {x: 0, y: 0} - partolPoints: [] ---- !u!114 &7940216146645726591 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3801642601722797476} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 582294c360404f6d952d9e28bde1fbea, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::Code.Example.Platformer.Entity.Enemies.BeeRadar - bee: {fileID: 8386846360287835849} ---- !u!61 &5514160892776806411 -BoxCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3801642601722797476} - m_Enabled: 1 - serializedVersion: 3 - m_Density: 1 - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_ForceSendLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_ForceReceiveLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_ContactCaptureLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_CallbackLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_IsTrigger: 1 - m_UsedByEffector: 0 - m_CompositeOperation: 0 - m_CompositeOrder: 0 - m_Offset: {x: 0, y: 0} - m_SpriteTilingProperty: - border: {x: 0, y: 0, z: 0, w: 0} - pivot: {x: 0.5, y: 0.5} - oldSize: {x: 0.64, y: 0.64} - newSize: {x: 0.64, y: 0.64} - adaptiveTilingThreshold: 0.5 - drawMode: 0 - adaptiveTiling: 0 - m_AutoTiling: 0 - m_Size: {x: 1.5, y: 1.5} - m_EdgeRadius: 0 + partolPoints: + - {fileID: 0} + - {fileID: 0} + onPatrol: 1 + _currentTarget: {fileID: 0} diff --git a/Assets/Resources/Example/Platformer/Characters/Enemies/Bee/Bee.prefab.meta b/Assets/Resources_moved/Example/Platformer/Bee.prefab.meta similarity index 100% rename from Assets/Resources/Example/Platformer/Characters/Enemies/Bee/Bee.prefab.meta rename to Assets/Resources_moved/Example/Platformer/Bee.prefab.meta diff --git a/Assets/Resources/Example/Platformer/Characters/Enemies/Boar/Boar.prefab b/Assets/Resources_moved/Example/Platformer/Boar.prefab similarity index 100% rename from Assets/Resources/Example/Platformer/Characters/Enemies/Boar/Boar.prefab rename to Assets/Resources_moved/Example/Platformer/Boar.prefab diff --git a/Assets/Resources/Example/Platformer/Characters/Enemies/Boar/Boar.prefab.meta b/Assets/Resources_moved/Example/Platformer/Boar.prefab.meta similarity index 100% rename from Assets/Resources/Example/Platformer/Characters/Enemies/Boar/Boar.prefab.meta rename to Assets/Resources_moved/Example/Platformer/Boar.prefab.meta diff --git a/Assets/Resources_moved/Example/Platformer/Platformer.unity b/Assets/Resources_moved/Example/Platformer/Platformer.unity index 5576c88..5290a95 100644 --- a/Assets/Resources_moved/Example/Platformer/Platformer.unity +++ b/Assets/Resources_moved/Example/Platformer/Platformer.unity @@ -176,6 +176,37 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 0aa23aea61d74467889be39a550c9922, type: 3} m_Name: m_EditorClassIdentifier: Assembly-CSharp::Code.Example.Platformer.PlatformerSceneInstaller +--- !u!1 &97537770 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 97537771} + m_Layer: 0 + m_Name: 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &97537771 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 97537770} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.804, y: 0.558, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &494311809 GameObject: m_ObjectHideFlags: 0 @@ -487,6 +518,37 @@ BoxCollider2D: m_AutoTiling: 0 m_Size: {x: 0.8, y: 0.67} m_EdgeRadius: 0 +--- !u!1 &1369074042 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1369074043} + m_Layer: 0 + m_Name: 1 (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1369074043 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1369074042} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.84, y: 0.463, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1464509735 GameObject: m_ObjectHideFlags: 0 @@ -975,6 +1037,18 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 8386846360287835849, guid: 0eb645a0c96b1c437bf0712d6b856b7c, type: 3} + propertyPath: 'partolPoints.Array.data[0]' + value: + objectReference: {fileID: 97537771} + - target: {fileID: 8386846360287835849, guid: 0eb645a0c96b1c437bf0712d6b856b7c, type: 3} + propertyPath: 'partolPoints.Array.data[1]' + value: + objectReference: {fileID: 1369074043} + - target: {fileID: 8927136534498308671, guid: 0eb645a0c96b1c437bf0712d6b856b7c, type: 3} + propertyPath: m_Simulated + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -1195,3 +1269,5 @@ SceneRoots: - {fileID: 4401792132824091566} - {fileID: 3495612028810159075} - {fileID: 7850265554012673606} + - {fileID: 97537771} + - {fileID: 1369074043} diff --git a/Assets/Resources/Example/Platformer/Characters/Enemies/Snail/Snail.prefab b/Assets/Resources_moved/Example/Platformer/Snail.prefab similarity index 100% rename from Assets/Resources/Example/Platformer/Characters/Enemies/Snail/Snail.prefab rename to Assets/Resources_moved/Example/Platformer/Snail.prefab diff --git a/Assets/Resources/Example/Platformer/Characters/Enemies/Snail/Snail.prefab.meta b/Assets/Resources_moved/Example/Platformer/Snail.prefab.meta similarity index 100% rename from Assets/Resources/Example/Platformer/Characters/Enemies/Snail/Snail.prefab.meta rename to Assets/Resources_moved/Example/Platformer/Snail.prefab.meta diff --git a/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs b/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs index 076d311..58ba814 100644 --- a/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs +++ b/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs @@ -1,8 +1,8 @@ #pragma warning disable CS0105 using Code.Example.Race.Racer; -using Code.Infrastructure.Configs; using Code.Infrastructure.Camera; +using Code.Infrastructure.Configs; using Code.Infrastructure.Audio; using Code.Infrastructure.Camera; using Code.Infrastructure.UI; @@ -28,10 +28,10 @@ using Code.Infrastructure.Input; _multipleConfigReferences.Add(typeof(Code.Example.Race.Racer.RacerSettingsConfig), systemConfigsReferences.RacerSettings); - _multipleConfigReferences.Add(typeof(Code.Infrastructure.Configs.LayerMasksConfigConfig), systemConfigsReferences.LayerMasksConfig); - _multipleConfigReferences.Add(typeof(Code.Infrastructure.Camera.CameraSettingsConfig), systemConfigsReferences.CameraSettings); + _multipleConfigReferences.Add(typeof(Code.Infrastructure.Configs.LayerMasksConfigConfig), systemConfigsReferences.LayerMasksConfig); + _singleConfigReferences.Add(typeof(Code.Infrastructure.Audio.AudioSourcePrefabConfig), systemConfigsReferences.AudioSourcePrefab); _singleConfigReferences.Add(typeof(Code.Infrastructure.Camera.GameCameraConfig), systemConfigsReferences.GameCamera); diff --git a/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs b/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs index f871764..6fc3b50 100644 --- a/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs +++ b/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs @@ -1,8 +1,8 @@ #pragma warning disable CS0105 using Code.Example.Race.Racer; -using Code.Infrastructure.Configs; using Code.Infrastructure.Camera; +using Code.Infrastructure.Configs; using Code.Infrastructure.Audio; using Code.Infrastructure.Camera; using Code.Infrastructure.UI; @@ -21,8 +21,8 @@ using Code.Infrastructure.Input; public partial class SystemConfigsReferences { public string RacerSettings; -public string LayerMasksConfig; public string CameraSettings; +public string LayerMasksConfig; public AssetReference AudioSourcePrefab; public AssetReference GameCamera; public AssetReference CanvasSettings; diff --git a/Packages/manifest.json b/Packages/manifest.json index 5fafff3..27faed7 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -3,6 +3,7 @@ "com.annulusgames.unity-codegen": "https://github.com/AnnulusGames/UnityCodeGen.git?path=/Assets/UnityCodeGen", "com.cysharp.unitask": "https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask", "com.gustavopsantos.reflex": "https://github.com/gustavopsantos/reflex.git?path=/Assets/Reflex/#14.1.0", + "com.kyrylokuzyk.primetween": "file:../Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween.tgz", "com.unity.2d.sprite": "1.0.0", "com.unity.addressables": "2.8.0", "com.unity.ai.navigation": "2.0.9", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 49744e1..b8610d7 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -21,6 +21,12 @@ "dependencies": {}, "hash": "a855f992ab888d2e92027dc38b4db3ab42e5f679" }, + "com.kyrylokuzyk.primetween": { + "version": "file:../Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween.tgz", + "depth": 0, + "source": "local-tarball", + "dependencies": {} + }, "com.unity.2d.animation": { "version": "13.0.4", "depth": 1, diff --git a/ProjectSettings/Physics2DSettings.asset b/ProjectSettings/Physics2DSettings.asset index df831dc..47ac4ab 100644 --- a/ProjectSettings/Physics2DSettings.asset +++ b/ProjectSettings/Physics2DSettings.asset @@ -50,8 +50,8 @@ Physics2DSettings: m_QueriesHitTriggers: 1 m_QueriesStartInColliders: 1 m_CallbacksOnDisable: 1 - m_ReuseCollisionCallbacks: 0 + m_ReuseCollisionCallbacks: 1 m_AutoSyncTransforms: 0 m_GizmoOptions: 10 - m_LayerCollisionMatrix: 000000000000000000000000000000000000000000000000000000000000000000000000000c000000020000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + m_LayerCollisionMatrix: 000000000000000000000000000000000000000000000000000000000000000000000000000c000000120000000200000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 m_PhysicsLowLevelSettings: {fileID: 0} diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index e4e69f2..1f87c3a 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -836,24 +836,24 @@ PlayerSettings: webWasm2023: 0 webEnableSubmoduleStrippingCompatibility: 0 scriptingDefineSymbols: - Android: DOTWEEN - EmbeddedLinux: DOTWEEN - GameCoreScarlett: DOTWEEN - GameCoreXboxOne: DOTWEEN - Kepler: DOTWEEN - LinuxHeadlessSimulation: DOTWEEN - Nintendo Switch: DOTWEEN - Nintendo Switch 2: DOTWEEN - PS4: DOTWEEN - PS5: DOTWEEN - QNX: DOTWEEN - Standalone: DOTWEEN - VisionOS: DOTWEEN - WebGL: DOTWEEN - Windows Store Apps: DOTWEEN - XboxOne: DOTWEEN - iPhone: DOTWEEN - tvOS: DOTWEEN + Android: + EmbeddedLinux: + GameCoreScarlett: + GameCoreXboxOne: + Kepler: + LinuxHeadlessSimulation: + Nintendo Switch: + Nintendo Switch 2: + PS4: + PS5: + QNX: + Standalone: + VisionOS: + WebGL: + Windows Store Apps: + XboxOne: + iPhone: + tvOS: additionalCompilerArguments: {} platformArchitecture: {} scriptingBackend: diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 8bb526c..9547a7f 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -17,7 +17,7 @@ TagManager: - PlatformerGround - PlatformerPlayer - PlatformerEntity - - + - PlatformerLogic - - -