Ciro Continisio
4 年前
当前提交
0e4359d4
共有 48 个文件被更改,包括 5793 次插入 和 0 次删除
-
8UOP1_Project/Assets/Addons.meta
-
8UOP1_Project/Assets/Addons/DOTween.meta
-
1001UOP1_Project/Assets/Addons/DOTween/DOTween.XML
-
7UOP1_Project/Assets/Addons/DOTween/DOTween.XML.meta
-
1001UOP1_Project/Assets/Addons/DOTween/DOTween.dll
-
33UOP1_Project/Assets/Addons/DOTween/DOTween.dll.meta
-
8UOP1_Project/Assets/Addons/DOTween/Editor.meta
-
107UOP1_Project/Assets/Addons/DOTween/Editor/DOTweenEditor.XML
-
7UOP1_Project/Assets/Addons/DOTween/Editor/DOTweenEditor.XML.meta
-
1001UOP1_Project/Assets/Addons/DOTween/Editor/DOTweenEditor.dll
-
33UOP1_Project/Assets/Addons/DOTween/Editor/DOTweenEditor.dll.meta
-
8UOP1_Project/Assets/Addons/DOTween/Editor/Imgs.meta
-
6UOP1_Project/Assets/Addons/DOTween/Editor/Imgs/DOTweenIcon.png
-
92UOP1_Project/Assets/Addons/DOTween/Editor/Imgs/DOTweenIcon.png.meta
-
17UOP1_Project/Assets/Addons/DOTween/Editor/Imgs/Footer.png
-
92UOP1_Project/Assets/Addons/DOTween/Editor/Imgs/Footer.png.meta
-
16UOP1_Project/Assets/Addons/DOTween/Editor/Imgs/Footer_dark.png
-
92UOP1_Project/Assets/Addons/DOTween/Editor/Imgs/Footer_dark.png.meta
-
106UOP1_Project/Assets/Addons/DOTween/Editor/Imgs/Header.jpg
-
92UOP1_Project/Assets/Addons/DOTween/Editor/Imgs/Header.jpg.meta
-
8UOP1_Project/Assets/Addons/DOTween/Modules.meta
-
202UOP1_Project/Assets/Addons/DOTween/Modules/DOTweenModuleAudio.cs
-
11UOP1_Project/Assets/Addons/DOTween/Modules/DOTweenModuleAudio.cs.meta
-
216UOP1_Project/Assets/Addons/DOTween/Modules/DOTweenModulePhysics.cs
-
11UOP1_Project/Assets/Addons/DOTween/Modules/DOTweenModulePhysics.cs.meta
-
168UOP1_Project/Assets/Addons/DOTween/Modules/DOTweenModulePhysics2D.cs
-
11UOP1_Project/Assets/Addons/DOTween/Modules/DOTweenModulePhysics2D.cs.meta
-
93UOP1_Project/Assets/Addons/DOTween/Modules/DOTweenModuleSprite.cs
-
11UOP1_Project/Assets/Addons/DOTween/Modules/DOTweenModuleSprite.cs.meta
-
634UOP1_Project/Assets/Addons/DOTween/Modules/DOTweenModuleUI.cs
-
11UOP1_Project/Assets/Addons/DOTween/Modules/DOTweenModuleUI.cs.meta
-
403UOP1_Project/Assets/Addons/DOTween/Modules/DOTweenModuleUnityVersion.cs
-
11UOP1_Project/Assets/Addons/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta
-
155UOP1_Project/Assets/Addons/DOTween/Modules/DOTweenModuleUtils.cs
-
11UOP1_Project/Assets/Addons/DOTween/Modules/DOTweenModuleUtils.cs.meta
-
8UOP1_Project/Assets/Addons/DOTween/Resources.meta
-
50UOP1_Project/Assets/Addons/DOTween/Resources/DOTweenSettings.asset
-
8UOP1_Project/Assets/Addons/DOTween/Resources/DOTweenSettings.asset.meta
-
29UOP1_Project/Assets/Addons/DOTween/readme.txt
-
7UOP1_Project/Assets/Addons/DOTween/readme.txt.meta
-
0/UOP1_Project/Assets/Addons/TextMeshPro
-
0/UOP1_Project/Assets/Addons/TextMeshPro.meta
|
|||
fileFormatVersion: 2 |
|||
guid: 842a9983b7f70274cb3b399622cbf485 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 8ff1d417c75f0174e95472828b6f02f3 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
UOP1_Project/Assets/Addons/DOTween/DOTween.XML
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: d209543b0485e4b4eaca3122f4503154 |
|||
TextScriptImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
UOP1_Project/Assets/Addons/DOTween/DOTween.dll
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: f16c0e8569a2eec4b9056c309a21778f |
|||
PluginImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
iconMap: {} |
|||
executionOrder: {} |
|||
defineConstraints: [] |
|||
isPreloaded: 0 |
|||
isOverridable: 0 |
|||
isExplicitlyReferenced: 0 |
|||
validateReferences: 1 |
|||
platformData: |
|||
- first: |
|||
Any: |
|||
second: |
|||
enabled: 1 |
|||
settings: {} |
|||
- first: |
|||
Editor: Editor |
|||
second: |
|||
enabled: 0 |
|||
settings: |
|||
DefaultValueInitialized: true |
|||
- first: |
|||
Windows Store Apps: WindowsStoreApps |
|||
second: |
|||
enabled: 0 |
|||
settings: |
|||
CPU: AnyCPU |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 7a57de16993ebbf4680a8b7953d5fcf5 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
<?xml version="1.0"?> |
|||
<doc> |
|||
<assembly> |
|||
<name>DOTweenEditor</name> |
|||
</assembly> |
|||
<members> |
|||
<member name="M:DG.DOTweenEditor.DOTweenEditorPreview.Start(System.Action)"> |
|||
<summary> |
|||
Starts the update loop of tween in the editor. Has no effect during playMode. |
|||
</summary> |
|||
<param name="onPreviewUpdated">Eventual callback to call after every update</param> |
|||
</member> |
|||
<member name="M:DG.DOTweenEditor.DOTweenEditorPreview.Stop(System.Boolean)"> |
|||
<summary> |
|||
Stops the update loop and clears the onPreviewUpdated callback. |
|||
</summary> |
|||
<param name="resetTweenTargets">If TRUE also resets the tweened objects to their original state</param> |
|||
</member> |
|||
<member name="M:DG.DOTweenEditor.DOTweenEditorPreview.PrepareTweenForPreview(DG.Tweening.Tween,System.Boolean,System.Boolean,System.Boolean)"> |
|||
<summary> |
|||
Readies the tween for editor preview by setting its UpdateType to Manual plus eventual extra settings. |
|||
</summary> |
|||
<param name="t">The tween to ready</param> |
|||
<param name="clearCallbacks">If TRUE (recommended) removes all callbacks (OnComplete/Rewind/etc)</param> |
|||
<param name="preventAutoKill">If TRUE prevents the tween from being auto-killed at completion</param> |
|||
<param name="andPlay">If TRUE starts playing the tween immediately</param> |
|||
</member> |
|||
<member name="F:DG.DOTweenEditor.EditorVersion.Version"> |
|||
<summary>Full major version + first minor version (ex: 2018.1f)</summary> |
|||
</member> |
|||
<member name="F:DG.DOTweenEditor.EditorVersion.MajorVersion"> |
|||
<summary>Major version</summary> |
|||
</member> |
|||
<member name="F:DG.DOTweenEditor.EditorVersion.MinorVersion"> |
|||
<summary>First minor version (ex: in 2018.1 it would be 1)</summary> |
|||
</member> |
|||
<member name="M:DG.DOTweenEditor.EditorUtils.SetEditorTexture(UnityEngine.Texture2D,UnityEngine.FilterMode,System.Int32)"> |
|||
<summary> |
|||
Checks that the given editor texture use the correct import settings, |
|||
and applies them if they're incorrect. |
|||
</summary> |
|||
</member> |
|||
<member name="M:DG.DOTweenEditor.EditorUtils.DOTweenSetupRequired"> |
|||
<summary> |
|||
Returns TRUE if setup is required |
|||
</summary> |
|||
</member> |
|||
<member name="M:DG.DOTweenEditor.EditorUtils.AssetExists(System.String)"> |
|||
<summary> |
|||
Returns TRUE if the file/directory at the given path exists. |
|||
</summary> |
|||
<param name="adbPath">Path, relative to Unity's project folder</param> |
|||
<returns></returns> |
|||
</member> |
|||
<member name="M:DG.DOTweenEditor.EditorUtils.ADBPathToFullPath(System.String)"> |
|||
<summary> |
|||
Converts the given project-relative path to a full path, |
|||
with backward (\) slashes). |
|||
</summary> |
|||
</member> |
|||
<member name="M:DG.DOTweenEditor.EditorUtils.FullPathToADBPath(System.String)"> |
|||
<summary> |
|||
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). |
|||
</summary> |
|||
</member> |
|||
<member name="M:DG.DOTweenEditor.EditorUtils.ConnectToSourceAsset``1(System.String,System.Boolean)"> |
|||
<summary> |
|||
Connects to a <see cref="T:UnityEngine.ScriptableObject"/> 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). |
|||
</summary> |
|||
<typeparam name="T">Asset type</typeparam> |
|||
<param name="adbFilePath">File path (relative to Unity's project folder)</param> |
|||
<param name="createIfMissing">If TRUE and the requested asset doesn't exist, forces its creation</param> |
|||
</member> |
|||
<member name="M:DG.DOTweenEditor.EditorUtils.GetAssemblyFilePath(System.Reflection.Assembly)"> |
|||
<summary> |
|||
Full path for the given loaded assembly, assembly file included |
|||
</summary> |
|||
</member> |
|||
<member name="M:DG.DOTweenEditor.EditorUtils.AddGlobalDefine(System.String)"> |
|||
<summary> |
|||
Adds the given global define if it's not already present |
|||
</summary> |
|||
</member> |
|||
<member name="M:DG.DOTweenEditor.EditorUtils.RemoveGlobalDefine(System.String)"> |
|||
<summary> |
|||
Removes the given global define if it's present |
|||
</summary> |
|||
</member> |
|||
<member name="M:DG.DOTweenEditor.EditorUtils.HasGlobalDefine(System.String,System.Nullable{UnityEditor.BuildTargetGroup})"> |
|||
<summary> |
|||
Returns TRUE if the given global define is present in all the <see cref="T:UnityEditor.BuildTargetGroup"/> |
|||
or only in the given <see cref="T:UnityEditor.BuildTargetGroup"/>, depending on passed parameters.<para/> |
|||
</summary> |
|||
<param name="id"></param> |
|||
<param name="buildTargetGroup"><see cref="T:UnityEditor.BuildTargetGroup"/>to use. Leave NULL to check in all of them.</param> |
|||
</member> |
|||
<member name="T:DG.DOTweenEditor.DOTweenDefines"> |
|||
<summary> |
|||
Not used as menu item anymore, but as a utiity function |
|||
</summary> |
|||
</member> |
|||
</members> |
|||
</doc> |
|
|||
fileFormatVersion: 2 |
|||
guid: a1a4433a86613ec4a93d37f349f22a90 |
|||
TextScriptImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
UOP1_Project/Assets/Addons/DOTween/Editor/DOTweenEditor.dll
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 6d95d62208a88ca4da5fdcf7ff6b3e01 |
|||
PluginImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
iconMap: {} |
|||
executionOrder: {} |
|||
defineConstraints: [] |
|||
isPreloaded: 0 |
|||
isOverridable: 0 |
|||
isExplicitlyReferenced: 0 |
|||
validateReferences: 1 |
|||
platformData: |
|||
- first: |
|||
Any: |
|||
second: |
|||
enabled: 0 |
|||
settings: {} |
|||
- first: |
|||
Editor: Editor |
|||
second: |
|||
enabled: 1 |
|||
settings: |
|||
DefaultValueInitialized: true |
|||
- first: |
|||
Windows Store Apps: WindowsStoreApps |
|||
second: |
|||
enabled: 0 |
|||
settings: |
|||
CPU: AnyCPU |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 604606d9951597647b4228fe32113e27 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: d505a6a4ef747b0428b36886b2f2fc83 |
|||
TextureImporter: |
|||
internalIDToNameTable: [] |
|||
externalObjects: {} |
|||
serializedVersion: 11 |
|||
mipmaps: |
|||
mipMapMode: 0 |
|||
enableMipMap: 1 |
|||
sRGBTexture: 1 |
|||
linearTexture: 0 |
|||
fadeOut: 0 |
|||
borderMipMap: 0 |
|||
mipMapsPreserveCoverage: 0 |
|||
alphaTestReferenceValue: 0.5 |
|||
mipMapFadeDistanceStart: 1 |
|||
mipMapFadeDistanceEnd: 3 |
|||
bumpmap: |
|||
convertToNormalMap: 0 |
|||
externalNormalMap: 0 |
|||
heightScale: 0.25 |
|||
normalMapFilter: 0 |
|||
isReadable: 0 |
|||
streamingMipmaps: 0 |
|||
streamingMipmapsPriority: 0 |
|||
grayScaleToAlpha: 0 |
|||
generateCubemap: 6 |
|||
cubemapConvolution: 0 |
|||
seamlessCubemap: 0 |
|||
textureFormat: 1 |
|||
maxTextureSize: 2048 |
|||
textureSettings: |
|||
serializedVersion: 2 |
|||
filterMode: -1 |
|||
aniso: -1 |
|||
mipBias: -100 |
|||
wrapU: -1 |
|||
wrapV: -1 |
|||
wrapW: -1 |
|||
nPOTScale: 1 |
|||
lightmap: 0 |
|||
compressionQuality: 50 |
|||
spriteMode: 0 |
|||
spriteExtrude: 1 |
|||
spriteMeshType: 1 |
|||
alignment: 0 |
|||
spritePivot: {x: 0.5, y: 0.5} |
|||
spritePixelsToUnits: 100 |
|||
spriteBorder: {x: 0, y: 0, z: 0, w: 0} |
|||
spriteGenerateFallbackPhysicsShape: 1 |
|||
alphaUsage: 1 |
|||
alphaIsTransparency: 0 |
|||
spriteTessellationDetail: -1 |
|||
textureType: 0 |
|||
textureShape: 1 |
|||
singleChannelComponent: 0 |
|||
maxTextureSizeSet: 0 |
|||
compressionQualitySet: 0 |
|||
textureFormatSet: 0 |
|||
applyGammaDecoding: 0 |
|||
platformSettings: |
|||
- serializedVersion: 3 |
|||
buildTarget: DefaultTexturePlatform |
|||
maxTextureSize: 2048 |
|||
resizeAlgorithm: 0 |
|||
textureFormat: -1 |
|||
textureCompression: 1 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
androidETC2FallbackOverride: 0 |
|||
forceMaximumCompressionQuality_BC6H_BC7: 0 |
|||
spriteSheet: |
|||
serializedVersion: 2 |
|||
sprites: [] |
|||
outline: [] |
|||
physicsShape: [] |
|||
bones: [] |
|||
spriteID: |
|||
internalID: 0 |
|||
vertices: [] |
|||
indices: |
|||
edges: [] |
|||
weights: [] |
|||
secondaryTextures: [] |
|||
spritePackingTag: |
|||
pSDRemoveMatte: 0 |
|||
pSDShowRemoveMatteOption: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: b0d96cbfd0ddebd43ae4c09c1ebe529d |
|||
TextureImporter: |
|||
internalIDToNameTable: [] |
|||
externalObjects: {} |
|||
serializedVersion: 11 |
|||
mipmaps: |
|||
mipMapMode: 0 |
|||
enableMipMap: 0 |
|||
sRGBTexture: 1 |
|||
linearTexture: 0 |
|||
fadeOut: 0 |
|||
borderMipMap: 0 |
|||
mipMapsPreserveCoverage: 0 |
|||
alphaTestReferenceValue: 0.5 |
|||
mipMapFadeDistanceStart: 1 |
|||
mipMapFadeDistanceEnd: 3 |
|||
bumpmap: |
|||
convertToNormalMap: 0 |
|||
externalNormalMap: 0 |
|||
heightScale: 0.25 |
|||
normalMapFilter: 0 |
|||
isReadable: 0 |
|||
streamingMipmaps: 0 |
|||
streamingMipmapsPriority: 0 |
|||
grayScaleToAlpha: 0 |
|||
generateCubemap: 6 |
|||
cubemapConvolution: 0 |
|||
seamlessCubemap: 0 |
|||
textureFormat: 1 |
|||
maxTextureSize: 2048 |
|||
textureSettings: |
|||
serializedVersion: 2 |
|||
filterMode: 1 |
|||
aniso: 1 |
|||
mipBias: -100 |
|||
wrapU: 1 |
|||
wrapV: 1 |
|||
wrapW: 1 |
|||
nPOTScale: 0 |
|||
lightmap: 0 |
|||
compressionQuality: 50 |
|||
spriteMode: 0 |
|||
spriteExtrude: 1 |
|||
spriteMeshType: 1 |
|||
alignment: 0 |
|||
spritePivot: {x: 0.5, y: 0.5} |
|||
spritePixelsToUnits: 100 |
|||
spriteBorder: {x: 0, y: 0, z: 0, w: 0} |
|||
spriteGenerateFallbackPhysicsShape: 1 |
|||
alphaUsage: 1 |
|||
alphaIsTransparency: 1 |
|||
spriteTessellationDetail: -1 |
|||
textureType: 2 |
|||
textureShape: 1 |
|||
singleChannelComponent: 0 |
|||
maxTextureSizeSet: 0 |
|||
compressionQualitySet: 0 |
|||
textureFormatSet: 0 |
|||
applyGammaDecoding: 0 |
|||
platformSettings: |
|||
- serializedVersion: 3 |
|||
buildTarget: DefaultTexturePlatform |
|||
maxTextureSize: 256 |
|||
resizeAlgorithm: 0 |
|||
textureFormat: -1 |
|||
textureCompression: 1 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
androidETC2FallbackOverride: 0 |
|||
forceMaximumCompressionQuality_BC6H_BC7: 0 |
|||
spriteSheet: |
|||
serializedVersion: 2 |
|||
sprites: [] |
|||
outline: [] |
|||
physicsShape: [] |
|||
bones: [] |
|||
spriteID: |
|||
internalID: 0 |
|||
vertices: [] |
|||
indices: |
|||
edges: [] |
|||
weights: [] |
|||
secondaryTextures: [] |
|||
spritePackingTag: |
|||
pSDRemoveMatte: 0 |
|||
pSDShowRemoveMatteOption: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: a730b3290c54fe448946605b2acb1576 |
|||
TextureImporter: |
|||
internalIDToNameTable: [] |
|||
externalObjects: {} |
|||
serializedVersion: 11 |
|||
mipmaps: |
|||
mipMapMode: 0 |
|||
enableMipMap: 1 |
|||
sRGBTexture: 1 |
|||
linearTexture: 0 |
|||
fadeOut: 0 |
|||
borderMipMap: 0 |
|||
mipMapsPreserveCoverage: 0 |
|||
alphaTestReferenceValue: 0.5 |
|||
mipMapFadeDistanceStart: 1 |
|||
mipMapFadeDistanceEnd: 3 |
|||
bumpmap: |
|||
convertToNormalMap: 0 |
|||
externalNormalMap: 0 |
|||
heightScale: 0.25 |
|||
normalMapFilter: 0 |
|||
isReadable: 0 |
|||
streamingMipmaps: 0 |
|||
streamingMipmapsPriority: 0 |
|||
grayScaleToAlpha: 0 |
|||
generateCubemap: 6 |
|||
cubemapConvolution: 0 |
|||
seamlessCubemap: 0 |
|||
textureFormat: 1 |
|||
maxTextureSize: 2048 |
|||
textureSettings: |
|||
serializedVersion: 2 |
|||
filterMode: -1 |
|||
aniso: -1 |
|||
mipBias: -100 |
|||
wrapU: -1 |
|||
wrapV: -1 |
|||
wrapW: -1 |
|||
nPOTScale: 1 |
|||
lightmap: 0 |
|||
compressionQuality: 50 |
|||
spriteMode: 0 |
|||
spriteExtrude: 1 |
|||
spriteMeshType: 1 |
|||
alignment: 0 |
|||
spritePivot: {x: 0.5, y: 0.5} |
|||
spritePixelsToUnits: 100 |
|||
spriteBorder: {x: 0, y: 0, z: 0, w: 0} |
|||
spriteGenerateFallbackPhysicsShape: 1 |
|||
alphaUsage: 1 |
|||
alphaIsTransparency: 0 |
|||
spriteTessellationDetail: -1 |
|||
textureType: 0 |
|||
textureShape: 1 |
|||
singleChannelComponent: 0 |
|||
maxTextureSizeSet: 0 |
|||
compressionQualitySet: 0 |
|||
textureFormatSet: 0 |
|||
applyGammaDecoding: 0 |
|||
platformSettings: |
|||
- serializedVersion: 3 |
|||
buildTarget: DefaultTexturePlatform |
|||
maxTextureSize: 2048 |
|||
resizeAlgorithm: 0 |
|||
textureFormat: -1 |
|||
textureCompression: 1 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
androidETC2FallbackOverride: 0 |
|||
forceMaximumCompressionQuality_BC6H_BC7: 0 |
|||
spriteSheet: |
|||
serializedVersion: 2 |
|||
sprites: [] |
|||
outline: [] |
|||
physicsShape: [] |
|||
bones: [] |
|||
spriteID: |
|||
internalID: 0 |
|||
vertices: [] |
|||
indices: |
|||
edges: [] |
|||
weights: [] |
|||
secondaryTextures: [] |
|||
spritePackingTag: |
|||
pSDRemoveMatte: 0 |
|||
pSDShowRemoveMatteOption: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 3f8dfbcb58bf93e4aa17eb08fa2dc461 |
|||
TextureImporter: |
|||
internalIDToNameTable: [] |
|||
externalObjects: {} |
|||
serializedVersion: 11 |
|||
mipmaps: |
|||
mipMapMode: 0 |
|||
enableMipMap: 0 |
|||
sRGBTexture: 1 |
|||
linearTexture: 0 |
|||
fadeOut: 0 |
|||
borderMipMap: 0 |
|||
mipMapsPreserveCoverage: 0 |
|||
alphaTestReferenceValue: 0.5 |
|||
mipMapFadeDistanceStart: 1 |
|||
mipMapFadeDistanceEnd: 3 |
|||
bumpmap: |
|||
convertToNormalMap: 0 |
|||
externalNormalMap: 0 |
|||
heightScale: 0.25 |
|||
normalMapFilter: 0 |
|||
isReadable: 0 |
|||
streamingMipmaps: 0 |
|||
streamingMipmapsPriority: 0 |
|||
grayScaleToAlpha: 0 |
|||
generateCubemap: 6 |
|||
cubemapConvolution: 0 |
|||
seamlessCubemap: 0 |
|||
textureFormat: 1 |
|||
maxTextureSize: 2048 |
|||
textureSettings: |
|||
serializedVersion: 2 |
|||
filterMode: 1 |
|||
aniso: 1 |
|||
mipBias: -100 |
|||
wrapU: 1 |
|||
wrapV: 1 |
|||
wrapW: 1 |
|||
nPOTScale: 0 |
|||
lightmap: 0 |
|||
compressionQuality: 50 |
|||
spriteMode: 0 |
|||
spriteExtrude: 1 |
|||
spriteMeshType: 1 |
|||
alignment: 0 |
|||
spritePivot: {x: 0.5, y: 0.5} |
|||
spritePixelsToUnits: 100 |
|||
spriteBorder: {x: 0, y: 0, z: 0, w: 0} |
|||
spriteGenerateFallbackPhysicsShape: 1 |
|||
alphaUsage: 1 |
|||
alphaIsTransparency: 1 |
|||
spriteTessellationDetail: -1 |
|||
textureType: 2 |
|||
textureShape: 1 |
|||
singleChannelComponent: 0 |
|||
maxTextureSizeSet: 0 |
|||
compressionQualitySet: 0 |
|||
textureFormatSet: 0 |
|||
applyGammaDecoding: 0 |
|||
platformSettings: |
|||
- serializedVersion: 3 |
|||
buildTarget: DefaultTexturePlatform |
|||
maxTextureSize: 512 |
|||
resizeAlgorithm: 0 |
|||
textureFormat: -1 |
|||
textureCompression: 1 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
androidETC2FallbackOverride: 0 |
|||
forceMaximumCompressionQuality_BC6H_BC7: 0 |
|||
spriteSheet: |
|||
serializedVersion: 2 |
|||
sprites: [] |
|||
outline: [] |
|||
physicsShape: [] |
|||
bones: [] |
|||
spriteID: |
|||
internalID: 0 |
|||
vertices: [] |
|||
indices: |
|||
edges: [] |
|||
weights: [] |
|||
secondaryTextures: [] |
|||
spritePackingTag: |
|||
pSDRemoveMatte: 0 |
|||
pSDShowRemoveMatteOption: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 88d7727bea2dbd44d8e62584722637bf |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
// Author: Daniele Giardini - http://www.demigiant.com
|
|||
// Created: 2018/07/13
|
|||
|
|||
#if true // MODULE_MARKER
|
|||
using System; |
|||
using DG.Tweening.Core; |
|||
using DG.Tweening.Plugins.Options; |
|||
using UnityEngine; |
|||
#if UNITY_5 || UNITY_2017_1_OR_NEWER
|
|||
using UnityEngine.Audio; // Required for AudioMixer
|
|||
#endif
|
|||
|
|||
#pragma warning disable 1591
|
|||
namespace DG.Tweening |
|||
{ |
|||
public static class DOTweenModuleAudio |
|||
{ |
|||
#region Shortcuts
|
|||
|
|||
#region Audio
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach (0 to 1)</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<float, float, FloatOptions> DOFade(this AudioSource target, float endValue, float duration) |
|||
{ |
|||
if (endValue < 0) endValue = 0; |
|||
else if (endValue > 1) endValue = 1; |
|||
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.volume, x => target.volume = x, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<float, float, FloatOptions> DOPitch(this AudioSource target, float endValue, float duration) |
|||
{ |
|||
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.pitch, x => target.pitch = x, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
#endregion
|
|||
|
|||
#if UNITY_5 || UNITY_2017_1_OR_NEWER
|
|||
#region AudioMixer (Unity 5 or Newer)
|
|||
|
|||
/// <summary>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.</summary>
|
|||
/// <param name="floatName">Name given to the exposed float to set</param>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<float, float, FloatOptions> DOSetFloat(this AudioMixer target, string floatName, float endValue, float duration) |
|||
{ |
|||
TweenerCore<float, float, FloatOptions> 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
|
|||
|
|||
/// <summary>
|
|||
/// 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)
|
|||
/// </summary>
|
|||
/// <param name="withCallbacks">For Sequences only: if TRUE also internal Sequence callbacks will be fired,
|
|||
/// otherwise they will be ignored</param>
|
|||
public static int DOComplete(this AudioMixer target, bool withCallbacks = false) |
|||
{ |
|||
return DOTween.Complete(target, withCallbacks); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 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.
|
|||
/// </summary>
|
|||
/// <param name="complete">If TRUE completes the tween before killing it</param>
|
|||
public static int DOKill(this AudioMixer target, bool complete = false) |
|||
{ |
|||
return DOTween.Kill(target, complete); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 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.
|
|||
/// </summary>
|
|||
public static int DOFlip(this AudioMixer target) |
|||
{ |
|||
return DOTween.Flip(target); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 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.
|
|||
/// </summary>
|
|||
/// <param name="to">Time position to reach
|
|||
/// (if higher than the whole tween duration the tween will simply reach its end)</param>
|
|||
/// <param name="andPlay">If TRUE will play the tween after reaching the given position, otherwise it will pause it</param>
|
|||
public static int DOGoto(this AudioMixer target, float to, bool andPlay = false) |
|||
{ |
|||
return DOTween.Goto(target, to, andPlay); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 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.
|
|||
/// </summary>
|
|||
public static int DOPause(this AudioMixer target) |
|||
{ |
|||
return DOTween.Pause(target); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 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.
|
|||
/// </summary>
|
|||
public static int DOPlay(this AudioMixer target) |
|||
{ |
|||
return DOTween.Play(target); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 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.
|
|||
/// </summary>
|
|||
public static int DOPlayBackwards(this AudioMixer target) |
|||
{ |
|||
return DOTween.PlayBackwards(target); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 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.
|
|||
/// </summary>
|
|||
public static int DOPlayForward(this AudioMixer target) |
|||
{ |
|||
return DOTween.PlayForward(target); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 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.
|
|||
/// </summary>
|
|||
public static int DORestart(this AudioMixer target) |
|||
{ |
|||
return DOTween.Restart(target); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 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.
|
|||
/// </summary>
|
|||
public static int DORewind(this AudioMixer target) |
|||
{ |
|||
return DOTween.Rewind(target); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 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.
|
|||
/// </summary>
|
|||
public static int DOSmoothRewind(this AudioMixer target) |
|||
{ |
|||
return DOTween.SmoothRewind(target); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 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.
|
|||
/// </summary>
|
|||
public static int DOTogglePause(this AudioMixer target) |
|||
{ |
|||
return DOTween.TogglePause(target); |
|||
} |
|||
|
|||
#endregion
|
|||
|
|||
#endregion
|
|||
#endif
|
|||
|
|||
#endregion
|
|||
} |
|||
} |
|||
#endif
|
|
|||
fileFormatVersion: 2 |
|||
guid: 4cde37c8a976c6e48ae12cda5085f752 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
// Author: Daniele Giardini - http://www.demigiant.com
|
|||
// Created: 2018/07/13
|
|||
|
|||
#if false // 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
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector3, Vector3, VectorOptions> DOMove(this Rigidbody target, Vector3 endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, endValue, duration); |
|||
t.SetOptions(snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector3, Vector3, VectorOptions> DOMoveX(this Rigidbody target, float endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue, 0, 0), duration); |
|||
t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector3, Vector3, VectorOptions> DOMoveY(this Rigidbody target, float endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, endValue, 0), duration); |
|||
t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector3, Vector3, VectorOptions> DOMoveZ(this Rigidbody target, float endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue), duration); |
|||
t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="mode">Rotation mode</param>
|
|||
public static TweenerCore<Quaternion, Vector3, QuaternionOptions> DORotate(this Rigidbody target, Vector3 endValue, float duration, RotateMode mode = RotateMode.Fast) |
|||
{ |
|||
TweenerCore<Quaternion, Vector3, QuaternionOptions> t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration); |
|||
t.SetTarget(target); |
|||
t.plugOptions.rotateMode = mode; |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="towards">The position to look at</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="axisConstraint">Eventual axis constraint for the rotation</param>
|
|||
/// <param name="up">The vector that defines in which direction up is (default: Vector3.up)</param>
|
|||
public static TweenerCore<Quaternion, Vector3, QuaternionOptions> DOLookAt(this Rigidbody target, Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3? up = null) |
|||
{ |
|||
TweenerCore<Quaternion, Vector3, QuaternionOptions> 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
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param>
|
|||
/// <param name="jumpPower">Power of the jump (the max height of the jump is represented by this plus the final Y offset)</param>
|
|||
/// <param name="numJumps">Total number of jumps</param>
|
|||
/// <param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
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; |
|||
} |
|||
|
|||
/// <summary>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.
|
|||
/// <para>NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened.</para>
|
|||
/// <para>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.</para></summary>
|
|||
/// <param name="path">The waypoints to go through</param>
|
|||
/// <param name="duration">The duration of the tween</param>
|
|||
/// <param name="pathType">The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)</param>
|
|||
/// <param name="pathMode">The path mode: 3D, side-scroller 2D, top-down 2D</param>
|
|||
/// <param name="resolution">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</param>
|
|||
/// <param name="gizmoColor">The color of the path (shown when gizmos are active in the Play panel and the tween is running)</param>
|
|||
public static TweenerCore<Vector3, Path, PathOptions> 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<Vector3, Path, PathOptions> 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; |
|||
} |
|||
/// <summary>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
|
|||
/// <para>NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened.</para>
|
|||
/// <para>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.</para></summary>
|
|||
/// <param name="path">The waypoint to go through</param>
|
|||
/// <param name="duration">The duration of the tween</param>
|
|||
/// <param name="pathType">The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)</param>
|
|||
/// <param name="pathMode">The path mode: 3D, side-scroller 2D, top-down 2D</param>
|
|||
/// <param name="resolution">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</param>
|
|||
/// <param name="gizmoColor">The color of the path (shown when gizmos are active in the Play panel and the tween is running)</param>
|
|||
public static TweenerCore<Vector3, Path, PathOptions> 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<Vector3, Path, PathOptions> 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<Vector3, Path, PathOptions> DOPath( |
|||
this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D |
|||
) |
|||
{ |
|||
TweenerCore<Vector3, Path, PathOptions> 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<Vector3, Path, PathOptions> DOLocalPath( |
|||
this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D |
|||
) |
|||
{ |
|||
Transform trans = target.transform; |
|||
TweenerCore<Vector3, Path, PathOptions> 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
|
|
|||
fileFormatVersion: 2 |
|||
guid: 239ee1fd6b0ceaf4490d19bf99b21308 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
// Author: Daniele Giardini - http://www.demigiant.com
|
|||
// Created: 2018/07/13
|
|||
|
|||
#if false && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER
|
|||
using System; |
|||
using DG.Tweening.Core; |
|||
using DG.Tweening.Plugins; |
|||
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
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOMove(this Rigidbody2D target, Vector2 endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, endValue, duration); |
|||
t.SetOptions(snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOMoveX(this Rigidbody2D target, float endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, new Vector2(endValue, 0), duration); |
|||
t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOMoveY(this Rigidbody2D target, float endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, new Vector2(0, endValue), duration); |
|||
t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<float, float, FloatOptions> DORotate(this Rigidbody2D target, float endValue, float duration) |
|||
{ |
|||
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
#region Special
|
|||
|
|||
/// <summary>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.
|
|||
/// <para>IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position</para></summary>
|
|||
/// <param name="endValue">The end value to reach</param>
|
|||
/// <param name="jumpPower">Power of the jump (the max height of the jump is represented by this plus the final Y offset)</param>
|
|||
/// <param name="numJumps">Total number of jumps</param>
|
|||
/// <param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
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; |
|||
} |
|||
|
|||
/// <summary>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.
|
|||
/// <para>NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened.</para>
|
|||
/// <para>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.</para></summary>
|
|||
/// <param name="path">The waypoints to go through</param>
|
|||
/// <param name="duration">The duration of the tween</param>
|
|||
/// <param name="pathType">The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)</param>
|
|||
/// <param name="pathMode">The path mode: 3D, side-scroller 2D, top-down 2D</param>
|
|||
/// <param name="resolution">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</param>
|
|||
/// <param name="gizmoColor">The color of the path (shown when gizmos are active in the Play panel and the tween is running)</param>
|
|||
public static TweenerCore<Vector3, Path, PathOptions> 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<Vector3, Path, PathOptions> 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.isRigidbody = true; |
|||
t.plugOptions.mode = pathMode; |
|||
return t; |
|||
} |
|||
/// <summary>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
|
|||
/// <para>NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened.</para>
|
|||
/// <para>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.</para></summary>
|
|||
/// <param name="path">The waypoint to go through</param>
|
|||
/// <param name="duration">The duration of the tween</param>
|
|||
/// <param name="pathType">The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)</param>
|
|||
/// <param name="pathMode">The path mode: 3D, side-scroller 2D, top-down 2D</param>
|
|||
/// <param name="resolution">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</param>
|
|||
/// <param name="gizmoColor">The color of the path (shown when gizmos are active in the Play panel and the tween is running)</param>
|
|||
public static TweenerCore<Vector3, Path, PathOptions> 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<Vector3, Path, PathOptions> 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.isRigidbody = true; |
|||
t.plugOptions.mode = pathMode; |
|||
t.plugOptions.useLocalPosition = true; |
|||
return t; |
|||
} |
|||
|
|||
#endregion
|
|||
|
|||
#endregion
|
|||
|
|||
#endregion
|
|||
} |
|||
} |
|||
#endif
|
|
|||
fileFormatVersion: 2 |
|||
guid: 2593cc87497082141b346c6ef55a7ef3 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
// Author: Daniele Giardini - http://www.demigiant.com
|
|||
// Created: 2018/07/13
|
|||
|
|||
#if false && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER
|
|||
using System; |
|||
using UnityEngine; |
|||
using DG.Tweening.Core; |
|||
using DG.Tweening.Plugins.Options; |
|||
|
|||
#pragma warning disable 1591
|
|||
namespace DG.Tweening |
|||
{ |
|||
public static class DOTweenModuleSprite |
|||
{ |
|||
#region Shortcuts
|
|||
|
|||
#region SpriteRenderer
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<Color, Color, ColorOptions> DOColor(this SpriteRenderer target, Color endValue, float duration) |
|||
{ |
|||
TweenerCore<Color, Color, ColorOptions> t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<Color, Color, ColorOptions> DOFade(this SpriteRenderer target, float endValue, float duration) |
|||
{ |
|||
TweenerCore<Color, Color, ColorOptions> t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="gradient">The gradient to use</param><param name="duration">The duration of the tween</param>
|
|||
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
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The value to tween to</param><param name="duration">The duration of the tween</param>
|
|||
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
|
|
|||
fileFormatVersion: 2 |
|||
guid: 16d608fc9f17d744cbf43b91380c0592 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
// Author: Daniele Giardini - http://www.demigiant.com
|
|||
// Created: 2018/07/13
|
|||
|
|||
#if true && (UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER
|
|||
|
|||
using System; |
|||
using System.Globalization; |
|||
using UnityEngine; |
|||
using UnityEngine.UI; |
|||
using DG.Tweening.Core; |
|||
using DG.Tweening.Core.Enums; |
|||
using DG.Tweening.Plugins.Options; |
|||
|
|||
#pragma warning disable 1591
|
|||
namespace DG.Tweening |
|||
{ |
|||
public static class DOTweenModuleUI |
|||
{ |
|||
#region Shortcuts
|
|||
|
|||
#region CanvasGroup
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<float, float, FloatOptions> DOFade(this CanvasGroup target, float endValue, float duration) |
|||
{ |
|||
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.alpha, x => target.alpha = x, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
#endregion
|
|||
|
|||
#region Graphic
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<Color, Color, ColorOptions> DOColor(this Graphic target, Color endValue, float duration) |
|||
{ |
|||
TweenerCore<Color, Color, ColorOptions> t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<Color, Color, ColorOptions> DOFade(this Graphic target, float endValue, float duration) |
|||
{ |
|||
TweenerCore<Color, Color, ColorOptions> t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
#endregion
|
|||
|
|||
#region Image
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<Color, Color, ColorOptions> DOColor(this Image target, Color endValue, float duration) |
|||
{ |
|||
TweenerCore<Color, Color, ColorOptions> t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<Color, Color, ColorOptions> DOFade(this Image target, float endValue, float duration) |
|||
{ |
|||
TweenerCore<Color, Color, ColorOptions> t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach (0 to 1)</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<float, float, FloatOptions> DOFillAmount(this Image target, float endValue, float duration) |
|||
{ |
|||
if (endValue > 1) endValue = 1; |
|||
else if (endValue < 0) endValue = 0; |
|||
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.fillAmount, x => target.fillAmount = x, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="gradient">The gradient to use</param><param name="duration">The duration of the tween</param>
|
|||
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
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOFlexibleSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector2, Vector2, VectorOptions> 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; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOMinSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector2, Vector2, VectorOptions> 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; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOPreferredSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector2, Vector2, VectorOptions> 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
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<Color, Color, ColorOptions> DOColor(this Outline target, Color endValue, float duration) |
|||
{ |
|||
TweenerCore<Color, Color, ColorOptions> t = DOTween.To(() => target.effectColor, x => target.effectColor = x, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<Color, Color, ColorOptions> DOFade(this Outline target, float endValue, float duration) |
|||
{ |
|||
TweenerCore<Color, Color, ColorOptions> t = DOTween.ToAlpha(() => target.effectColor, x => target.effectColor = x, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOScale(this Outline target, Vector2 endValue, float duration) |
|||
{ |
|||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.effectDistance, x => target.effectDistance = x, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
#endregion
|
|||
|
|||
#region RectTransform
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOAnchorPos(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, endValue, duration); |
|||
t.SetOptions(snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOAnchorPosX(this RectTransform target, float endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue, 0), duration); |
|||
t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOAnchorPosY(this RectTransform target, float endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, endValue), duration); |
|||
t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector3, Vector3, VectorOptions> DOAnchorPos3D(this RectTransform target, Vector3 endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, endValue, duration); |
|||
t.SetOptions(snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector3, Vector3, VectorOptions> DOAnchorPos3DX(this RectTransform target, float endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(endValue, 0, 0), duration); |
|||
t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector3, Vector3, VectorOptions> DOAnchorPos3DY(this RectTransform target, float endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, endValue, 0), duration); |
|||
t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector3, Vector3, VectorOptions> DOAnchorPos3DZ(this RectTransform target, float endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, 0, endValue), duration); |
|||
t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOAnchorMax(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.anchorMax, x => target.anchorMax = x, endValue, duration); |
|||
t.SetOptions(snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOAnchorMin(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.anchorMin, x => target.anchorMin = x, endValue, duration); |
|||
t.SetOptions(snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOPivot(this RectTransform target, Vector2 endValue, float duration) |
|||
{ |
|||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.pivot, x => target.pivot = x, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOPivotX(this RectTransform target, float endValue, float duration) |
|||
{ |
|||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(endValue, 0), duration); |
|||
t.SetOptions(AxisConstraint.X).SetTarget(target); |
|||
return t; |
|||
} |
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOPivotY(this RectTransform target, float endValue, float duration) |
|||
{ |
|||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(0, endValue), duration); |
|||
t.SetOptions(AxisConstraint.Y).SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOSizeDelta(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.sizeDelta, x => target.sizeDelta = x, endValue, duration); |
|||
t.SetOptions(snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="punch">The direction and strength of the punch (added to the RectTransform's current position)</param>
|
|||
/// <param name="duration">The duration of the tween</param>
|
|||
/// <param name="vibrato">Indicates how much will the punch vibrate</param>
|
|||
/// <param name="elasticity">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</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
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); |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="duration">The duration of the tween</param>
|
|||
/// <param name="strength">The shake strength</param>
|
|||
/// <param name="vibrato">Indicates how much will the shake vibrate</param>
|
|||
/// <param name="randomness">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.</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
/// <param name="fadeOut">If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not</param>
|
|||
public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, float strength = 100, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true) |
|||
{ |
|||
return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, true, fadeOut) |
|||
.SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping); |
|||
} |
|||
/// <summary>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</summary>
|
|||
/// <param name="duration">The duration of the tween</param>
|
|||
/// <param name="strength">The shake strength on each axis</param>
|
|||
/// <param name="vibrato">Indicates how much will the shake vibrate</param>
|
|||
/// <param name="randomness">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.</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
/// <param name="fadeOut">If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not</param>
|
|||
public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, Vector2 strength, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true) |
|||
{ |
|||
return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, fadeOut) |
|||
.SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping); |
|||
} |
|||
|
|||
#region Special
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param>
|
|||
/// <param name="jumpPower">Power of the jump (the max height of the jump is represented by this plus the final Y offset)</param>
|
|||
/// <param name="numJumps">Total number of jumps</param>
|
|||
/// <param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
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
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
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); |
|||
} |
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
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); |
|||
} |
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
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
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|||
public static TweenerCore<float, float, FloatOptions> DOValue(this Slider target, float endValue, float duration, bool snapping = false) |
|||
{ |
|||
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.value, x => target.value = x, endValue, duration); |
|||
t.SetOptions(snapping).SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
#endregion
|
|||
|
|||
#region Text
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<Color, Color, ColorOptions> DOColor(this Text target, Color endValue, float duration) |
|||
{ |
|||
TweenerCore<Color, Color, ColorOptions> t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Tweens a Text's text from one integer to another, with options for thousands separators
|
|||
/// </summary>
|
|||
/// <param name="fromValue">The value to start from</param>
|
|||
/// <param name="endValue">The end value to reach</param>
|
|||
/// <param name="duration">The duration of the tween</param>
|
|||
/// <param name="addThousandsSeparator">If TRUE (default) also adds thousands separators</param>
|
|||
/// <param name="culture">The <see cref="CultureInfo"/> to use (InvariantCulture if NULL)</param>
|
|||
public static TweenerCore<int, int, NoOptions> 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<int, int, NoOptions> t = DOTween.To(() => v, x => { |
|||
v = x; |
|||
target.text = addThousandsSeparator |
|||
? v.ToString("N0", cInfo) |
|||
: v.ToString(); |
|||
}, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<Color, Color, ColorOptions> DOFade(this Text target, float endValue, float duration) |
|||
{ |
|||
TweenerCore<Color, Color, ColorOptions> t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end string to tween to</param><param name="duration">The duration of the tween</param>
|
|||
/// <param name="richTextEnabled">If TRUE (default), rich text will be interpreted correctly while animated,
|
|||
/// otherwise all tags will be considered as normal text</param>
|
|||
/// <param name="scrambleMode">The type of scramble mode to use, if any</param>
|
|||
/// <param name="scrambleChars">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</param>
|
|||
public static TweenerCore<string, string, StringOptions> 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<string, string, StringOptions> 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
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The value to tween to</param><param name="duration">The duration of the tween</param>
|
|||
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
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The value to tween to</param><param name="duration">The duration of the tween</param>
|
|||
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
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The value to tween to</param><param name="duration">The duration of the tween</param>
|
|||
public static Tweener DOBlendableColor(this Text target, Color endValue, float duration) |
|||
{ |
|||
endValue = endValue - target.color; |
|||
Color to = new Color(0, 0, 0, 0); |
|||
return DOTween.To(() => to, x => { |
|||
Color diff = x - to; |
|||
to = x; |
|||
target.color += diff; |
|||
}, endValue, duration) |
|||
.Blendable().SetTarget(target); |
|||
} |
|||
|
|||
#endregion
|
|||
|
|||
#endregion
|
|||
|
|||
#endregion
|
|||
|
|||
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
|
|||
// ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████
|
|||
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
|
|||
|
|||
public static class Utils |
|||
{ |
|||
/// <summary>
|
|||
/// Converts the anchoredPosition of the first RectTransform to the second RectTransform,
|
|||
/// taking into consideration offset, anchors and pivot, and returns the new anchoredPosition
|
|||
/// </summary>
|
|||
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
|
|
|||
fileFormatVersion: 2 |
|||
guid: 2d4c73db7be7e7f47be573e82bb9f64a |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
// 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 System.Threading.Tasks; |
|||
#endif
|
|||
|
|||
#pragma warning disable 1591
|
|||
namespace DG.Tweening |
|||
{ |
|||
/// <summary>
|
|||
/// Shortcuts/functions that are not strictly related to specific Modules
|
|||
/// but are available only on some Unity versions
|
|||
/// </summary>
|
|||
public static class DOTweenModuleUnityVersion |
|||
{ |
|||
#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER
|
|||
#region Unity 4.3 or Newer
|
|||
|
|||
#region Material
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="gradient">The gradient to use</param><param name="duration">The duration of the tween</param>
|
|||
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; |
|||
} |
|||
/// <summary>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</summary>
|
|||
/// <param name="gradient">The gradient to use</param>
|
|||
/// <param name="property">The name of the material property to tween (like _Tint or _SpecColor)</param>
|
|||
/// <param name="duration">The duration of the tween</param>
|
|||
public static Sequence DOGradientColor(this Material target, Gradient gradient, string property, float duration) |
|||
{ |
|||
Sequence s = DOTween.Sequence(); |
|||
GradientColorKey[] colors = gradient.colorKeys; |
|||
int len = colors.Length; |
|||
for (int i = 0; i < len; ++i) { |
|||
GradientColorKey c = colors[i]; |
|||
if (i == 0 && c.time <= 0) { |
|||
target.SetColor(property, c.color); |
|||
continue; |
|||
} |
|||
float colorDuration = i == len - 1 |
|||
? duration - s.Duration(false) // Verifies that total duration is correct
|
|||
: duration * (i == 0 ? c.time : c.time - colors[i - 1].time); |
|||
s.Append(target.DOColor(c.color, property, colorDuration).SetEase(Ease.Linear)); |
|||
} |
|||
s.SetTarget(target); |
|||
return s; |
|||
} |
|||
|
|||
#endregion
|
|||
|
|||
#endregion
|
|||
#endif
|
|||
|
|||
#if UNITY_5_3_OR_NEWER || UNITY_2017_1_OR_NEWER
|
|||
#region Unity 5.3 or Newer
|
|||
|
|||
#region CustomYieldInstructions
|
|||
|
|||
/// <summary>
|
|||
/// Returns a <see cref="CustomYieldInstruction"/> that waits until the tween is killed or complete.
|
|||
/// It can be used inside a coroutine as a yield.
|
|||
/// <para>Example usage:</para><code>yield return myTween.WaitForCompletion(true);</code>
|
|||
/// </summary>
|
|||
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); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Returns a <see cref="CustomYieldInstruction"/> that waits until the tween is killed or rewinded.
|
|||
/// It can be used inside a coroutine as a yield.
|
|||
/// <para>Example usage:</para><code>yield return myTween.WaitForRewind();</code>
|
|||
/// </summary>
|
|||
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); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Returns a <see cref="CustomYieldInstruction"/> that waits until the tween is killed.
|
|||
/// It can be used inside a coroutine as a yield.
|
|||
/// <para>Example usage:</para><code>yield return myTween.WaitForKill();</code>
|
|||
/// </summary>
|
|||
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); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Returns a <see cref="CustomYieldInstruction"/> 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.
|
|||
/// <para>Example usage:</para><code>yield return myTween.WaitForElapsedLoops(2);</code>
|
|||
/// </summary>
|
|||
/// <param name="elapsedLoops">Elapsed loops to wait for</param>
|
|||
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); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Returns a <see cref="CustomYieldInstruction"/> 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.
|
|||
/// <para>Example usage:</para><code>yield return myTween.WaitForPosition(2.5f);</code>
|
|||
/// </summary>
|
|||
/// <param name="position">Position (loops included, delays excluded) to wait for</param>
|
|||
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); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Returns a <see cref="CustomYieldInstruction"/> 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.
|
|||
/// <para>Example usage:</para><code>yield return myTween.WaitForStart();</code>
|
|||
/// </summary>
|
|||
public static CustomYieldInstruction WaitForStart(this Tween t, bool returnCustomYieldInstruction) |
|||
{ |
|||
if (!t.active) { |
|||
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); |
|||
return null; |
|||
} |
|||
return new DOTweenCYInstruction.WaitForStart(t); |
|||
} |
|||
|
|||
#endregion
|
|||
|
|||
#endregion
|
|||
#endif
|
|||
|
|||
#if UNITY_2018_1_OR_NEWER
|
|||
#region Unity 2018.1 or Newer
|
|||
|
|||
#region Material
|
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param>
|
|||
/// <param name="propertyID">The ID of the material property to tween (also called nameID in Unity's manual)</param>
|
|||
/// <param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOOffset(this Material target, Vector2 endValue, int propertyID, float duration) |
|||
{ |
|||
if (!target.HasProperty(propertyID)) { |
|||
if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID); |
|||
return null; |
|||
} |
|||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.GetTextureOffset(propertyID), x => target.SetTextureOffset(propertyID, x), endValue, duration); |
|||
t.SetTarget(target); |
|||
return t; |
|||
} |
|||
|
|||
/// <summary>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</summary>
|
|||
/// <param name="endValue">The end value to reach</param>
|
|||
/// <param name="propertyID">The ID of the material property to tween (also called nameID in Unity's manual)</param>
|
|||
/// <param name="duration">The duration of the tween</param>
|
|||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOTiling(this Material target, Vector2 endValue, int propertyID, float duration) |
|||
{ |
|||
if (!target.HasProperty(propertyID)) { |
|||
if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID); |
|||
return null; |
|||
} |
|||
TweenerCore<Vector2, Vector2, VectorOptions> 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 (NET_4_6 || NET_STANDARD_2_0)
|
|||
|
|||
#region Async Instructions
|
|||
|
|||
/// <summary>
|
|||
/// Returns an async <see cref="Task"/> that waits until the tween is killed or complete.
|
|||
/// It can be used inside an async operation.
|
|||
/// <para>Example usage:</para><code>await myTween.WaitForCompletion();</code>
|
|||
/// </summary>
|
|||
public static async Task AsyncWaitForCompletion(this Tween t) |
|||
{ |
|||
if (!t.active) { |
|||
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); |
|||
return; |
|||
} |
|||
while (t.active && !t.IsComplete()) await Task.Yield(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Returns an async <see cref="Task"/> that waits until the tween is killed or rewinded.
|
|||
/// It can be used inside an async operation.
|
|||
/// <para>Example usage:</para><code>await myTween.AsyncWaitForRewind();</code>
|
|||
/// </summary>
|
|||
public static async 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 Task.Yield(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Returns an async <see cref="Task"/> that waits until the tween is killed.
|
|||
/// It can be used inside an async operation.
|
|||
/// <para>Example usage:</para><code>await myTween.AsyncWaitForKill();</code>
|
|||
/// </summary>
|
|||
public static async Task AsyncWaitForKill(this Tween t) |
|||
{ |
|||
if (!t.active) { |
|||
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); |
|||
return; |
|||
} |
|||
while (t.active) await Task.Yield(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Returns an async <see cref="Task"/> that waits until the tween is killed or has gone through the given amount of loops.
|
|||
/// It can be used inside an async operation.
|
|||
/// <para>Example usage:</para><code>await myTween.AsyncWaitForElapsedLoops();</code>
|
|||
/// </summary>
|
|||
/// <param name="elapsedLoops">Elapsed loops to wait for</param>
|
|||
public static async 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 Task.Yield(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Returns an async <see cref="Task"/> 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.
|
|||
/// <para>Example usage:</para><code>await myTween.AsyncWaitForPosition();</code>
|
|||
/// </summary>
|
|||
/// <param name="position">Position (loops included, delays excluded) to wait for</param>
|
|||
public static async 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 Task.Yield(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Returns an async <see cref="Task"/> that waits until the tween is killed.
|
|||
/// It can be used inside an async operation.
|
|||
/// <para>Example usage:</para><code>await myTween.AsyncWaitForKill();</code>
|
|||
/// </summary>
|
|||
public static async Task AsyncWaitForStart(this Tween t) |
|||
{ |
|||
if (!t.active) { |
|||
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); |
|||
return; |
|||
} |
|||
while (t.active && !t.playedOnce) await Task.Yield(); |
|||
} |
|||
|
|||
#endregion
|
|||
#endif
|
|||
|
|||
#endregion
|
|||
|
|||
#endregion
|
|||
#endif
|
|||
} |
|||
|
|||
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
|
|||
// ███ CLASSES █████████████████████████████████████████████████████████████████████████████████████████████████████████
|
|||
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
|
|||
|
|||
#if UNITY_5_3_OR_NEWER || UNITY_2017_1_OR_NEWER
|
|||
public static class DOTweenCYInstruction |
|||
{ |
|||
public class WaitForCompletion : CustomYieldInstruction |
|||
{ |
|||
public override bool keepWaiting { get { |
|||
return t.active && !t.IsComplete(); |
|||
}} |
|||
readonly Tween t; |
|||
public WaitForCompletion(Tween tween) |
|||
{ |
|||
t = tween; |
|||
} |
|||
} |
|||
|
|||
public class WaitForRewind : CustomYieldInstruction |
|||
{ |
|||
public override bool keepWaiting { get { |
|||
return t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0); |
|||
}} |
|||
readonly Tween t; |
|||
public WaitForRewind(Tween tween) |
|||
{ |
|||
t = tween; |
|||
} |
|||
} |
|||
|
|||
public class WaitForKill : CustomYieldInstruction |
|||
{ |
|||
public override bool keepWaiting { get { |
|||
return t.active; |
|||
}} |
|||
readonly Tween t; |
|||
public WaitForKill(Tween tween) |
|||
{ |
|||
t = tween; |
|||
} |
|||
} |
|||
|
|||
public class WaitForElapsedLoops : CustomYieldInstruction |
|||
{ |
|||
public override bool keepWaiting { get { |
|||
return t.active && t.CompletedLoops() < elapsedLoops; |
|||
}} |
|||
readonly Tween t; |
|||
readonly int elapsedLoops; |
|||
public WaitForElapsedLoops(Tween tween, int elapsedLoops) |
|||
{ |
|||
t = tween; |
|||
this.elapsedLoops = elapsedLoops; |
|||
} |
|||
} |
|||
|
|||
public class WaitForPosition : CustomYieldInstruction |
|||
{ |
|||
public override bool keepWaiting { get { |
|||
return t.active && t.position * (t.CompletedLoops() + 1) < position; |
|||
}} |
|||
readonly Tween t; |
|||
readonly float position; |
|||
public WaitForPosition(Tween tween, float position) |
|||
{ |
|||
t = tween; |
|||
this.position = position; |
|||
} |
|||
} |
|||
|
|||
public class WaitForStart : CustomYieldInstruction |
|||
{ |
|||
public override bool keepWaiting { get { |
|||
return t.active && !t.playedOnce; |
|||
}} |
|||
readonly Tween t; |
|||
public WaitForStart(Tween tween) |
|||
{ |
|||
t = tween; |
|||
} |
|||
} |
|||
} |
|||
#endif
|
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: e036b0c57150080408124da75866ed96 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
// 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 |
|||
{ |
|||
/// <summary>
|
|||
/// 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
|
|||
/// </summary>
|
|||
public static class DOTweenModuleUtils |
|||
{ |
|||
static bool _initialized; |
|||
|
|||
#region Reflection
|
|||
|
|||
/// <summary>
|
|||
/// Called via Reflection by DOTweenComponent on Awake
|
|||
/// </summary>
|
|||
#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 false // 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 false // PHYSICS2D_MARKER
|
|||
return target.GetComponent<Rigidbody2D>() != 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 false // PHYSICS_MARKER
|
|||
return target.GetComponent<Rigidbody>() != null; |
|||
#else
|
|||
return false; |
|||
#endif
|
|||
} |
|||
|
|||
// Called via Reflection by DOTweenPath
|
|||
#if UNITY_2018_1_OR_NEWER
|
|||
[UnityEngine.Scripting.Preserve] |
|||
#endif
|
|||
public static TweenerCore<Vector3, Path, PathOptions> CreateDOTweenPathTween( |
|||
MonoBehaviour target, bool tweenRigidbody, bool isLocal, Path path, float duration, PathMode pathMode |
|||
){ |
|||
TweenerCore<Vector3, Path, PathOptions> t; |
|||
#if false // PHYSICS_MARKER
|
|||
Rigidbody rBody = tweenRigidbody ? target.GetComponent<Rigidbody>() : null; |
|||
if (tweenRigidbody && rBody != null) { |
|||
t = isLocal |
|||
? rBody.DOLocalPath(path, duration, pathMode) |
|||
: rBody.DOPath(path, duration, pathMode); |
|||
} else { |
|||
t = isLocal |
|||
? target.transform.DOLocalPath(path, duration, pathMode) |
|||
: target.transform.DOPath(path, duration, pathMode); |
|||
} |
|||
#else
|
|||
t = isLocal |
|||
? target.transform.DOLocalPath(path, duration, pathMode) |
|||
: target.transform.DOPath(path, duration, pathMode); |
|||
#endif
|
|||
return t; |
|||
} |
|||
|
|||
#endregion
|
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: ce2b7642621873849a26059b622bb1b7 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 493e64464ac65ba41b45382c13de9361 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!114 &11400000 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 0} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 16995157, guid: f16c0e8569a2eec4b9056c309a21778f, type: 3} |
|||
m_Name: DOTweenSettings |
|||
m_EditorClassIdentifier: |
|||
useSafeMode: 1 |
|||
safeModeOptions: |
|||
nestedTweenFailureBehaviour: 0 |
|||
timeScale: 1 |
|||
useSmoothDeltaTime: 0 |
|||
maxSmoothUnscaledTime: 0.15 |
|||
rewindCallbackMode: 0 |
|||
showUnityEditorReport: 0 |
|||
logBehaviour: 0 |
|||
drawGizmos: 1 |
|||
defaultRecyclable: 0 |
|||
defaultAutoPlay: 3 |
|||
defaultUpdateType: 0 |
|||
defaultTimeScaleIndependent: 0 |
|||
defaultEaseType: 6 |
|||
defaultEaseOvershootOrAmplitude: 1.70158 |
|||
defaultEasePeriod: 0 |
|||
defaultAutoKill: 1 |
|||
defaultLoopType: 0 |
|||
debugMode: 0 |
|||
debugStoreTargetId: 0 |
|||
showPreviewPanel: 1 |
|||
storeSettingsLocation: 0 |
|||
modules: |
|||
showPanel: 0 |
|||
audioEnabled: 1 |
|||
physicsEnabled: 1 |
|||
physics2DEnabled: 1 |
|||
spriteEnabled: 1 |
|||
uiEnabled: 1 |
|||
textMeshProEnabled: 0 |
|||
tk2DEnabled: 0 |
|||
deAudioEnabled: 0 |
|||
deUnityExtendedEnabled: 0 |
|||
showPlayingTweens: 0 |
|||
showPausedTweens: 0 |
|
|||
fileFormatVersion: 2 |
|||
guid: 0c1f0ada672edd14098413b93f4d51eb |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 11400000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
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 |
|
|||
fileFormatVersion: 2 |
|||
guid: 870eb4e32b71c0141b605ae1295a9544 |
|||
TextScriptImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
撰写
预览
正在加载...
取消
保存
Reference in new issue