diff --git a/Assets/Plugins.meta b/Assets/Plugins.meta
new file mode 100644
index 0000000..66ffbbd
--- /dev/null
+++ b/Assets/Plugins.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 32f60ffe094f95b41a3c90f5d305a626
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/Demigiant.meta b/Assets/Plugins/Demigiant.meta
new file mode 100644
index 0000000..0738b2f
--- /dev/null
+++ b/Assets/Plugins/Demigiant.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 90910ef5fa011b842ae4dcf878867855
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/Demigiant/DOTween.meta b/Assets/Plugins/Demigiant/DOTween.meta
new file mode 100644
index 0000000..cbebc39
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween.meta
@@ -0,0 +1,21 @@
+fileFormatVersion: 2
+guid: a50bd9a009c8dfc4ebd88cc8101225a7
+labels:
+- Tween
+- Tweening
+- Animation
+- HOTween
+- Paths
+- iTween
+- DFTween
+- LeanTween
+- Ease
+- Easing
+- Shake
+- Punch
+- 2DToolkit
+- TextMeshPro
+- Text
+folderAsset: yes
+DefaultImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/DOTween.XML b/Assets/Plugins/Demigiant/DOTween/DOTween.XML
new file mode 100644
index 0000000..46e79c4
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/DOTween.XML
@@ -0,0 +1,3089 @@
+
+
+
+ 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
+
+
+
+
+ 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
+
+
+ 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 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/Plugins/Demigiant/DOTween/DOTween.XML.meta b/Assets/Plugins/Demigiant/DOTween/DOTween.XML.meta
new file mode 100644
index 0000000..7a866b5
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/DOTween.XML.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 34192c5e0d14aee43a0e86cc4823268a
+TextScriptImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/DOTween.dll b/Assets/Plugins/Demigiant/DOTween/DOTween.dll
new file mode 100644
index 0000000..57112d3
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/DOTween.dll differ
diff --git a/Assets/Plugins/Demigiant/DOTween/DOTween.dll.mdb b/Assets/Plugins/Demigiant/DOTween/DOTween.dll.mdb
new file mode 100644
index 0000000..62da0a3
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/DOTween.dll.mdb differ
diff --git a/Assets/Plugins/Demigiant/DOTween/DOTween.dll.mdb.meta b/Assets/Plugins/Demigiant/DOTween/DOTween.dll.mdb.meta
new file mode 100644
index 0000000..f64a22a
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/DOTween.dll.mdb.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 4f007001a22b3d24dae350342c4d19c8
+DefaultImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/DOTween.dll.meta b/Assets/Plugins/Demigiant/DOTween/DOTween.dll.meta
new file mode 100644
index 0000000..482dbb8
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/DOTween.dll.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: a811bde74b26b53498b4f6d872b09b6d
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ platformData:
+ Any:
+ enabled: 1
+ settings: {}
+ Editor:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor.meta b/Assets/Plugins/Demigiant/DOTween/Editor.meta
new file mode 100644
index 0000000..532edfb
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: b27f58ae5d5c33a4bb2d1f4f34bd036d
+folderAsset: yes
+DefaultImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML
new file mode 100644
index 0000000..690bfc4
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML
@@ -0,0 +1,144 @@
+
+
+
+ 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/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta
new file mode 100644
index 0000000..7cec113
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 2e2c6224d345d9249acfa6e8ef40bb2d
+TextScriptImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll
new file mode 100644
index 0000000..4911a86
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll differ
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb
new file mode 100644
index 0000000..4cf61e0
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb differ
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb.meta b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb.meta
new file mode 100644
index 0000000..bf461f3
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 8f46310a8b0a8f04a92993c37c713243
+DefaultImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta
new file mode 100644
index 0000000..53590f3
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: 45d5034162d6cf04dbe46da84fc7d074
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ platformData:
+ Any:
+ enabled: 0
+ settings: {}
+ Editor:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML
new file mode 100644
index 0000000..02c3c95
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML
@@ -0,0 +1,14 @@
+
+
+
+ DOTweenUpgradeManager
+
+
+
+
+ This class and its whole library are deleted the first time DOTween's setup is run after an upgrade (or after a new install).
+ NOTE: DidReloadScripts doesn't work on first install so it's useless, InitializeOnLoad is the only way
+
+
+
+
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML.meta b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML.meta
new file mode 100644
index 0000000..a7f43a3
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 3df9fdaadcb4c394e826a4d8d20bb952
+TextScriptImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll
new file mode 100644
index 0000000..ec5dd4c
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll differ
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb
new file mode 100644
index 0000000..5e9da06
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb differ
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb.meta b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb.meta
new file mode 100644
index 0000000..eea9e84
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.mdb.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: cee7901aa47968a46af805b3a7632bcc
+DefaultImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.meta b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.meta
new file mode 100644
index 0000000..c6717e9
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: 2bf936a5d80799e4e88ec9270fea75a4
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ platformData:
+ Any:
+ enabled: 0
+ settings: {}
+ Editor:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs.meta
new file mode 100644
index 0000000..a81ba5f
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 0034ebae0c2a9344e897db1160d71b6d
+folderAsset: yes
+DefaultImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png
new file mode 100644
index 0000000..d06fc7c
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png differ
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta
new file mode 100644
index 0000000..61c3cce
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta
@@ -0,0 +1,47 @@
+fileFormatVersion: 2
+guid: 8da095e39e9b4df488dfd436f81116d6
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ linearTexture: 1
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: -3
+ maxTextureSize: 128
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 1
+ textureType: 2
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png
new file mode 100644
index 0000000..7cd74c1
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png differ
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta
new file mode 100644
index 0000000..c343a61
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta
@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: 61521df2e071645488ba3d05e49289ae
+timeCreated: 1602317874
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png
new file mode 100644
index 0000000..e29d02f
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png differ
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png.meta
new file mode 100644
index 0000000..7ca1911
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png.meta
@@ -0,0 +1,47 @@
+fileFormatVersion: 2
+guid: 7051dba417b3d53409f2918f1ea4938d
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ linearTexture: 1
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: -3
+ maxTextureSize: 256
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 1
+ textureType: 2
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png
new file mode 100644
index 0000000..e48db5e
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png differ
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta
new file mode 100644
index 0000000..f12a1a7
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta
@@ -0,0 +1,47 @@
+fileFormatVersion: 2
+guid: 519694efe2bb2914788b151fbd8c01f4
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg
new file mode 100644
index 0000000..4d710d7
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg differ
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta
new file mode 100644
index 0000000..26e4255
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta
@@ -0,0 +1,47 @@
+fileFormatVersion: 2
+guid: 78a59ca99f8987941adb61f9e14a06a7
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ linearTexture: 1
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: -3
+ maxTextureSize: 512
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 1
+ textureType: 2
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules.meta b/Assets/Plugins/Demigiant/DOTween/Modules.meta
new file mode 100644
index 0000000..24cd2ac
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 143604b8bad857d47a6f7cc7a533e2dc
+folderAsset: yes
+DefaultImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs
new file mode 100644
index 0000000..d958ae0
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs
@@ -0,0 +1,198 @@
+// 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/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta
new file mode 100644
index 0000000..50aa010
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b766d08851589514b97afb23c6f30a70
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs
new file mode 100644
index 0000000..2ab3775
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs
@@ -0,0 +1,146 @@
+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/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta
new file mode 100644
index 0000000..4b8991f
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: e944529dcaee98f4e9498d80e541d93e
+timeCreated: 1602593330
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs
new file mode 100644
index 0000000..08b0700
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs
@@ -0,0 +1,216 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2018/07/13
+
+#if true // MODULE_MARKER
+using System;
+using DG.Tweening.Core;
+using DG.Tweening.Core.Enums;
+using DG.Tweening.Plugins;
+using DG.Tweening.Plugins.Core.PathCore;
+using DG.Tweening.Plugins.Options;
+using UnityEngine;
+
+#pragma warning disable 1591
+namespace DG.Tweening
+{
+ public static class DOTweenModulePhysics
+ {
+ #region Shortcuts
+
+ #region Rigidbody
+
+ /// Tweens a Rigidbody's position to the given value.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMove(this Rigidbody target, Vector3 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody's X position to the given value.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMoveX(this Rigidbody target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue, 0, 0), duration);
+ t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody's Y position to the given value.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMoveY(this Rigidbody target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, endValue, 0), duration);
+ t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody's Z position to the given value.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMoveZ(this Rigidbody target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue), duration);
+ t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody's rotation to the given value.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// Rotation mode
+ public static TweenerCore DORotate(this Rigidbody target, Vector3 endValue, float duration, RotateMode mode = RotateMode.Fast)
+ {
+ TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration);
+ t.SetTarget(target);
+ t.plugOptions.rotateMode = mode;
+ return t;
+ }
+
+ /// Tweens a Rigidbody's rotation so that it will look towards the given position.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The position to look atThe duration of the tween
+ /// Eventual axis constraint for the rotation
+ /// The vector that defines in which direction up is (default: Vector3.up)
+ public static TweenerCore DOLookAt(this Rigidbody target, Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3? up = null)
+ {
+ TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, towards, duration)
+ .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetLookAt);
+ t.plugOptions.axisConstraint = axisConstraint;
+ t.plugOptions.up = (up == null) ? Vector3.up : (Vector3)up;
+ return t;
+ }
+
+ #region Special
+
+ /// Tweens a Rigidbody's position to the given value, while also applying a jump effect along the Y axis.
+ /// Returns a Sequence instead of a Tweener.
+ /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reach
+ /// Power of the jump (the max height of the jump is represented by this plus the final Y offset)
+ /// Total number of jumps
+ /// The duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static Sequence DOJump(this Rigidbody target, Vector3 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
+ {
+ if (numJumps < 1) numJumps = 1;
+ float startPosY = 0;
+ float offsetY = -1;
+ bool offsetYSet = false;
+ Sequence s = DOTween.Sequence();
+ Tween yTween = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, jumpPower, 0), duration / (numJumps * 2))
+ .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
+ .SetLoops(numJumps * 2, LoopType.Yoyo)
+ .OnStart(() => startPosY = target.position.y);
+ s.Append(DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue.x, 0, 0), duration)
+ .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
+ ).Join(DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue.z), duration)
+ .SetOptions(AxisConstraint.Z, snapping).SetEase(Ease.Linear)
+ ).Join(yTween)
+ .SetTarget(target).SetEase(DOTween.defaultEaseType);
+ yTween.OnUpdate(() => {
+ if (!offsetYSet) {
+ offsetYSet = true;
+ offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
+ }
+ Vector3 pos = target.position;
+ pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad);
+ target.MovePosition(pos);
+ });
+ return s;
+ }
+
+ /// Tweens a Rigidbody's position through the given path waypoints, using the chosen path algorithm.
+ /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations.
+ /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened.
+ /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
+ /// If you plan to publish there you should use a regular transform.DOPath.
+ /// The waypoints to go through
+ /// The duration of the tween
+ /// The type of path: Linear (straight path), 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/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta
new file mode 100644
index 0000000..0ce0d75
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dae9aa560b4242648a3affa2bfabc365
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs
new file mode 100644
index 0000000..8ce2b56
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs
@@ -0,0 +1,193 @@
+// 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/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta
new file mode 100644
index 0000000..ca9ed29
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 230fe34542e175245ba74b4659dae700
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs
new file mode 100644
index 0000000..72afb7b
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs
@@ -0,0 +1,93 @@
+// 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/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta
new file mode 100644
index 0000000..a0c67c4
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 188918ab119d93148aa0de59ccf5286b
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs
new file mode 100644
index 0000000..2381f4c
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs
@@ -0,0 +1,662 @@
+// 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/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta
new file mode 100644
index 0000000..60d55ef
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a060394c03331a64392db53a10e7f2d1
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs
new file mode 100644
index 0000000..8f818ba
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs
@@ -0,0 +1,389 @@
+// 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/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta
new file mode 100644
index 0000000..290189f
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 63c02322328255542995bd02b47b0457
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs
new file mode 100644
index 0000000..12a365d
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs
@@ -0,0 +1,167 @@
+// 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/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta
new file mode 100644
index 0000000..ab62186
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7bcaf917d9cf5b84090421a5a2abe42e
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/readme.txt b/Assets/Plugins/Demigiant/DOTween/readme.txt
new file mode 100644
index 0000000..37ff7ef
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/readme.txt
@@ -0,0 +1,29 @@
+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/Plugins/Demigiant/DOTween/readme.txt.meta b/Assets/Plugins/Demigiant/DOTween/readme.txt.meta
new file mode 100644
index 0000000..3799165
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/readme.txt.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: fccfc62abf2eb0a4db614853430894fd
+TextScriptImporter:
+ userData:
diff --git a/Assets/Scenes.meta b/Assets/Scenes.meta
new file mode 100644
index 0000000..71bec8c
--- /dev/null
+++ b/Assets/Scenes.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e0331a1e15e803043b4edebe816db818
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity
new file mode 100644
index 0000000..9421266
--- /dev/null
+++ b/Assets/Scenes/SampleScene.unity
@@ -0,0 +1,208 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 3
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 0
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 0
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 500
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 2
+ m_PVRDenoiserTypeDirect: 0
+ m_PVRDenoiserTypeIndirect: 0
+ m_PVRDenoiserTypeAO: 0
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 0
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &519420028
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 519420032}
+ - component: {fileID: 519420031}
+ - component: {fileID: 519420029}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!81 &519420029
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 519420028}
+ m_Enabled: 1
+--- !u!20 &519420031
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 519420028}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 2
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 1
+ orthographic size: 5
+ m_Depth: -1
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 0
+ m_HDR: 1
+ m_AllowMSAA: 0
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 0
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &519420032
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 519420028}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -10}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/Assets/Scenes/SampleScene.unity.meta b/Assets/Scenes/SampleScene.unity.meta
new file mode 100644
index 0000000..c1e3c88
--- /dev/null
+++ b/Assets/Scenes/SampleScene.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 2cda990e2423bbf4892e6590ba056729
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/common b/Assets/common
new file mode 160000
index 0000000..4ce38f4
--- /dev/null
+++ b/Assets/common
@@ -0,0 +1 @@
+Subproject commit 4ce38f4a0b74075f82f3f657fc5b22dfb122af7b
diff --git a/Assets/common.meta b/Assets/common.meta
new file mode 100644
index 0000000..813ca57
--- /dev/null
+++ b/Assets/common.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 747328e201db6a94598ef5676b88d32e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/role.meta b/Assets/role.meta
new file mode 100644
index 0000000..77db682
--- /dev/null
+++ b/Assets/role.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b5314d08e33a3ff4cb314fe6d01e1f1c
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/role/enemy.meta b/Assets/role/enemy.meta
new file mode 100644
index 0000000..ef72cd9
--- /dev/null
+++ b/Assets/role/enemy.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dc482554de9794847a2672d0e7d82260
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/role/res.meta b/Assets/role/res.meta
new file mode 100644
index 0000000..7081842
--- /dev/null
+++ b/Assets/role/res.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a169e099f2ddc37458ad964546928a77
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/role/turret.meta b/Assets/role/turret.meta
new file mode 100644
index 0000000..9b0c599
--- /dev/null
+++ b/Assets/role/turret.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 86f282f3fbcf9bb45ad4c9cae5247aae
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/manifest.json b/Packages/manifest.json
new file mode 100644
index 0000000..fd14273
--- /dev/null
+++ b/Packages/manifest.json
@@ -0,0 +1,45 @@
+{
+ "dependencies": {
+ "com.unity.collab-proxy": "2.5.1",
+ "com.unity.feature.2d": "2.0.1",
+ "com.unity.ide.rider": "3.0.31",
+ "com.unity.ide.visualstudio": "2.0.22",
+ "com.unity.ide.vscode": "1.2.5",
+ "com.unity.test-framework": "1.1.33",
+ "com.unity.textmeshpro": "3.0.6",
+ "com.unity.timeline": "1.6.5",
+ "com.unity.ugui": "1.0.0",
+ "com.unity.visualscripting": "1.9.4",
+ "com.unity.modules.ai": "1.0.0",
+ "com.unity.modules.androidjni": "1.0.0",
+ "com.unity.modules.animation": "1.0.0",
+ "com.unity.modules.assetbundle": "1.0.0",
+ "com.unity.modules.audio": "1.0.0",
+ "com.unity.modules.cloth": "1.0.0",
+ "com.unity.modules.director": "1.0.0",
+ "com.unity.modules.imageconversion": "1.0.0",
+ "com.unity.modules.imgui": "1.0.0",
+ "com.unity.modules.jsonserialize": "1.0.0",
+ "com.unity.modules.particlesystem": "1.0.0",
+ "com.unity.modules.physics": "1.0.0",
+ "com.unity.modules.physics2d": "1.0.0",
+ "com.unity.modules.screencapture": "1.0.0",
+ "com.unity.modules.terrain": "1.0.0",
+ "com.unity.modules.terrainphysics": "1.0.0",
+ "com.unity.modules.tilemap": "1.0.0",
+ "com.unity.modules.ui": "1.0.0",
+ "com.unity.modules.uielements": "1.0.0",
+ "com.unity.modules.umbra": "1.0.0",
+ "com.unity.modules.unityanalytics": "1.0.0",
+ "com.unity.modules.unitywebrequest": "1.0.0",
+ "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
+ "com.unity.modules.unitywebrequestaudio": "1.0.0",
+ "com.unity.modules.unitywebrequesttexture": "1.0.0",
+ "com.unity.modules.unitywebrequestwww": "1.0.0",
+ "com.unity.modules.vehicles": "1.0.0",
+ "com.unity.modules.video": "1.0.0",
+ "com.unity.modules.vr": "1.0.0",
+ "com.unity.modules.wind": "1.0.0",
+ "com.unity.modules.xr": "1.0.0"
+ }
+}
diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json
new file mode 100644
index 0000000..ec1e0f7
--- /dev/null
+++ b/Packages/packages-lock.json
@@ -0,0 +1,477 @@
+{
+ "dependencies": {
+ "com.unity.2d.animation": {
+ "version": "7.1.1",
+ "depth": 1,
+ "source": "registry",
+ "dependencies": {
+ "com.unity.2d.common": "6.0.7",
+ "com.unity.2d.sprite": "1.0.0",
+ "com.unity.modules.animation": "1.0.0",
+ "com.unity.modules.uielements": "1.0.0"
+ },
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.2d.aseprite": {
+ "version": "1.1.6",
+ "depth": 1,
+ "source": "registry",
+ "dependencies": {
+ "com.unity.2d.sprite": "1.0.0",
+ "com.unity.2d.common": "6.0.6",
+ "com.unity.mathematics": "1.2.6",
+ "com.unity.modules.animation": "1.0.0"
+ },
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.2d.common": {
+ "version": "6.0.7",
+ "depth": 2,
+ "source": "registry",
+ "dependencies": {
+ "com.unity.2d.sprite": "1.0.0",
+ "com.unity.mathematics": "1.1.0",
+ "com.unity.modules.uielements": "1.0.0",
+ "com.unity.burst": "1.5.1"
+ },
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.2d.path": {
+ "version": "5.0.2",
+ "depth": 2,
+ "source": "registry",
+ "dependencies": {},
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.2d.pixel-perfect": {
+ "version": "5.0.3",
+ "depth": 1,
+ "source": "registry",
+ "dependencies": {},
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.2d.psdimporter": {
+ "version": "6.0.9",
+ "depth": 1,
+ "source": "registry",
+ "dependencies": {
+ "com.unity.2d.animation": "7.1.0",
+ "com.unity.2d.common": "6.0.7",
+ "com.unity.2d.sprite": "1.0.0"
+ },
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.2d.sprite": {
+ "version": "1.0.0",
+ "depth": 1,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.2d.spriteshape": {
+ "version": "7.0.7",
+ "depth": 1,
+ "source": "registry",
+ "dependencies": {
+ "com.unity.mathematics": "1.1.0",
+ "com.unity.2d.common": "6.0.6",
+ "com.unity.2d.path": "5.0.2",
+ "com.unity.modules.physics2d": "1.0.0"
+ },
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.2d.tilemap": {
+ "version": "1.0.0",
+ "depth": 1,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.2d.tilemap.extras": {
+ "version": "2.2.7",
+ "depth": 1,
+ "source": "registry",
+ "dependencies": {
+ "com.unity.modules.tilemap": "1.0.0",
+ "com.unity.2d.tilemap": "1.0.0",
+ "com.unity.ugui": "1.0.0",
+ "com.unity.modules.jsonserialize": "1.0.0"
+ },
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.burst": {
+ "version": "1.8.17",
+ "depth": 3,
+ "source": "registry",
+ "dependencies": {
+ "com.unity.mathematics": "1.2.1",
+ "com.unity.modules.jsonserialize": "1.0.0"
+ },
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.collab-proxy": {
+ "version": "2.5.1",
+ "depth": 0,
+ "source": "registry",
+ "dependencies": {},
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.ext.nunit": {
+ "version": "1.0.6",
+ "depth": 1,
+ "source": "registry",
+ "dependencies": {},
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.feature.2d": {
+ "version": "2.0.1",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.2d.animation": "7.1.1",
+ "com.unity.2d.pixel-perfect": "5.0.3",
+ "com.unity.2d.psdimporter": "6.0.9",
+ "com.unity.2d.sprite": "1.0.0",
+ "com.unity.2d.spriteshape": "7.0.7",
+ "com.unity.2d.tilemap": "1.0.0",
+ "com.unity.2d.tilemap.extras": "2.2.7",
+ "com.unity.2d.aseprite": "1.1.6"
+ }
+ },
+ "com.unity.ide.rider": {
+ "version": "3.0.31",
+ "depth": 0,
+ "source": "registry",
+ "dependencies": {
+ "com.unity.ext.nunit": "1.0.6"
+ },
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.ide.visualstudio": {
+ "version": "2.0.22",
+ "depth": 0,
+ "source": "registry",
+ "dependencies": {
+ "com.unity.test-framework": "1.1.9"
+ },
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.ide.vscode": {
+ "version": "1.2.5",
+ "depth": 0,
+ "source": "registry",
+ "dependencies": {},
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.mathematics": {
+ "version": "1.2.6",
+ "depth": 2,
+ "source": "registry",
+ "dependencies": {},
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.test-framework": {
+ "version": "1.1.33",
+ "depth": 0,
+ "source": "registry",
+ "dependencies": {
+ "com.unity.ext.nunit": "1.0.6",
+ "com.unity.modules.imgui": "1.0.0",
+ "com.unity.modules.jsonserialize": "1.0.0"
+ },
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.textmeshpro": {
+ "version": "3.0.6",
+ "depth": 0,
+ "source": "registry",
+ "dependencies": {
+ "com.unity.ugui": "1.0.0"
+ },
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.timeline": {
+ "version": "1.6.5",
+ "depth": 0,
+ "source": "registry",
+ "dependencies": {
+ "com.unity.modules.director": "1.0.0",
+ "com.unity.modules.animation": "1.0.0",
+ "com.unity.modules.audio": "1.0.0",
+ "com.unity.modules.particlesystem": "1.0.0"
+ },
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.ugui": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.ui": "1.0.0",
+ "com.unity.modules.imgui": "1.0.0"
+ }
+ },
+ "com.unity.visualscripting": {
+ "version": "1.9.4",
+ "depth": 0,
+ "source": "registry",
+ "dependencies": {
+ "com.unity.ugui": "1.0.0",
+ "com.unity.modules.jsonserialize": "1.0.0"
+ },
+ "url": "https://packages.unity.cn"
+ },
+ "com.unity.modules.ai": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.modules.androidjni": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.modules.animation": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.modules.assetbundle": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.modules.audio": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.modules.cloth": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.physics": "1.0.0"
+ }
+ },
+ "com.unity.modules.director": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.audio": "1.0.0",
+ "com.unity.modules.animation": "1.0.0"
+ }
+ },
+ "com.unity.modules.imageconversion": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.modules.imgui": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.modules.jsonserialize": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.modules.particlesystem": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.modules.physics": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.modules.physics2d": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.modules.screencapture": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.imageconversion": "1.0.0"
+ }
+ },
+ "com.unity.modules.subsystems": {
+ "version": "1.0.0",
+ "depth": 1,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.jsonserialize": "1.0.0"
+ }
+ },
+ "com.unity.modules.terrain": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.modules.terrainphysics": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.physics": "1.0.0",
+ "com.unity.modules.terrain": "1.0.0"
+ }
+ },
+ "com.unity.modules.tilemap": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.physics2d": "1.0.0"
+ }
+ },
+ "com.unity.modules.ui": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.modules.uielements": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.ui": "1.0.0",
+ "com.unity.modules.imgui": "1.0.0",
+ "com.unity.modules.jsonserialize": "1.0.0",
+ "com.unity.modules.uielementsnative": "1.0.0"
+ }
+ },
+ "com.unity.modules.uielementsnative": {
+ "version": "1.0.0",
+ "depth": 1,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.ui": "1.0.0",
+ "com.unity.modules.imgui": "1.0.0",
+ "com.unity.modules.jsonserialize": "1.0.0"
+ }
+ },
+ "com.unity.modules.umbra": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.modules.unityanalytics": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.unitywebrequest": "1.0.0",
+ "com.unity.modules.jsonserialize": "1.0.0"
+ }
+ },
+ "com.unity.modules.unitywebrequest": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.modules.unitywebrequestassetbundle": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.assetbundle": "1.0.0",
+ "com.unity.modules.unitywebrequest": "1.0.0"
+ }
+ },
+ "com.unity.modules.unitywebrequestaudio": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.unitywebrequest": "1.0.0",
+ "com.unity.modules.audio": "1.0.0"
+ }
+ },
+ "com.unity.modules.unitywebrequesttexture": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.unitywebrequest": "1.0.0",
+ "com.unity.modules.imageconversion": "1.0.0"
+ }
+ },
+ "com.unity.modules.unitywebrequestwww": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.unitywebrequest": "1.0.0",
+ "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
+ "com.unity.modules.unitywebrequestaudio": "1.0.0",
+ "com.unity.modules.audio": "1.0.0",
+ "com.unity.modules.assetbundle": "1.0.0",
+ "com.unity.modules.imageconversion": "1.0.0"
+ }
+ },
+ "com.unity.modules.vehicles": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.physics": "1.0.0"
+ }
+ },
+ "com.unity.modules.video": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.audio": "1.0.0",
+ "com.unity.modules.ui": "1.0.0",
+ "com.unity.modules.unitywebrequest": "1.0.0"
+ }
+ },
+ "com.unity.modules.vr": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.jsonserialize": "1.0.0",
+ "com.unity.modules.physics": "1.0.0",
+ "com.unity.modules.xr": "1.0.0"
+ }
+ },
+ "com.unity.modules.wind": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
+ "com.unity.modules.xr": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.physics": "1.0.0",
+ "com.unity.modules.jsonserialize": "1.0.0",
+ "com.unity.modules.subsystems": "1.0.0"
+ }
+ }
+ }
+}
diff --git a/ProjectSettings/AudioManager.asset b/ProjectSettings/AudioManager.asset
new file mode 100644
index 0000000..27287fe
--- /dev/null
+++ b/ProjectSettings/AudioManager.asset
@@ -0,0 +1,19 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!11 &1
+AudioManager:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Volume: 1
+ Rolloff Scale: 1
+ Doppler Factor: 1
+ Default Speaker Mode: 2
+ m_SampleRate: 0
+ m_DSPBufferSize: 1024
+ m_VirtualVoiceCount: 512
+ m_RealVoiceCount: 32
+ m_SpatializerPlugin:
+ m_AmbisonicDecoderPlugin:
+ m_DisableAudio: 0
+ m_VirtualizeEffects: 1
+ m_RequestedDSPBufferSize: 0
diff --git a/ProjectSettings/AutoStreamingSettings.asset b/ProjectSettings/AutoStreamingSettings.asset
new file mode 100644
index 0000000..d3e071e
--- /dev/null
+++ b/ProjectSettings/AutoStreamingSettings.asset
@@ -0,0 +1,21 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1200 &1
+AutoStreamingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ mSearchMode: 15
+ mCustomSearchFile:
+ mTextureSearchString:
+ mMeshSearchString:
+ mTextures: []
+ mAudios: []
+ mMeshes: []
+ mScenes: []
+ mConfigCCD:
+ useCCD: 0
+ cosKey:
+ projectGuid:
+ bucketUuid:
+ bucketName:
+ badgeName:
diff --git a/ProjectSettings/ClusterInputManager.asset b/ProjectSettings/ClusterInputManager.asset
new file mode 100644
index 0000000..e7886b2
--- /dev/null
+++ b/ProjectSettings/ClusterInputManager.asset
@@ -0,0 +1,6 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!236 &1
+ClusterInputManager:
+ m_ObjectHideFlags: 0
+ m_Inputs: []
diff --git a/ProjectSettings/DynamicsManager.asset b/ProjectSettings/DynamicsManager.asset
new file mode 100644
index 0000000..72d1430
--- /dev/null
+++ b/ProjectSettings/DynamicsManager.asset
@@ -0,0 +1,37 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!55 &1
+PhysicsManager:
+ m_ObjectHideFlags: 0
+ serializedVersion: 13
+ m_Gravity: {x: 0, y: -9.81, z: 0}
+ m_DefaultMaterial: {fileID: 0}
+ m_BounceThreshold: 2
+ m_DefaultMaxDepenetrationVelocity: 10
+ m_SleepThreshold: 0.005
+ m_DefaultContactOffset: 0.01
+ m_DefaultSolverIterations: 6
+ m_DefaultSolverVelocityIterations: 1
+ m_QueriesHitBackfaces: 0
+ m_QueriesHitTriggers: 1
+ m_EnableAdaptiveForce: 0
+ m_ClothInterCollisionDistance: 0.1
+ m_ClothInterCollisionStiffness: 0.2
+ m_ContactsGeneration: 1
+ m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ m_AutoSimulation: 1
+ m_AutoSyncTransforms: 0
+ m_ReuseCollisionCallbacks: 1
+ m_ClothInterCollisionSettingsToggle: 0
+ m_ClothGravity: {x: 0, y: -9.81, z: 0}
+ m_ContactPairsMode: 0
+ m_BroadphaseType: 0
+ m_WorldBounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 250, y: 250, z: 250}
+ m_WorldSubdivisions: 8
+ m_FrictionType: 0
+ m_EnableEnhancedDeterminism: 0
+ m_EnableUnifiedHeightmaps: 1
+ m_SolverType: 0
+ m_DefaultMaxAngularSpeed: 50
diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset
new file mode 100644
index 0000000..82ab0f5
--- /dev/null
+++ b/ProjectSettings/EditorBuildSettings.asset
@@ -0,0 +1,11 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1045 &1
+EditorBuildSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Scenes:
+ - enabled: 1
+ path: Assets/Scenes/SampleScene.unity
+ guid: 2cda990e2423bbf4892e6590ba056729
+ m_configObjects: {}
diff --git a/ProjectSettings/EditorSettings.asset b/ProjectSettings/EditorSettings.asset
new file mode 100644
index 0000000..fa3ed49
--- /dev/null
+++ b/ProjectSettings/EditorSettings.asset
@@ -0,0 +1,40 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!159 &1
+EditorSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 11
+ m_SerializationMode: 2
+ m_LineEndingsForNewScripts: 0
+ m_DefaultBehaviorMode: 1
+ m_PrefabRegularEnvironment: {fileID: 0}
+ m_PrefabUIEnvironment: {fileID: 0}
+ m_SpritePackerMode: 4
+ m_SpritePackerPaddingPower: 1
+ m_EtcTextureCompressorBehavior: 1
+ m_EtcTextureFastCompressor: 1
+ m_EtcTextureNormalCompressor: 2
+ m_EtcTextureBestCompressor: 4
+ m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp
+ m_ProjectGenerationRootNamespace:
+ m_EnableTextureStreamingInEditMode: 1
+ m_EnableTextureStreamingInPlayMode: 1
+ m_AsyncShaderCompilation: 1
+ m_CachingShaderPreprocessor: 1
+ m_PrefabModeAllowAutoSave: 1
+ m_EnterPlayModeOptionsEnabled: 0
+ m_EnterPlayModeOptions: 3
+ m_GameObjectNamingDigits: 1
+ m_GameObjectNamingScheme: 0
+ m_AssetNamingUsesSpace: 1
+ m_UseLegacyProbeSampleCount: 0
+ m_SerializeInlineMappingsOnOneLine: 1
+ m_DisableCookiesInLightmapper: 1
+ m_AssetPipelineMode: 1
+ m_CacheServerMode: 0
+ m_CacheServerEndpoint:
+ m_CacheServerNamespacePrefix: default
+ m_CacheServerEnableDownload: 1
+ m_CacheServerEnableUpload: 1
+ m_CacheServerEnableAuth: 0
+ m_CacheServerEnableTls: 0
diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset
new file mode 100644
index 0000000..c165afb
--- /dev/null
+++ b/ProjectSettings/GraphicsSettings.asset
@@ -0,0 +1,64 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!30 &1
+GraphicsSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 13
+ m_Deferred:
+ m_Mode: 1
+ m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
+ m_DeferredReflections:
+ m_Mode: 1
+ m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}
+ m_ScreenSpaceShadows:
+ m_Mode: 1
+ m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
+ m_LegacyDeferred:
+ m_Mode: 1
+ m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
+ m_DepthNormals:
+ m_Mode: 1
+ m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
+ m_MotionVectors:
+ m_Mode: 1
+ m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
+ m_LightHalo:
+ m_Mode: 1
+ m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
+ m_LensFlare:
+ m_Mode: 1
+ m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
+ m_VideoShadersIncludeMode: 2
+ m_AlwaysIncludedShaders:
+ - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
+ - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
+ - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
+ - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
+ - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
+ - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
+ - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
+ m_PreloadedShaders: []
+ m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+ m_CustomRenderPipeline: {fileID: 0}
+ m_TransparencySortMode: 0
+ m_TransparencySortAxis: {x: 0, y: 0, z: 1}
+ m_DefaultRenderingPath: 1
+ m_DefaultMobileRenderingPath: 1
+ m_TierSettings: []
+ m_LightmapStripping: 0
+ m_FogStripping: 0
+ m_InstancingStripping: 0
+ m_LightmapKeepPlain: 1
+ m_LightmapKeepDirCombined: 1
+ m_LightmapKeepDynamicPlain: 1
+ m_LightmapKeepDynamicDirCombined: 1
+ m_LightmapKeepShadowMask: 1
+ m_LightmapKeepSubtractive: 1
+ m_FogKeepLinear: 1
+ m_FogKeepExp: 1
+ m_FogKeepExp2: 1
+ m_AlbedoSwatchInfos: []
+ m_LightsUseLinearIntensity: 0
+ m_LightsUseColorTemperature: 0
+ m_DefaultRenderingLayerMask: 1
+ m_LogWhenShaderIsCompiled: 0
diff --git a/ProjectSettings/InputManager.asset b/ProjectSettings/InputManager.asset
new file mode 100644
index 0000000..b16147e
--- /dev/null
+++ b/ProjectSettings/InputManager.asset
@@ -0,0 +1,487 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!13 &1
+InputManager:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Axes:
+ - serializedVersion: 3
+ m_Name: Horizontal
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton: left
+ positiveButton: right
+ altNegativeButton: a
+ altPositiveButton: d
+ gravity: 3
+ dead: 0.001
+ sensitivity: 3
+ snap: 1
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Vertical
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton: down
+ positiveButton: up
+ altNegativeButton: s
+ altPositiveButton: w
+ gravity: 3
+ dead: 0.001
+ sensitivity: 3
+ snap: 1
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Fire1
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: left ctrl
+ altNegativeButton:
+ altPositiveButton: mouse 0
+ gravity: 1000
+ dead: 0.001
+ sensitivity: 1000
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Fire2
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: left alt
+ altNegativeButton:
+ altPositiveButton: mouse 1
+ gravity: 1000
+ dead: 0.001
+ sensitivity: 1000
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Fire3
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: left shift
+ altNegativeButton:
+ altPositiveButton: mouse 2
+ gravity: 1000
+ dead: 0.001
+ sensitivity: 1000
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Jump
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: space
+ altNegativeButton:
+ altPositiveButton:
+ gravity: 1000
+ dead: 0.001
+ sensitivity: 1000
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Mouse X
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton:
+ altNegativeButton:
+ altPositiveButton:
+ gravity: 0
+ dead: 0
+ sensitivity: 0.1
+ snap: 0
+ invert: 0
+ type: 1
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Mouse Y
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton:
+ altNegativeButton:
+ altPositiveButton:
+ gravity: 0
+ dead: 0
+ sensitivity: 0.1
+ snap: 0
+ invert: 0
+ type: 1
+ axis: 1
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Mouse ScrollWheel
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton:
+ altNegativeButton:
+ altPositiveButton:
+ gravity: 0
+ dead: 0
+ sensitivity: 0.1
+ snap: 0
+ invert: 0
+ type: 1
+ axis: 2
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Horizontal
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton:
+ altNegativeButton:
+ altPositiveButton:
+ gravity: 0
+ dead: 0.19
+ sensitivity: 1
+ snap: 0
+ invert: 0
+ type: 2
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Vertical
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton:
+ altNegativeButton:
+ altPositiveButton:
+ gravity: 0
+ dead: 0.19
+ sensitivity: 1
+ snap: 0
+ invert: 1
+ type: 2
+ axis: 1
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Fire1
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: joystick button 0
+ altNegativeButton:
+ altPositiveButton:
+ gravity: 1000
+ dead: 0.001
+ sensitivity: 1000
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Fire2
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: joystick button 1
+ altNegativeButton:
+ altPositiveButton:
+ gravity: 1000
+ dead: 0.001
+ sensitivity: 1000
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Fire3
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: joystick button 2
+ altNegativeButton:
+ altPositiveButton:
+ gravity: 1000
+ dead: 0.001
+ sensitivity: 1000
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Jump
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: joystick button 3
+ altNegativeButton:
+ altPositiveButton:
+ gravity: 1000
+ dead: 0.001
+ sensitivity: 1000
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Submit
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: return
+ altNegativeButton:
+ altPositiveButton: joystick button 0
+ gravity: 1000
+ dead: 0.001
+ sensitivity: 1000
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Submit
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: enter
+ altNegativeButton:
+ altPositiveButton: space
+ gravity: 1000
+ dead: 0.001
+ sensitivity: 1000
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Cancel
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: escape
+ altNegativeButton:
+ altPositiveButton: joystick button 1
+ gravity: 1000
+ dead: 0.001
+ sensitivity: 1000
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Enable Debug Button 1
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: left ctrl
+ altNegativeButton:
+ altPositiveButton: joystick button 8
+ gravity: 0
+ dead: 0
+ sensitivity: 0
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Enable Debug Button 2
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: backspace
+ altNegativeButton:
+ altPositiveButton: joystick button 9
+ gravity: 0
+ dead: 0
+ sensitivity: 0
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Debug Reset
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: left alt
+ altNegativeButton:
+ altPositiveButton: joystick button 1
+ gravity: 0
+ dead: 0
+ sensitivity: 0
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Debug Next
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: page down
+ altNegativeButton:
+ altPositiveButton: joystick button 5
+ gravity: 0
+ dead: 0
+ sensitivity: 0
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Debug Previous
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: page up
+ altNegativeButton:
+ altPositiveButton: joystick button 4
+ gravity: 0
+ dead: 0
+ sensitivity: 0
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Debug Validate
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: return
+ altNegativeButton:
+ altPositiveButton: joystick button 0
+ gravity: 0
+ dead: 0
+ sensitivity: 0
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Debug Persistent
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: right shift
+ altNegativeButton:
+ altPositiveButton: joystick button 2
+ gravity: 0
+ dead: 0
+ sensitivity: 0
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Debug Multiplier
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton:
+ positiveButton: left shift
+ altNegativeButton:
+ altPositiveButton: joystick button 3
+ gravity: 0
+ dead: 0
+ sensitivity: 0
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Debug Horizontal
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton: left
+ positiveButton: right
+ altNegativeButton:
+ altPositiveButton:
+ gravity: 1000
+ dead: 0.001
+ sensitivity: 1000
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Debug Vertical
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton: down
+ positiveButton: up
+ altNegativeButton:
+ altPositiveButton:
+ gravity: 1000
+ dead: 0.001
+ sensitivity: 1000
+ snap: 0
+ invert: 0
+ type: 0
+ axis: 0
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Debug Vertical
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton: down
+ positiveButton: up
+ altNegativeButton:
+ altPositiveButton:
+ gravity: 1000
+ dead: 0.001
+ sensitivity: 1000
+ snap: 0
+ invert: 0
+ type: 2
+ axis: 6
+ joyNum: 0
+ - serializedVersion: 3
+ m_Name: Debug Horizontal
+ descriptiveName:
+ descriptiveNegativeName:
+ negativeButton: left
+ positiveButton: right
+ altNegativeButton:
+ altPositiveButton:
+ gravity: 1000
+ dead: 0.001
+ sensitivity: 1000
+ snap: 0
+ invert: 0
+ type: 2
+ axis: 5
+ joyNum: 0
diff --git a/ProjectSettings/MemorySettings.asset b/ProjectSettings/MemorySettings.asset
new file mode 100644
index 0000000..5b5face
--- /dev/null
+++ b/ProjectSettings/MemorySettings.asset
@@ -0,0 +1,35 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!387306366 &1
+MemorySettings:
+ m_ObjectHideFlags: 0
+ m_EditorMemorySettings:
+ m_MainAllocatorBlockSize: -1
+ m_ThreadAllocatorBlockSize: -1
+ m_MainGfxBlockSize: -1
+ m_ThreadGfxBlockSize: -1
+ m_CacheBlockSize: -1
+ m_TypetreeBlockSize: -1
+ m_ProfilerBlockSize: -1
+ m_ProfilerEditorBlockSize: -1
+ m_BucketAllocatorGranularity: -1
+ m_BucketAllocatorBucketsCount: -1
+ m_BucketAllocatorBlockSize: -1
+ m_BucketAllocatorBlockCount: -1
+ m_ProfilerBucketAllocatorGranularity: -1
+ m_ProfilerBucketAllocatorBucketsCount: -1
+ m_ProfilerBucketAllocatorBlockSize: -1
+ m_ProfilerBucketAllocatorBlockCount: -1
+ m_TempAllocatorSizeMain: -1
+ m_JobTempAllocatorBlockSize: -1
+ m_BackgroundJobTempAllocatorBlockSize: -1
+ m_JobTempAllocatorReducedBlockSize: -1
+ m_TempAllocatorSizeGIBakingWorker: -1
+ m_TempAllocatorSizeNavMeshWorker: -1
+ m_TempAllocatorSizeAudioWorker: -1
+ m_TempAllocatorSizeCloudWorker: -1
+ m_TempAllocatorSizeGfx: -1
+ m_TempAllocatorSizeJobWorker: -1
+ m_TempAllocatorSizeBackgroundWorker: -1
+ m_TempAllocatorSizePreloadManager: -1
+ m_PlatformMemorySettings: {}
diff --git a/ProjectSettings/NavMeshAreas.asset b/ProjectSettings/NavMeshAreas.asset
new file mode 100644
index 0000000..ad2654e
--- /dev/null
+++ b/ProjectSettings/NavMeshAreas.asset
@@ -0,0 +1,93 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!126 &1
+NavMeshProjectSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ areas:
+ - name: Walkable
+ cost: 1
+ - name: Not Walkable
+ cost: 1
+ - name: Jump
+ cost: 2
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ - name:
+ cost: 1
+ m_LastAgentTypeID: -887442657
+ m_Settings:
+ - serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.75
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_SettingNames:
+ - Humanoid
diff --git a/ProjectSettings/NetworkManager.asset b/ProjectSettings/NetworkManager.asset
new file mode 100644
index 0000000..5dc6a83
--- /dev/null
+++ b/ProjectSettings/NetworkManager.asset
@@ -0,0 +1,8 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!149 &1
+NetworkManager:
+ m_ObjectHideFlags: 0
+ m_DebugLevel: 0
+ m_Sendrate: 15
+ m_AssetToPrefab: {}
diff --git a/ProjectSettings/PackageManagerSettings.asset b/ProjectSettings/PackageManagerSettings.asset
new file mode 100644
index 0000000..b92277e
--- /dev/null
+++ b/ProjectSettings/PackageManagerSettings.asset
@@ -0,0 +1,36 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &1
+MonoBehaviour:
+ m_ObjectHideFlags: 61
+ 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: 13964, guid: 0000000000000000e000000000000000, type: 0}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EnablePreReleasePackages: 0
+ m_EnablePackageDependencies: 0
+ m_AdvancedSettingsExpanded: 1
+ m_ScopedRegistriesSettingsExpanded: 1
+ m_SeeAllPackageVersions: 0
+ oneTimeWarningShown: 0
+ m_Registries:
+ - m_Id: main
+ m_Name:
+ m_Url: https://packages.unity.cn
+ m_Scopes: []
+ m_IsDefault: 1
+ m_Capabilities: 7
+ m_ConfigSource: 0
+ m_UserSelectedRegistryName:
+ m_UserAddingNewScopedRegistry: 0
+ m_RegistryInfoDraft:
+ m_Modified: 0
+ m_ErrorMessage:
+ m_UserModificationsInstanceId: -832
+ m_OriginalInstanceId: -834
+ m_LoadAssets: 0
diff --git a/ProjectSettings/Physics2DSettings.asset b/ProjectSettings/Physics2DSettings.asset
new file mode 100644
index 0000000..6cfcdda
--- /dev/null
+++ b/ProjectSettings/Physics2DSettings.asset
@@ -0,0 +1,56 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!19 &1
+Physics2DSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 5
+ m_Gravity: {x: 0, y: -9.81}
+ m_DefaultMaterial: {fileID: 0}
+ m_VelocityIterations: 8
+ m_PositionIterations: 3
+ m_VelocityThreshold: 1
+ m_MaxLinearCorrection: 0.2
+ m_MaxAngularCorrection: 8
+ m_MaxTranslationSpeed: 100
+ m_MaxRotationSpeed: 360
+ m_BaumgarteScale: 0.2
+ m_BaumgarteTimeOfImpactScale: 0.75
+ m_TimeToSleep: 0.5
+ m_LinearSleepTolerance: 0.01
+ m_AngularSleepTolerance: 2
+ m_DefaultContactOffset: 0.01
+ m_JobOptions:
+ serializedVersion: 2
+ useMultithreading: 0
+ useConsistencySorting: 0
+ m_InterpolationPosesPerJob: 100
+ m_NewContactsPerJob: 30
+ m_CollideContactsPerJob: 100
+ m_ClearFlagsPerJob: 200
+ m_ClearBodyForcesPerJob: 200
+ m_SyncDiscreteFixturesPerJob: 50
+ m_SyncContinuousFixturesPerJob: 50
+ m_FindNearestContactsPerJob: 100
+ m_UpdateTriggerContactsPerJob: 100
+ m_IslandSolverCostThreshold: 100
+ m_IslandSolverBodyCostScale: 1
+ m_IslandSolverContactCostScale: 10
+ m_IslandSolverJointCostScale: 10
+ m_IslandSolverBodiesPerJob: 50
+ m_IslandSolverContactsPerJob: 50
+ m_SimulationMode: 0
+ m_QueriesHitTriggers: 1
+ m_QueriesStartInColliders: 1
+ m_CallbacksOnDisable: 1
+ m_ReuseCollisionCallbacks: 1
+ m_AutoSyncTransforms: 0
+ m_AlwaysShowColliders: 0
+ m_ShowColliderSleep: 1
+ m_ShowColliderContacts: 0
+ m_ShowColliderAABB: 0
+ m_ContactArrowScale: 0.2
+ m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
+ m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
+ m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
+ m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
+ m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
diff --git a/ProjectSettings/PresetManager.asset b/ProjectSettings/PresetManager.asset
new file mode 100644
index 0000000..67a94da
--- /dev/null
+++ b/ProjectSettings/PresetManager.asset
@@ -0,0 +1,7 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1386491679 &1
+PresetManager:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_DefaultPresets: {}
diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset
new file mode 100644
index 0000000..f274126
--- /dev/null
+++ b/ProjectSettings/ProjectSettings.asset
@@ -0,0 +1,788 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!129 &1
+PlayerSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 24
+ productGUID: d93a88c06f3541a439fb24c7ba3c8e1a
+ AndroidProfiler: 0
+ AndroidFilterTouchesWhenObscured: 0
+ AndroidEnableSustainedPerformanceMode: 0
+ defaultScreenOrientation: 4
+ targetDevice: 2
+ useOnDemandResources: 0
+ accelerometerFrequency: 60
+ companyName: DefaultCompany
+ productName: "\u840C\u5996\u51FA\u6CA1\u6218\u6597\u91CD\u6784"
+ defaultCursor: {fileID: 0}
+ cursorHotspot: {x: 0, y: 0}
+ m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}
+ m_ShowUnitySplashScreen: 1
+ m_ShowUnitySplashLogo: 1
+ m_SplashScreenOverlayOpacity: 1
+ m_SplashScreenAnimation: 1
+ m_SplashScreenLogoStyle: 1
+ m_SplashScreenDrawMode: 0
+ m_SplashScreenBackgroundAnimationZoom: 1
+ m_SplashScreenLogoAnimationZoom: 1
+ m_SplashScreenBackgroundLandscapeAspect: 1
+ m_SplashScreenBackgroundPortraitAspect: 1
+ m_SplashScreenBackgroundLandscapeUvs:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ m_SplashScreenBackgroundPortraitUvs:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ m_SplashScreenLogos: []
+ m_VirtualRealitySplashScreen: {fileID: 0}
+ m_HolographicTrackingLossScreen: {fileID: 0}
+ defaultScreenWidth: 1920
+ defaultScreenHeight: 1080
+ defaultScreenWidthWeb: 960
+ defaultScreenHeightWeb: 600
+ m_StereoRenderingPath: 0
+ m_ActiveColorSpace: 0
+ unsupportedMSAAFallback: 0
+ m_MTRendering: 1
+ mipStripping: 0
+ numberOfMipsStripped: 0
+ m_StackTraceTypes: 010000000100000001000000010000000100000001000000
+ iosShowActivityIndicatorOnLoading: -1
+ androidShowActivityIndicatorOnLoading: -1
+ iosUseCustomAppBackgroundBehavior: 0
+ iosAllowHTTPDownload: 1
+ allowedAutorotateToPortrait: 1
+ allowedAutorotateToPortraitUpsideDown: 1
+ allowedAutorotateToLandscapeRight: 1
+ allowedAutorotateToLandscapeLeft: 1
+ useOSAutorotation: 1
+ use32BitDisplayBuffer: 1
+ preserveFramebufferAlpha: 0
+ disableDepthAndStencilBuffers: 0
+ androidStartInFullscreen: 1
+ androidRenderOutsideSafeArea: 1
+ androidUseSwappy: 1
+ androidBlitType: 0
+ androidResizableWindow: 0
+ androidDefaultWindowWidth: 1920
+ androidDefaultWindowHeight: 1080
+ androidMinimumWindowWidth: 400
+ androidMinimumWindowHeight: 300
+ androidFullscreenMode: 1
+ androidAutoRotationBehavior: 1
+ defaultIsNativeResolution: 1
+ macRetinaSupport: 1
+ runInBackground: 0
+ captureSingleScreen: 0
+ muteOtherAudioSources: 0
+ Prepare IOS For Recording: 0
+ Force IOS Speakers When Recording: 0
+ deferSystemGesturesMode: 0
+ hideHomeButton: 0
+ submitAnalytics: 1
+ usePlayerLog: 1
+ autoStreaming: 0
+ useAnimationStreaming: 0
+ useFontStreaming: 0
+ autoStreamingId:
+ instantGameAppId:
+ bakeCollisionMeshes: 0
+ forceSingleInstance: 0
+ useFlipModelSwapchain: 1
+ resizableWindow: 0
+ useMacAppStoreValidation: 0
+ macAppStoreCategory: public.app-category.games
+ gpuSkinning: 0
+ xboxPIXTextureCapture: 0
+ xboxEnableAvatar: 0
+ xboxEnableKinect: 0
+ xboxEnableKinectAutoTracking: 0
+ xboxEnableFitness: 0
+ visibleInBackground: 1
+ allowFullscreenSwitch: 1
+ fullscreenMode: 1
+ xboxSpeechDB: 0
+ xboxEnableHeadOrientation: 0
+ xboxEnableGuest: 0
+ xboxEnablePIXSampling: 0
+ metalFramebufferOnly: 0
+ xboxOneResolution: 0
+ xboxOneSResolution: 0
+ xboxOneXResolution: 3
+ xboxOneMonoLoggingLevel: 0
+ xboxOneLoggingLevel: 1
+ xboxOneDisableEsram: 0
+ xboxOneEnableTypeOptimization: 0
+ xboxOnePresentImmediateThreshold: 0
+ switchQueueCommandMemory: 1048576
+ switchQueueControlMemory: 16384
+ switchQueueComputeMemory: 262144
+ switchNVNShaderPoolsGranularity: 33554432
+ switchNVNDefaultPoolsGranularity: 16777216
+ switchNVNOtherPoolsGranularity: 16777216
+ switchNVNMaxPublicTextureIDCount: 0
+ switchNVNMaxPublicSamplerIDCount: 0
+ switchMaxWorkerMultiple: 8
+ stadiaPresentMode: 0
+ stadiaTargetFramerate: 0
+ vulkanNumSwapchainBuffers: 3
+ vulkanEnableSetSRGBWrite: 0
+ vulkanEnablePreTransform: 0
+ vulkanEnableLateAcquireNextImage: 0
+ vulkanEnableCommandBufferRecycling: 1
+ m_SupportedAspectRatios:
+ 4:3: 1
+ 5:4: 1
+ 16:10: 1
+ 16:9: 1
+ Others: 1
+ bundleVersion: 1.0
+ preloadedAssets: []
+ metroInputSource: 0
+ wsaTransparentSwapchain: 0
+ m_HolographicPauseOnTrackingLoss: 1
+ xboxOneDisableKinectGpuReservation: 1
+ xboxOneEnable7thCore: 1
+ vrSettings:
+ enable360StereoCapture: 0
+ isWsaHolographicRemotingEnabled: 0
+ enableFrameTimingStats: 0
+ enableOpenGLProfilerGPURecorders: 1
+ useHDRDisplay: 0
+ D3DHDRBitDepth: 0
+ m_ColorGamuts: 00000000
+ targetPixelDensity: 30
+ resolutionScalingMode: 0
+ resetResolutionOnWindowResize: 0
+ androidSupportedAspectRatio: 1
+ androidMaxAspectRatio: 2.1
+ applicationIdentifier:
+ Standalone: com.DefaultCompany.2DProject
+ buildNumber:
+ Standalone: 0
+ iPhone: 0
+ tvOS: 0
+ overrideDefaultApplicationIdentifier: 1
+ AndroidBundleVersionCode: 1
+ AndroidMinSdkVersion: 22
+ AndroidTargetSdkVersion: 0
+ AndroidPreferredInstallLocation: 1
+ aotOptions:
+ stripEngineCode: 1
+ iPhoneStrippingLevel: 0
+ iPhoneScriptCallOptimization: 0
+ ForceInternetPermission: 0
+ ForceSDCardPermission: 0
+ CreateWallpaper: 0
+ APKExpansionFiles: 0
+ keepLoadedShadersAlive: 0
+ StripUnusedMeshComponents: 0
+ VertexChannelCompressionMask: 4054
+ iPhoneSdkVersion: 988
+ iOSTargetOSVersionString: 12.0
+ tvOSSdkVersion: 0
+ tvOSRequireExtendedGameController: 0
+ tvOSTargetOSVersionString: 12.0
+ uIPrerenderedIcon: 0
+ uIRequiresPersistentWiFi: 0
+ uIRequiresFullScreen: 1
+ uIStatusBarHidden: 1
+ uIExitOnSuspend: 0
+ uIStatusBarStyle: 0
+ appleTVSplashScreen: {fileID: 0}
+ appleTVSplashScreen2x: {fileID: 0}
+ tvOSSmallIconLayers: []
+ tvOSSmallIconLayers2x: []
+ tvOSLargeIconLayers: []
+ tvOSLargeIconLayers2x: []
+ tvOSTopShelfImageLayers: []
+ tvOSTopShelfImageLayers2x: []
+ tvOSTopShelfImageWideLayers: []
+ tvOSTopShelfImageWideLayers2x: []
+ iOSLaunchScreenType: 0
+ iOSLaunchScreenPortrait: {fileID: 0}
+ iOSLaunchScreenLandscape: {fileID: 0}
+ iOSLaunchScreenBackgroundColor:
+ serializedVersion: 2
+ rgba: 0
+ iOSLaunchScreenFillPct: 100
+ iOSLaunchScreenSize: 100
+ iOSLaunchScreenCustomXibPath:
+ iOSLaunchScreeniPadType: 0
+ iOSLaunchScreeniPadImage: {fileID: 0}
+ iOSLaunchScreeniPadBackgroundColor:
+ serializedVersion: 2
+ rgba: 0
+ iOSLaunchScreeniPadFillPct: 100
+ iOSLaunchScreeniPadSize: 100
+ iOSLaunchScreeniPadCustomXibPath:
+ iOSLaunchScreenCustomStoryboardPath:
+ iOSLaunchScreeniPadCustomStoryboardPath:
+ iOSDeviceRequirements: []
+ iOSURLSchemes: []
+ macOSURLSchemes: []
+ iOSBackgroundModes: 0
+ iOSMetalForceHardShadows: 0
+ metalEditorSupport: 1
+ metalAPIValidation: 1
+ iOSRenderExtraFrameOnPause: 0
+ iosCopyPluginsCodeInsteadOfSymlink: 0
+ appleDeveloperTeamID:
+ iOSManualSigningProvisioningProfileID:
+ tvOSManualSigningProvisioningProfileID:
+ iOSManualSigningProvisioningProfileType: 0
+ tvOSManualSigningProvisioningProfileType: 0
+ appleEnableAutomaticSigning: 0
+ iOSRequireARKit: 0
+ iOSAutomaticallyDetectAndAddCapabilities: 1
+ appleEnableProMotion: 0
+ shaderPrecisionModel: 0
+ clonedFromGUID: 10ad67313f4034357812315f3c407484
+ templatePackageId: com.unity.template.2d@6.1.2
+ templateDefaultScene: Assets/Scenes/SampleScene.unity
+ useCustomMainManifest: 0
+ useCustomLauncherManifest: 0
+ useCustomMainGradleTemplate: 0
+ useCustomLauncherGradleManifest: 0
+ useCustomBaseGradleTemplate: 0
+ useCustomGradlePropertiesTemplate: 0
+ useCustomGradleSettingsTemplate: 0
+ useCustomProguardFile: 0
+ AndroidTargetArchitectures: 1
+ AndroidTargetDevices: 0
+ AndroidSplashScreenScale: 0
+ androidSplashScreen: {fileID: 0}
+ AndroidKeystoreName:
+ AndroidKeyaliasName:
+ AndroidBuildApkPerCpuArchitecture: 0
+ AndroidTVCompatibility: 0
+ AndroidIsGame: 1
+ AndroidEnableTango: 0
+ androidEnableBanner: 1
+ androidUseLowAccuracyLocation: 0
+ androidUseCustomKeystore: 0
+ m_AndroidBanners:
+ - width: 320
+ height: 180
+ banner: {fileID: 0}
+ androidGamepadSupportLevel: 0
+ chromeosInputEmulation: 1
+ AndroidMinifyRelease: 0
+ AndroidMinifyDebug: 0
+ AndroidValidateAppBundleSize: 1
+ AndroidAppBundleSizeToValidate: 150
+ m_BuildTargetIcons: []
+ m_BuildTargetPlatformIcons:
+ - m_BuildTarget: Android
+ m_Icons:
+ - m_Textures: []
+ m_Width: 432
+ m_Height: 432
+ m_Kind: 2
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 324
+ m_Height: 324
+ m_Kind: 2
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 216
+ m_Height: 216
+ m_Kind: 2
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 162
+ m_Height: 162
+ m_Kind: 2
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 108
+ m_Height: 108
+ m_Kind: 2
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 81
+ m_Height: 81
+ m_Kind: 2
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 192
+ m_Height: 192
+ m_Kind: 1
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 144
+ m_Height: 144
+ m_Kind: 1
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 96
+ m_Height: 96
+ m_Kind: 1
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 72
+ m_Height: 72
+ m_Kind: 1
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 48
+ m_Height: 48
+ m_Kind: 1
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 36
+ m_Height: 36
+ m_Kind: 1
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 192
+ m_Height: 192
+ m_Kind: 0
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 144
+ m_Height: 144
+ m_Kind: 0
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 96
+ m_Height: 96
+ m_Kind: 0
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 72
+ m_Height: 72
+ m_Kind: 0
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 48
+ m_Height: 48
+ m_Kind: 0
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 36
+ m_Height: 36
+ m_Kind: 0
+ m_SubKind:
+ m_BuildTargetBatching: []
+ m_BuildTargetShaderSettings: []
+ m_BuildTargetGraphicsJobs:
+ - m_BuildTarget: MacStandaloneSupport
+ m_GraphicsJobs: 0
+ - m_BuildTarget: Switch
+ m_GraphicsJobs: 0
+ - m_BuildTarget: MetroSupport
+ m_GraphicsJobs: 0
+ - m_BuildTarget: AppleTVSupport
+ m_GraphicsJobs: 0
+ - m_BuildTarget: BJMSupport
+ m_GraphicsJobs: 0
+ - m_BuildTarget: LinuxStandaloneSupport
+ m_GraphicsJobs: 0
+ - m_BuildTarget: PS4Player
+ m_GraphicsJobs: 0
+ - m_BuildTarget: iOSSupport
+ m_GraphicsJobs: 0
+ - m_BuildTarget: WindowsStandaloneSupport
+ m_GraphicsJobs: 0
+ - m_BuildTarget: XboxOnePlayer
+ m_GraphicsJobs: 0
+ - m_BuildTarget: LuminSupport
+ m_GraphicsJobs: 0
+ - m_BuildTarget: AndroidPlayer
+ m_GraphicsJobs: 0
+ - m_BuildTarget: WebGLSupport
+ m_GraphicsJobs: 0
+ m_BuildTargetGraphicsJobMode: []
+ m_BuildTargetGraphicsAPIs:
+ - m_BuildTarget: AndroidPlayer
+ m_APIs: 150000000b000000
+ m_Automatic: 1
+ - m_BuildTarget: iOSSupport
+ m_APIs: 10000000
+ m_Automatic: 1
+ m_BuildTargetVRSettings: []
+ m_DefaultShaderChunkSizeInMB: 16
+ m_DefaultShaderChunkCount: 0
+ openGLRequireES31: 0
+ openGLRequireES31AEP: 0
+ openGLRequireES32: 0
+ m_TemplateCustomTags: {}
+ mobileMTRendering:
+ Android: 1
+ iPhone: 1
+ tvOS: 1
+ m_BuildTargetGroupLightmapEncodingQuality: []
+ m_BuildTargetGroupLightmapSettings: []
+ m_BuildTargetNormalMapEncoding: []
+ m_BuildTargetDefaultTextureCompressionFormat:
+ - m_BuildTarget: Android
+ m_Format: 3
+ playModeTestRunnerEnabled: 0
+ runPlayModeTestAsEditModeTest: 0
+ actionOnDotNetUnhandledException: 1
+ enableInternalProfiler: 0
+ logObjCUncaughtExceptions: 1
+ enableCrashReportAPI: 0
+ cameraUsageDescription:
+ locationUsageDescription:
+ microphoneUsageDescription:
+ bluetoothUsageDescription:
+ switchNMETAOverride:
+ switchNetLibKey:
+ switchSocketMemoryPoolSize: 6144
+ switchSocketAllocatorPoolSize: 128
+ switchSocketConcurrencyLimit: 14
+ switchScreenResolutionBehavior: 2
+ switchUseCPUProfiler: 0
+ switchEnableFileSystemTrace: 0
+ switchLTOSetting: 0
+ switchApplicationID: 0x01004b9000490000
+ switchNSODependencies:
+ switchTitleNames_0:
+ switchTitleNames_1:
+ switchTitleNames_2:
+ switchTitleNames_3:
+ switchTitleNames_4:
+ switchTitleNames_5:
+ switchTitleNames_6:
+ switchTitleNames_7:
+ switchTitleNames_8:
+ switchTitleNames_9:
+ switchTitleNames_10:
+ switchTitleNames_11:
+ switchTitleNames_12:
+ switchTitleNames_13:
+ switchTitleNames_14:
+ switchTitleNames_15:
+ switchPublisherNames_0:
+ switchPublisherNames_1:
+ switchPublisherNames_2:
+ switchPublisherNames_3:
+ switchPublisherNames_4:
+ switchPublisherNames_5:
+ switchPublisherNames_6:
+ switchPublisherNames_7:
+ switchPublisherNames_8:
+ switchPublisherNames_9:
+ switchPublisherNames_10:
+ switchPublisherNames_11:
+ switchPublisherNames_12:
+ switchPublisherNames_13:
+ switchPublisherNames_14:
+ switchPublisherNames_15:
+ switchIcons_0: {fileID: 0}
+ switchIcons_1: {fileID: 0}
+ switchIcons_2: {fileID: 0}
+ switchIcons_3: {fileID: 0}
+ switchIcons_4: {fileID: 0}
+ switchIcons_5: {fileID: 0}
+ switchIcons_6: {fileID: 0}
+ switchIcons_7: {fileID: 0}
+ switchIcons_8: {fileID: 0}
+ switchIcons_9: {fileID: 0}
+ switchIcons_10: {fileID: 0}
+ switchIcons_11: {fileID: 0}
+ switchIcons_12: {fileID: 0}
+ switchIcons_13: {fileID: 0}
+ switchIcons_14: {fileID: 0}
+ switchIcons_15: {fileID: 0}
+ switchSmallIcons_0: {fileID: 0}
+ switchSmallIcons_1: {fileID: 0}
+ switchSmallIcons_2: {fileID: 0}
+ switchSmallIcons_3: {fileID: 0}
+ switchSmallIcons_4: {fileID: 0}
+ switchSmallIcons_5: {fileID: 0}
+ switchSmallIcons_6: {fileID: 0}
+ switchSmallIcons_7: {fileID: 0}
+ switchSmallIcons_8: {fileID: 0}
+ switchSmallIcons_9: {fileID: 0}
+ switchSmallIcons_10: {fileID: 0}
+ switchSmallIcons_11: {fileID: 0}
+ switchSmallIcons_12: {fileID: 0}
+ switchSmallIcons_13: {fileID: 0}
+ switchSmallIcons_14: {fileID: 0}
+ switchSmallIcons_15: {fileID: 0}
+ switchManualHTML:
+ switchAccessibleURLs:
+ switchLegalInformation:
+ switchMainThreadStackSize: 1048576
+ switchPresenceGroupId:
+ switchLogoHandling: 0
+ switchReleaseVersion: 0
+ switchDisplayVersion: 1.0.0
+ switchStartupUserAccount: 0
+ switchSupportedLanguagesMask: 0
+ switchLogoType: 0
+ switchApplicationErrorCodeCategory:
+ switchUserAccountSaveDataSize: 0
+ switchUserAccountSaveDataJournalSize: 0
+ switchApplicationAttribute: 0
+ switchCardSpecSize: -1
+ switchCardSpecClock: -1
+ switchRatingsMask: 0
+ switchRatingsInt_0: 0
+ switchRatingsInt_1: 0
+ switchRatingsInt_2: 0
+ switchRatingsInt_3: 0
+ switchRatingsInt_4: 0
+ switchRatingsInt_5: 0
+ switchRatingsInt_6: 0
+ switchRatingsInt_7: 0
+ switchRatingsInt_8: 0
+ switchRatingsInt_9: 0
+ switchRatingsInt_10: 0
+ switchRatingsInt_11: 0
+ switchRatingsInt_12: 0
+ switchLocalCommunicationIds_0:
+ switchLocalCommunicationIds_1:
+ switchLocalCommunicationIds_2:
+ switchLocalCommunicationIds_3:
+ switchLocalCommunicationIds_4:
+ switchLocalCommunicationIds_5:
+ switchLocalCommunicationIds_6:
+ switchLocalCommunicationIds_7:
+ switchParentalControl: 0
+ switchAllowsScreenshot: 1
+ switchAllowsVideoCapturing: 1
+ switchAllowsRuntimeAddOnContentInstall: 0
+ switchDataLossConfirmation: 0
+ switchUserAccountLockEnabled: 0
+ switchSystemResourceMemory: 16777216
+ switchSupportedNpadStyles: 22
+ switchNativeFsCacheSize: 32
+ switchIsHoldTypeHorizontal: 0
+ switchSupportedNpadCount: 8
+ switchEnableTouchScreen: 1
+ switchSocketConfigEnabled: 0
+ switchTcpInitialSendBufferSize: 32
+ switchTcpInitialReceiveBufferSize: 64
+ switchTcpAutoSendBufferSizeMax: 256
+ switchTcpAutoReceiveBufferSizeMax: 256
+ switchUdpSendBufferSize: 9
+ switchUdpReceiveBufferSize: 42
+ switchSocketBufferEfficiency: 4
+ switchSocketInitializeEnabled: 1
+ switchNetworkInterfaceManagerInitializeEnabled: 1
+ switchUseNewStyleFilepaths: 0
+ switchUseLegacyFmodPriorities: 1
+ switchUseMicroSleepForYield: 1
+ switchEnableRamDiskSupport: 0
+ switchMicroSleepForYieldTime: 25
+ switchRamDiskSpaceSize: 12
+ ps4NPAgeRating: 12
+ ps4NPTitleSecret:
+ ps4NPTrophyPackPath:
+ ps4ParentalLevel: 11
+ ps4ContentID: ED1633-NPXX51362_00-0000000000000000
+ ps4Category: 0
+ ps4MasterVersion: 01.00
+ ps4AppVersion: 01.00
+ ps4AppType: 0
+ ps4ParamSfxPath:
+ ps4VideoOutPixelFormat: 0
+ ps4VideoOutInitialWidth: 1920
+ ps4VideoOutBaseModeInitialWidth: 1920
+ ps4VideoOutReprojectionRate: 60
+ ps4PronunciationXMLPath:
+ ps4PronunciationSIGPath:
+ ps4BackgroundImagePath:
+ ps4StartupImagePath:
+ ps4StartupImagesFolder:
+ ps4IconImagesFolder:
+ ps4SaveDataImagePath:
+ ps4SdkOverride:
+ ps4BGMPath:
+ ps4ShareFilePath:
+ ps4ShareOverlayImagePath:
+ ps4PrivacyGuardImagePath:
+ ps4ExtraSceSysFile:
+ ps4NPtitleDatPath:
+ ps4RemotePlayKeyAssignment: -1
+ ps4RemotePlayKeyMappingDir:
+ ps4PlayTogetherPlayerCount: 0
+ ps4EnterButtonAssignment: 2
+ ps4ApplicationParam1: 0
+ ps4ApplicationParam2: 0
+ ps4ApplicationParam3: 0
+ ps4ApplicationParam4: 0
+ ps4DownloadDataSize: 0
+ ps4GarlicHeapSize: 2048
+ ps4ProGarlicHeapSize: 2560
+ playerPrefsMaxSize: 32768
+ ps4Passcode: bi9UOuSpM2Tlh01vOzwvSikHFswuzleh
+ ps4pnSessions: 1
+ ps4pnPresence: 1
+ ps4pnFriends: 1
+ ps4pnGameCustomData: 1
+ playerPrefsSupport: 0
+ enableApplicationExit: 0
+ resetTempFolder: 1
+ restrictedAudioUsageRights: 0
+ ps4UseResolutionFallback: 0
+ ps4ReprojectionSupport: 0
+ ps4UseAudio3dBackend: 0
+ ps4UseLowGarlicFragmentationMode: 1
+ ps4SocialScreenEnabled: 0
+ ps4ScriptOptimizationLevel: 2
+ ps4Audio3dVirtualSpeakerCount: 14
+ ps4attribCpuUsage: 0
+ ps4PatchPkgPath:
+ ps4PatchLatestPkgPath:
+ ps4PatchChangeinfoPath:
+ ps4PatchDayOne: 0
+ ps4attribUserManagement: 0
+ ps4attribMoveSupport: 0
+ ps4attrib3DSupport: 0
+ ps4attribShareSupport: 0
+ ps4attribExclusiveVR: 0
+ ps4disableAutoHideSplash: 0
+ ps4videoRecordingFeaturesUsed: 0
+ ps4contentSearchFeaturesUsed: 0
+ ps4CompatibilityPS5: 0
+ ps4AllowPS5Detection: 0
+ ps4GPU800MHz: 1
+ ps4attribEyeToEyeDistanceSettingVR: 0
+ ps4IncludedModules: []
+ ps4attribVROutputEnabled: 0
+ monoEnv:
+ splashScreenBackgroundSourceLandscape: {fileID: 0}
+ splashScreenBackgroundSourcePortrait: {fileID: 0}
+ blurSplashScreenBackground: 1
+ spritePackerPolicy:
+ webGLMemorySize: 32
+ webGLExceptionSupport: 1
+ webGLNameFilesAsHashes: 0
+ webGLDataCaching: 1
+ webGLDebugSymbols: 0
+ webGLEmscriptenArgs:
+ webGLModulesDirectory:
+ webGLTemplate: APPLICATION:Default
+ webGLAnalyzeBuildSize: 0
+ webGLUseEmbeddedResources: 0
+ webGLCompressionFormat: 0
+ webGLWasmArithmeticExceptions: 0
+ webGLLinkerTarget: 1
+ webGLThreadsSupport: 0
+ webGLDecompressionFallback: 0
+ webGLPowerPreference: 2
+ scriptingDefineSymbols: {}
+ additionalCompilerArguments: {}
+ platformArchitecture: {}
+ scriptingBackend: {}
+ il2cppCompilerConfiguration: {}
+ managedStrippingLevel:
+ EmbeddedLinux: 1
+ GameCoreScarlett: 1
+ GameCoreXboxOne: 1
+ Lumin: 1
+ Nintendo Switch: 1
+ PS4: 1
+ PS5: 1
+ Stadia: 1
+ WebGL: 1
+ Windows Store Apps: 1
+ XboxOne: 1
+ iPhone: 1
+ tvOS: 1
+ incrementalIl2cppBuild: {}
+ suppressCommonWarnings: 1
+ allowUnsafeCode: 0
+ useDeterministicCompilation: 1
+ enableRoslynAnalyzers: 1
+ additionalIl2CppArgs:
+ scriptingRuntimeVersion: 1
+ gcIncremental: 1
+ assemblyVersionValidation: 1
+ gcWBarrierValidation: 0
+ apiCompatibilityLevelPerPlatform: {}
+ m_RenderingPath: 1
+ m_MobileRenderingPath: 1
+ metroPackageName: 2D_BuiltInRenderer
+ metroPackageVersion:
+ metroCertificatePath:
+ metroCertificatePassword:
+ metroCertificateSubject:
+ metroCertificateIssuer:
+ metroCertificateNotAfter: 0000000000000000
+ metroApplicationDescription: 2D_BuiltInRenderer
+ wsaImages: {}
+ metroTileShortName:
+ metroTileShowName: 0
+ metroMediumTileShowName: 0
+ metroLargeTileShowName: 0
+ metroWideTileShowName: 0
+ metroSupportStreamingInstall: 0
+ metroLastRequiredScene: 0
+ metroDefaultTileSize: 1
+ metroTileForegroundText: 2
+ metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
+ metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1}
+ metroSplashScreenUseBackgroundColor: 0
+ syncCapabilities: 0
+ platformCapabilities: {}
+ metroTargetDeviceFamilies: {}
+ metroFTAName:
+ metroFTAFileTypes: []
+ metroProtocolName:
+ vcxProjDefaultLanguage:
+ XboxOneProductId:
+ XboxOneUpdateKey:
+ XboxOneSandboxId:
+ XboxOneContentId:
+ XboxOneTitleId:
+ XboxOneSCId:
+ XboxOneGameOsOverridePath:
+ XboxOnePackagingOverridePath:
+ XboxOneAppManifestOverridePath:
+ XboxOneVersion: 1.0.0.0
+ XboxOnePackageEncryption: 0
+ XboxOnePackageUpdateGranularity: 2
+ XboxOneDescription:
+ XboxOneLanguage:
+ - enus
+ XboxOneCapability: []
+ XboxOneGameRating: {}
+ XboxOneIsContentPackage: 0
+ XboxOneEnhancedXboxCompatibilityMode: 0
+ XboxOneEnableGPUVariability: 1
+ XboxOneSockets: {}
+ XboxOneSplashScreen: {fileID: 0}
+ XboxOneAllowedProductIds: []
+ XboxOnePersistentLocalStorageSize: 0
+ XboxOneXTitleMemory: 8
+ XboxOneOverrideIdentityName:
+ XboxOneOverrideIdentityPublisher:
+ vrEditorSettings: {}
+ cloudServicesEnabled: {}
+ luminIcon:
+ m_Name:
+ m_ModelFolderPath:
+ m_PortalFolderPath:
+ luminCert:
+ m_CertPath:
+ m_SignPackage: 1
+ luminIsChannelApp: 0
+ luminVersion:
+ m_VersionCode: 1
+ m_VersionName:
+ apiCompatibilityLevel: 6
+ activeInputHandler: 0
+ windowsGamepadBackendHint: 0
+ cloudProjectId:
+ framebufferDepthMemorylessMode: 0
+ qualitySettingsNames: []
+ projectName:
+ organizationId:
+ cloudEnabled: 0
+ legacyClampBlendShapeWeights: 0
+ playerDataPath:
+ forceSRGBBlit: 1
+ virtualTexturingSupportEnabled: 0
diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt
new file mode 100644
index 0000000..73fbeec
--- /dev/null
+++ b/ProjectSettings/ProjectVersion.txt
@@ -0,0 +1,2 @@
+m_EditorVersion: 2021.3.44f1c1
+m_EditorVersionWithRevision: 2021.3.44f1c1 (0c301d0bd4e3)
diff --git a/ProjectSettings/QualitySettings.asset b/ProjectSettings/QualitySettings.asset
new file mode 100644
index 0000000..bcd6706
--- /dev/null
+++ b/ProjectSettings/QualitySettings.asset
@@ -0,0 +1,239 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!47 &1
+QualitySettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 5
+ m_CurrentQuality: 5
+ m_QualitySettings:
+ - serializedVersion: 2
+ name: Very Low
+ pixelLightCount: 0
+ shadows: 0
+ shadowResolution: 0
+ shadowProjection: 1
+ shadowCascades: 1
+ shadowDistance: 15
+ shadowNearPlaneOffset: 3
+ shadowCascade2Split: 0.33333334
+ shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
+ shadowmaskMode: 0
+ skinWeights: 1
+ textureQuality: 1
+ anisotropicTextures: 0
+ antiAliasing: 0
+ softParticles: 0
+ softVegetation: 0
+ realtimeReflectionProbes: 0
+ billboardsFaceCameraPosition: 0
+ vSyncCount: 0
+ lodBias: 0.3
+ maximumLODLevel: 0
+ streamingMipmapsActive: 0
+ streamingMipmapsAddAllCameras: 1
+ streamingMipmapsMemoryBudget: 512
+ streamingMipmapsRenderersPerFrame: 512
+ streamingMipmapsMaxLevelReduction: 2
+ streamingMipmapsMaxFileIORequests: 1024
+ particleRaycastBudget: 4
+ asyncUploadTimeSlice: 2
+ asyncUploadBufferSize: 16
+ asyncUploadPersistentBuffer: 1
+ resolutionScalingFixedDPIFactor: 1
+ customRenderPipeline: {fileID: 0}
+ excludedTargetPlatforms: []
+ - serializedVersion: 2
+ name: Low
+ pixelLightCount: 0
+ shadows: 0
+ shadowResolution: 0
+ shadowProjection: 1
+ shadowCascades: 1
+ shadowDistance: 20
+ shadowNearPlaneOffset: 3
+ shadowCascade2Split: 0.33333334
+ shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
+ shadowmaskMode: 0
+ skinWeights: 2
+ textureQuality: 0
+ anisotropicTextures: 0
+ antiAliasing: 0
+ softParticles: 0
+ softVegetation: 0
+ realtimeReflectionProbes: 0
+ billboardsFaceCameraPosition: 0
+ vSyncCount: 0
+ lodBias: 0.4
+ maximumLODLevel: 0
+ streamingMipmapsActive: 0
+ streamingMipmapsAddAllCameras: 1
+ streamingMipmapsMemoryBudget: 512
+ streamingMipmapsRenderersPerFrame: 512
+ streamingMipmapsMaxLevelReduction: 2
+ streamingMipmapsMaxFileIORequests: 1024
+ particleRaycastBudget: 16
+ asyncUploadTimeSlice: 2
+ asyncUploadBufferSize: 16
+ asyncUploadPersistentBuffer: 1
+ resolutionScalingFixedDPIFactor: 1
+ customRenderPipeline: {fileID: 0}
+ excludedTargetPlatforms: []
+ - serializedVersion: 2
+ name: Medium
+ pixelLightCount: 1
+ shadows: 1
+ shadowResolution: 0
+ shadowProjection: 1
+ shadowCascades: 1
+ shadowDistance: 20
+ shadowNearPlaneOffset: 3
+ shadowCascade2Split: 0.33333334
+ shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
+ shadowmaskMode: 0
+ skinWeights: 2
+ textureQuality: 0
+ anisotropicTextures: 1
+ antiAliasing: 0
+ softParticles: 0
+ softVegetation: 0
+ realtimeReflectionProbes: 0
+ billboardsFaceCameraPosition: 0
+ vSyncCount: 1
+ lodBias: 0.7
+ maximumLODLevel: 0
+ streamingMipmapsActive: 0
+ streamingMipmapsAddAllCameras: 1
+ streamingMipmapsMemoryBudget: 512
+ streamingMipmapsRenderersPerFrame: 512
+ streamingMipmapsMaxLevelReduction: 2
+ streamingMipmapsMaxFileIORequests: 1024
+ particleRaycastBudget: 64
+ asyncUploadTimeSlice: 2
+ asyncUploadBufferSize: 16
+ asyncUploadPersistentBuffer: 1
+ resolutionScalingFixedDPIFactor: 1
+ customRenderPipeline: {fileID: 0}
+ excludedTargetPlatforms: []
+ - serializedVersion: 2
+ name: High
+ pixelLightCount: 2
+ shadows: 2
+ shadowResolution: 1
+ shadowProjection: 1
+ shadowCascades: 2
+ shadowDistance: 40
+ shadowNearPlaneOffset: 3
+ shadowCascade2Split: 0.33333334
+ shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
+ shadowmaskMode: 1
+ skinWeights: 2
+ textureQuality: 0
+ anisotropicTextures: 1
+ antiAliasing: 0
+ softParticles: 0
+ softVegetation: 1
+ realtimeReflectionProbes: 1
+ billboardsFaceCameraPosition: 1
+ vSyncCount: 1
+ lodBias: 1
+ maximumLODLevel: 0
+ streamingMipmapsActive: 0
+ streamingMipmapsAddAllCameras: 1
+ streamingMipmapsMemoryBudget: 512
+ streamingMipmapsRenderersPerFrame: 512
+ streamingMipmapsMaxLevelReduction: 2
+ streamingMipmapsMaxFileIORequests: 1024
+ particleRaycastBudget: 256
+ asyncUploadTimeSlice: 2
+ asyncUploadBufferSize: 16
+ asyncUploadPersistentBuffer: 1
+ resolutionScalingFixedDPIFactor: 1
+ customRenderPipeline: {fileID: 0}
+ excludedTargetPlatforms: []
+ - serializedVersion: 2
+ name: Very High
+ pixelLightCount: 3
+ shadows: 2
+ shadowResolution: 2
+ shadowProjection: 1
+ shadowCascades: 2
+ shadowDistance: 70
+ shadowNearPlaneOffset: 3
+ shadowCascade2Split: 0.33333334
+ shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
+ shadowmaskMode: 1
+ skinWeights: 4
+ textureQuality: 0
+ anisotropicTextures: 2
+ antiAliasing: 2
+ softParticles: 1
+ softVegetation: 1
+ realtimeReflectionProbes: 1
+ billboardsFaceCameraPosition: 1
+ vSyncCount: 1
+ lodBias: 1.5
+ maximumLODLevel: 0
+ streamingMipmapsActive: 0
+ streamingMipmapsAddAllCameras: 1
+ streamingMipmapsMemoryBudget: 512
+ streamingMipmapsRenderersPerFrame: 512
+ streamingMipmapsMaxLevelReduction: 2
+ streamingMipmapsMaxFileIORequests: 1024
+ particleRaycastBudget: 1024
+ asyncUploadTimeSlice: 2
+ asyncUploadBufferSize: 16
+ asyncUploadPersistentBuffer: 1
+ resolutionScalingFixedDPIFactor: 1
+ customRenderPipeline: {fileID: 0}
+ excludedTargetPlatforms: []
+ - serializedVersion: 2
+ name: Ultra
+ pixelLightCount: 4
+ shadows: 2
+ shadowResolution: 2
+ shadowProjection: 1
+ shadowCascades: 4
+ shadowDistance: 150
+ shadowNearPlaneOffset: 3
+ shadowCascade2Split: 0.33333334
+ shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
+ shadowmaskMode: 1
+ skinWeights: 255
+ textureQuality: 0
+ anisotropicTextures: 2
+ antiAliasing: 2
+ softParticles: 1
+ softVegetation: 1
+ realtimeReflectionProbes: 1
+ billboardsFaceCameraPosition: 1
+ vSyncCount: 1
+ lodBias: 2
+ maximumLODLevel: 0
+ streamingMipmapsActive: 0
+ streamingMipmapsAddAllCameras: 1
+ streamingMipmapsMemoryBudget: 512
+ streamingMipmapsRenderersPerFrame: 512
+ streamingMipmapsMaxLevelReduction: 2
+ streamingMipmapsMaxFileIORequests: 1024
+ particleRaycastBudget: 4096
+ asyncUploadTimeSlice: 2
+ asyncUploadBufferSize: 16
+ asyncUploadPersistentBuffer: 1
+ resolutionScalingFixedDPIFactor: 1
+ customRenderPipeline: {fileID: 0}
+ excludedTargetPlatforms: []
+ m_PerPlatformDefaultQuality:
+ Android: 2
+ Lumin: 5
+ GameCoreScarlett: 5
+ GameCoreXboxOne: 5
+ Nintendo Switch: 5
+ PS4: 5
+ PS5: 5
+ Stadia: 5
+ Standalone: 5
+ WebGL: 3
+ Windows Store Apps: 5
+ XboxOne: 5
+ iPhone: 2
+ tvOS: 2
diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset
new file mode 100644
index 0000000..1c92a78
--- /dev/null
+++ b/ProjectSettings/TagManager.asset
@@ -0,0 +1,43 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!78 &1
+TagManager:
+ serializedVersion: 2
+ tags: []
+ layers:
+ - Default
+ - TransparentFX
+ - Ignore Raycast
+ -
+ - Water
+ - UI
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+ m_SortingLayers:
+ - name: Default
+ uniqueID: 0
+ locked: 0
diff --git a/ProjectSettings/TimeManager.asset b/ProjectSettings/TimeManager.asset
new file mode 100644
index 0000000..558a017
--- /dev/null
+++ b/ProjectSettings/TimeManager.asset
@@ -0,0 +1,9 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!5 &1
+TimeManager:
+ m_ObjectHideFlags: 0
+ Fixed Timestep: 0.02
+ Maximum Allowed Timestep: 0.33333334
+ m_TimeScale: 1
+ Maximum Particle Timestep: 0.03
diff --git a/ProjectSettings/UnityConnectSettings.asset b/ProjectSettings/UnityConnectSettings.asset
new file mode 100644
index 0000000..4c136ae
--- /dev/null
+++ b/ProjectSettings/UnityConnectSettings.asset
@@ -0,0 +1,38 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!310 &1
+UnityConnectSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 1
+ m_Enabled: 0
+ m_TestMode: 0
+ m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
+ m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
+ m_ConfigUrl: https://config.uca.cloud.unity3d.com
+ m_DashboardUrl: https://dashboard.unity3d.com
+ m_CNEventUrl: https://cdp.cloud.unity.cn/v1/events
+ m_CNConfigUrl: https://cdp.cloud.unity.cn/config
+ m_TestInitMode: 0
+ CrashReportingSettings:
+ m_EventUrl: https://perf-events.cloud.unity.cn
+ m_Enabled: 0
+ m_LogBufferSize: 10
+ m_CaptureEditorExceptions: 1
+ UnityPurchasingSettings:
+ m_Enabled: 0
+ m_TestMode: 0
+ UnityAnalyticsSettings:
+ m_Enabled: 1
+ m_TestMode: 0
+ m_InitializeOnStartup: 1
+ m_PackageRequiringCoreStatsPresent: 0
+ UnityAdsSettings:
+ m_Enabled: 0
+ m_InitializeOnStartup: 1
+ m_TestMode: 0
+ m_IosGameId:
+ m_AndroidGameId:
+ m_GameIds: {}
+ m_GameId:
+ PerformanceReportingSettings:
+ m_Enabled: 0
diff --git a/ProjectSettings/VFXManager.asset b/ProjectSettings/VFXManager.asset
new file mode 100644
index 0000000..46f38e1
--- /dev/null
+++ b/ProjectSettings/VFXManager.asset
@@ -0,0 +1,14 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!937362698 &1
+VFXManager:
+ m_ObjectHideFlags: 0
+ m_IndirectShader: {fileID: 0}
+ m_CopyBufferShader: {fileID: 0}
+ m_SortShader: {fileID: 0}
+ m_StripUpdateShader: {fileID: 0}
+ m_RenderPipeSettingsPath:
+ m_FixedTimeStep: 0.016666668
+ m_MaxDeltaTime: 0.05
+ m_CompiledVersion: 0
+ m_RuntimeVersion: 0
diff --git a/ProjectSettings/VersionControlSettings.asset b/ProjectSettings/VersionControlSettings.asset
new file mode 100644
index 0000000..dca2881
--- /dev/null
+++ b/ProjectSettings/VersionControlSettings.asset
@@ -0,0 +1,8 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!890905787 &1
+VersionControlSettings:
+ m_ObjectHideFlags: 0
+ m_Mode: Visible Meta Files
+ m_CollabEditorSettings:
+ inProgressEnabled: 1
diff --git a/ProjectSettings/XRSettings.asset b/ProjectSettings/XRSettings.asset
new file mode 100644
index 0000000..482590c
--- /dev/null
+++ b/ProjectSettings/XRSettings.asset
@@ -0,0 +1,10 @@
+{
+ "m_SettingKeys": [
+ "VR Device Disabled",
+ "VR Device User Alert"
+ ],
+ "m_SettingValues": [
+ "False",
+ "False"
+ ]
+}
\ No newline at end of file
diff --git a/ProjectSettings/boot.config b/ProjectSettings/boot.config
new file mode 100644
index 0000000..e69de29
diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset
new file mode 100644
index 0000000..616d480
--- /dev/null
+++ b/UserSettings/EditorUserSettings.asset
@@ -0,0 +1,29 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!162 &1
+EditorUserSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 4
+ m_ConfigSettings:
+ RecentlyUsedSceneGuid-0:
+ value: 515250075c0c595e5f5a5e71122159444e4e4a2f7a7d7f602f284d66b4b76661
+ flags: 0
+ vcSharedLogLevel:
+ value: 0d5e400f0650
+ flags: 0
+ m_VCAutomaticAdd: 1
+ m_VCDebugCom: 0
+ m_VCDebugCmd: 0
+ m_VCDebugOut: 0
+ m_SemanticMergeMode: 2
+ m_DesiredImportWorkerCount: 6
+ m_StandbyImportWorkerCount: 2
+ m_IdleImportWorkerShutdownDelay: 60000
+ m_VCShowFailedCheckout: 1
+ m_VCOverwriteFailedCheckoutAssets: 1
+ m_VCProjectOverlayIcons: 1
+ m_VCHierarchyOverlayIcons: 1
+ m_VCOtherOverlayIcons: 1
+ m_VCAllowAsyncUpdate: 1
+ m_VCScanLocalPackagesOnConnect: 1
+ m_ArtifactGarbageCollection: 1
diff --git a/UserSettings/Search.settings b/UserSettings/Search.settings
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/UserSettings/Search.settings
@@ -0,0 +1 @@
+{}
\ No newline at end of file