From cb3e7f6a26de1f51a5bfe71c67259f1782776ec0 Mon Sep 17 00:00:00 2001 From: Dimitris Gkanatsios Date: Fri, 22 Nov 2024 12:29:10 -0800 Subject: [PATCH] get project to work --- Assets/Editor/GoDummyPathEditor.cs | 504 --- .../{GoKit/base.meta => Demigiant.meta} | 3 +- Assets/Plugins/Demigiant/DOTween.meta | 21 + Assets/Plugins/Demigiant/DOTween/DOTween.XML | 3051 +++++++++++++++++ .../Demigiant/DOTween/DOTween.XML.meta | 4 + Assets/Plugins/Demigiant/DOTween/DOTween.dll | Bin 0 -> 174592 bytes .../Plugins/Demigiant/DOTween/DOTween.dll.mdb | Bin 0 -> 67400 bytes .../Demigiant/DOTween/DOTween.dll.mdb.meta | 4 + .../Demigiant/DOTween/DOTween.dll.meta | 22 + Assets/Plugins/Demigiant/DOTween/Editor.meta | 5 + .../DOTween/Editor/DOTweenEditor.XML | 110 + .../DOTween/Editor/DOTweenEditor.XML.meta | 4 + .../DOTween/Editor/DOTweenEditor.dll | Bin 0 -> 66560 bytes .../DOTween/Editor/DOTweenEditor.dll.mdb | Bin 0 -> 11777 bytes .../DOTween/Editor/DOTweenEditor.dll.mdb.meta | 4 + .../DOTween/Editor/DOTweenEditor.dll.meta | 22 + .../Demigiant/DOTween/Editor/Imgs.meta | 5 + .../DOTween/Editor/Imgs/DOTweenIcon.png | Bin 0 -> 1565 bytes .../DOTween/Editor/Imgs/DOTweenIcon.png.meta | 47 + .../DOTween/Editor/Imgs/DOTweenMiniIcon.png | Bin 0 -> 319 bytes .../Editor/Imgs/DOTweenMiniIcon.png.meta | 68 + .../Demigiant/DOTween/Editor/Imgs/Footer.png | Bin 0 -> 4409 bytes .../DOTween/Editor/Imgs/Footer.png.meta | 47 + .../DOTween/Editor/Imgs/Footer_dark.png | Bin 0 -> 4429 bytes .../DOTween/Editor/Imgs/Footer_dark.png.meta | 47 + .../Demigiant/DOTween/Editor/Imgs/Header.jpg | Bin 0 -> 22787 bytes .../DOTween/Editor/Imgs/Header.jpg.meta | 47 + Assets/Plugins/Demigiant/DOTween/Modules.meta | 5 + .../DOTween/Modules/DOTweenModuleAudio.cs | 202 ++ .../Modules/DOTweenModuleAudio.cs.meta} | 4 +- .../Modules/DOTweenModuleEPOOutline.cs | 146 + .../Modules/DOTweenModuleEPOOutline.cs.meta} | 4 +- .../DOTween/Modules/DOTweenModulePhysics.cs | 216 ++ .../Modules/DOTweenModulePhysics.cs.meta} | 4 +- .../DOTween/Modules/DOTweenModulePhysics2D.cs | 193 ++ .../Modules/DOTweenModulePhysics2D.cs.meta} | 4 +- .../DOTween/Modules/DOTweenModuleSprite.cs | 93 + .../Modules/DOTweenModuleSprite.cs.meta | 8 + .../DOTween/Modules/DOTweenModuleUI.cs | 662 ++++ .../DOTween/Modules/DOTweenModuleUI.cs.meta | 8 + .../Modules/DOTweenModuleUnityVersion.cs | 403 +++ .../Modules/DOTweenModuleUnityVersion.cs.meta | 8 + .../DOTween/Modules/DOTweenModuleUtils.cs | 167 + .../Modules/DOTweenModuleUtils.cs.meta | 8 + Assets/Plugins/Demigiant/DOTween/readme.txt | 29 + .../Plugins/Demigiant/DOTween/readme.txt.meta | 4 + Assets/Plugins/GoKit.meta | 7 - Assets/Plugins/GoKit/Go.cs | 406 --- Assets/Plugins/GoKit/GoDummyPath.cs | 31 - Assets/Plugins/GoKit/GoTween.cs | 341 -- Assets/Plugins/GoKit/GoTweenChain.cs | 147 - Assets/Plugins/GoKit/GoTweenChain.cs.meta | 10 - .../Plugins/GoKit/GoTweenCollectionConfig.cs | 122 - .../GoKit/GoTweenCollectionConfig.cs.meta | 10 - Assets/Plugins/GoKit/GoTweenConfig.cs | 533 --- Assets/Plugins/GoKit/GoTweenConfig.cs.meta | 10 - Assets/Plugins/GoKit/GoTweenFlow.cs | 83 - Assets/Plugins/GoKit/GoTweenFlow.cs.meta | 10 - Assets/Plugins/GoKit/base/AbstractGoTween.cs | 445 --- .../GoKit/base/AbstractGoTween.cs.meta | 10 - .../GoKit/base/AbstractGoTweenCollection.cs | 500 --- .../base/AbstractGoTweenCollection.cs.meta | 10 - Assets/Plugins/GoKit/easing/GoEaseBack.cs | 25 - .../Plugins/GoKit/easing/GoEaseBack.cs.meta | 10 - Assets/Plugins/GoKit/easing/GoEaseBounce.cs | 35 - .../Plugins/GoKit/easing/GoEaseBounce.cs.meta | 10 - Assets/Plugins/GoKit/easing/GoEaseCircular.cs | 24 - .../GoKit/easing/GoEaseCircular.cs.meta | 10 - Assets/Plugins/GoKit/easing/GoEaseCubic.cs | 21 - .../Plugins/GoKit/easing/GoEaseCubic.cs.meta | 10 - Assets/Plugins/GoKit/easing/GoEaseElastic.cs | 68 - .../GoKit/easing/GoEaseElastic.cs.meta | 10 - .../Plugins/GoKit/easing/GoEaseExponential.cs | 32 - .../GoKit/easing/GoEaseExponential.cs.meta | 10 - Assets/Plugins/GoKit/easing/GoEaseLinear.cs | 10 - .../Plugins/GoKit/easing/GoEaseLinear.cs.meta | 10 - .../Plugins/GoKit/easing/GoEaseQuadratic.cs | 21 - .../GoKit/easing/GoEaseQuadratic.cs.meta | 10 - Assets/Plugins/GoKit/easing/GoEaseQuartic.cs | 21 - .../GoKit/easing/GoEaseQuartic.cs.meta | 10 - Assets/Plugins/GoKit/easing/GoEaseQuintic.cs | 21 - .../GoKit/easing/GoEaseQuintic.cs.meta | 10 - .../Plugins/GoKit/easing/GoEaseSinusoidal.cs | 21 - .../GoKit/easing/GoEaseSinusoidal.cs.meta | 10 - .../GoKit/easing/easeEquationsLicense.txt | 33 - Assets/Plugins/GoKit/enums.meta | 7 - .../enums/GoDuplicatePropertyRuleType.cs | 15 - .../enums/GoDuplicatePropertyRuleType.cs.meta | 10 - Assets/Plugins/GoKit/enums/GoEaseType.cs | 50 - Assets/Plugins/GoKit/enums/GoEaseType.cs.meta | 10 - Assets/Plugins/GoKit/enums/GoLogLevel.cs | 11 - Assets/Plugins/GoKit/enums/GoLogLevel.cs.meta | 10 - Assets/Plugins/GoKit/enums/GoLookAtType.cs | 13 - .../Plugins/GoKit/enums/GoLookAtType.cs.meta | 10 - Assets/Plugins/GoKit/enums/GoLoopType.cs | 10 - Assets/Plugins/GoKit/enums/GoLoopType.cs.meta | 10 - Assets/Plugins/GoKit/enums/GoShakeType.cs | 11 - .../Plugins/GoKit/enums/GoShakeType.cs.meta | 10 - Assets/Plugins/GoKit/enums/GoSplineType.cs | 11 - .../Plugins/GoKit/enums/GoSplineType.cs.meta | 10 - Assets/Plugins/GoKit/enums/GoTweenState.cs | 11 - .../Plugins/GoKit/enums/GoTweenState.cs.meta | 10 - Assets/Plugins/GoKit/enums/GoUpdateType.cs | 11 - .../Plugins/GoKit/enums/GoUpdateType.cs.meta | 10 - Assets/Plugins/GoKit/extensions.meta | 7 - .../GoKit/extensions/GoKitTweenExtensions.cs | 124 - .../extensions/GoKitTweenExtensions.cs.meta | 10 - Assets/Plugins/GoKit/properties.meta | 7 - .../Plugins/GoKit/properties/GoTweenUtils.cs | 236 -- .../GoKit/properties/GoTweenUtils.cs.meta | 10 - .../Plugins/GoKit/properties/abstracts.meta | 7 - .../abstracts/AbstractColorTweenProperty.cs | 54 - .../AbstractColorTweenProperty.cs.meta | 10 - .../AbstractQuaternionTweenProperty.cs | 38 - .../AbstractQuaternionTweenProperty.cs.meta | 10 - .../abstracts/AbstractTweenProperty.cs | 112 - .../abstracts/AbstractTweenProperty.cs.meta | 10 - .../abstracts/AbstractVector3TweenProperty.cs | 49 - .../AbstractVector3TweenProperty.cs.meta | 10 - .../GoKit/properties/genericTypes.meta | 7 - .../genericTypes/ColorTweenProperty.cs | 59 - .../genericTypes/ColorTweenProperty.cs.meta | 10 - .../genericTypes/FloatTweenProperty.cs | 66 - .../genericTypes/FloatTweenProperty.cs.meta | 10 - .../genericTypes/IGenericProperty.cs | 12 - .../genericTypes/IGenericProperty.cs.meta | 10 - .../genericTypes/IntTweenProperty.cs | 68 - .../genericTypes/IntTweenProperty.cs.meta | 10 - .../genericTypes/Vector2TweenProperty.cs | 69 - .../genericTypes/Vector2TweenProperty.cs.meta | 10 - .../genericTypes/Vector3PathTweenProperty.cs | 69 - .../Vector3PathTweenProperty.cs.meta | 10 - .../genericTypes/Vector3TweenProperty.cs | 59 - .../genericTypes/Vector3TweenProperty.cs.meta | 10 - .../genericTypes/Vector3XTweenProperty.cs | 71 - .../Vector3XTweenProperty.cs.meta | 10 - .../genericTypes/Vector3YTweenProperty.cs | 46 - .../Vector3YTweenProperty.cs.meta | 10 - .../genericTypes/Vector3ZTweenProperty.cs | 46 - .../Vector3ZTweenProperty.cs.meta | 10 - .../genericTypes/Vector4TweenProperty.cs | 69 - .../genericTypes/Vector4TweenProperty.cs.meta | 10 - .../Plugins/GoKit/properties/smoothing.meta | 7 - .../smoothing/GoSmoothedQuaternion.cs | 123 - .../smoothing/GoSmoothedQuaternion.cs.meta | 10 - .../properties/smoothing/GoSmoothedVector3.cs | 101 - .../smoothing/GoSmoothedVector3.cs.meta | 10 - .../properties/smoothing/GoSmoothingType.cs | 9 - .../smoothing/GoSmoothingType.cs.meta | 10 - .../GoKit/properties/specificTypes.meta | 7 - .../specificTypes/EulerAnglesTweenProperty.cs | 80 - .../EulerAnglesTweenProperty.cs.meta | 10 - .../MaterialColorTweenProperty.cs | 63 - .../MaterialColorTweenProperty.cs.meta | 10 - .../PositionPathTweenProperty.cs | 131 - .../PositionPathTweenProperty.cs.meta | 10 - .../specificTypes/PositionTweenProperty.cs | 92 - .../PositionTweenProperty.cs.meta | 10 - .../RotationQuaternionTweenProperty.cs | 76 - .../RotationQuaternionTweenProperty.cs.meta | 10 - .../specificTypes/RotationTweenProperty.cs | 85 - .../RotationTweenProperty.cs.meta | 10 - .../specificTypes/ScalePathTweenProperty.cs | 77 - .../ScalePathTweenProperty.cs.meta | 10 - .../specificTypes/ScaleTweenProperty.cs | 59 - .../specificTypes/ScaleTweenProperty.cs.meta | 10 - .../specificTypes/ShakeTweenProperty.cs | 135 - .../specificTypes/ShakeTweenProperty.cs.meta | 10 - Assets/Plugins/GoKit/properties/splines.meta | 7 - .../splines/AbstractGoSplineSolver.cs | 105 - .../splines/AbstractGoSplineSolver.cs.meta | 10 - .../GoKit/properties/splines/GoSpline.cs | 240 -- .../GoKit/properties/splines/GoSpline.cs.meta | 10 - .../splines/GoSplineCatmullRomSolver.cs | 87 - .../splines/GoSplineCatmullRomSolver.cs.meta | 10 - .../splines/GoSplineCubicBezierSolver.cs | 46 - .../splines/GoSplineCubicBezierSolver.cs.meta | 10 - .../splines/GoSplineQuadraticBezierSolver.cs | 80 - .../GoSplineQuadraticBezierSolver.cs.meta | 10 - .../splines/GoSplineStraightLineSolver.cs | 100 - .../GoSplineStraightLineSolver.cs.meta | 10 - .../GoKit/easing.meta => Resources.meta} | 3 +- Assets/Resources/BillingMode.json | 1 + .../BillingMode.json.meta} | 3 +- Assets/Scripts/GameManager.cs | 22 +- Assets/Scripts/SlingShot.cs | 9 +- .../Blocks/INGAME_BLOCKS_WOOD_1.png.meta | 461 ++- ...rites__update__by_jared33-d5mg197.png.meta | 86 +- .../Sprites/backgrounds/bg_1 (z -1).png.meta | 77 +- .../backgrounds/middleground (z 0).png.meta | 77 +- .../Sprites/backgrounds/sky (z -3).png.meta | 77 +- Assets/Sprites/forest/forest-1.png.meta | 305 +- Assets/Sprites/forest/forest-2.png.meta | 292 +- Assets/Sprites/slingshot.png.meta | 99 +- ..._pig_sprites_by_chinzapep-d57z4bs.png.meta | 190 +- Logs/AssetImportWorker0.log | 227 ++ Logs/AssetImportWorker1.log | 221 ++ Logs/Packages-Update.log | 25 + Logs/shadercompiler-AssetImportWorker0.log | 6 + ...hadercompiler-UnityShaderCompiler.exe0.log | 101 + ...hadercompiler-UnityShaderCompiler.exe1.log | 12 + ...adercompiler-UnityShaderCompiler.exe10.log | 7 + ...adercompiler-UnityShaderCompiler.exe11.log | 7 + ...hadercompiler-UnityShaderCompiler.exe2.log | 9 + ...hadercompiler-UnityShaderCompiler.exe3.log | 7 + ...hadercompiler-UnityShaderCompiler.exe4.log | 7 + ...hadercompiler-UnityShaderCompiler.exe5.log | 7 + ...hadercompiler-UnityShaderCompiler.exe6.log | 7 + ...hadercompiler-UnityShaderCompiler.exe7.log | 7 + ...hadercompiler-UnityShaderCompiler.exe8.log | 7 + ...hadercompiler-UnityShaderCompiler.exe9.log | 7 + Packages/manifest.json | 20 +- Packages/packages-lock.json | 429 +++ ProjectSettings/MemorySettings.asset | 35 + ProjectSettings/PackageManagerSettings.asset | 36 + ProjectSettings/PresetManager.asset | Bin 4104 -> 146 bytes ProjectSettings/ProjectVersion.txt | 3 +- ProjectSettings/VFXManager.asset | 15 + ProjectSettings/VersionControlSettings.asset | 8 + ProjectSettings/boot.config | 0 README.md | 2 +- UserSettings/EditorUserSettings.asset | 28 + UserSettings/Layouts/default-2021.dwlt | 1007 ++++++ UserSettings/Search.settings | 1 + 224 files changed, 9439 insertions(+), 7386 deletions(-) delete mode 100644 Assets/Editor/GoDummyPathEditor.cs rename Assets/Plugins/{GoKit/base.meta => Demigiant.meta} (64%) create mode 100644 Assets/Plugins/Demigiant/DOTween.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/DOTween.XML create mode 100644 Assets/Plugins/Demigiant/DOTween/DOTween.XML.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/DOTween.dll create mode 100644 Assets/Plugins/Demigiant/DOTween/DOTween.dll.mdb create mode 100644 Assets/Plugins/Demigiant/DOTween/DOTween.dll.mdb.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/DOTween.dll.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/Imgs.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg create mode 100644 Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs rename Assets/{Editor/GoDummyPathEditor.cs.meta => Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta} (62%) create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs rename Assets/Plugins/{GoKit/Go.cs.meta => Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta} (68%) create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs rename Assets/Plugins/{GoKit/GoTween.cs.meta => Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta} (62%) create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs rename Assets/Plugins/{GoKit/GoDummyPath.cs.meta => Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta} (62%) create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/readme.txt create mode 100644 Assets/Plugins/Demigiant/DOTween/readme.txt.meta delete mode 100644 Assets/Plugins/GoKit.meta delete mode 100644 Assets/Plugins/GoKit/Go.cs delete mode 100644 Assets/Plugins/GoKit/GoDummyPath.cs delete mode 100644 Assets/Plugins/GoKit/GoTween.cs delete mode 100644 Assets/Plugins/GoKit/GoTweenChain.cs delete mode 100644 Assets/Plugins/GoKit/GoTweenChain.cs.meta delete mode 100644 Assets/Plugins/GoKit/GoTweenCollectionConfig.cs delete mode 100644 Assets/Plugins/GoKit/GoTweenCollectionConfig.cs.meta delete mode 100644 Assets/Plugins/GoKit/GoTweenConfig.cs delete mode 100644 Assets/Plugins/GoKit/GoTweenConfig.cs.meta delete mode 100644 Assets/Plugins/GoKit/GoTweenFlow.cs delete mode 100644 Assets/Plugins/GoKit/GoTweenFlow.cs.meta delete mode 100644 Assets/Plugins/GoKit/base/AbstractGoTween.cs delete mode 100644 Assets/Plugins/GoKit/base/AbstractGoTween.cs.meta delete mode 100644 Assets/Plugins/GoKit/base/AbstractGoTweenCollection.cs delete mode 100644 Assets/Plugins/GoKit/base/AbstractGoTweenCollection.cs.meta delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseBack.cs delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseBack.cs.meta delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseBounce.cs delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseBounce.cs.meta delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseCircular.cs delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseCircular.cs.meta delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseCubic.cs delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseCubic.cs.meta delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseElastic.cs delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseElastic.cs.meta delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseExponential.cs delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseExponential.cs.meta delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseLinear.cs delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseLinear.cs.meta delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseQuadratic.cs delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseQuadratic.cs.meta delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseQuartic.cs delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseQuartic.cs.meta delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseQuintic.cs delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseQuintic.cs.meta delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseSinusoidal.cs delete mode 100644 Assets/Plugins/GoKit/easing/GoEaseSinusoidal.cs.meta delete mode 100644 Assets/Plugins/GoKit/easing/easeEquationsLicense.txt delete mode 100644 Assets/Plugins/GoKit/enums.meta delete mode 100644 Assets/Plugins/GoKit/enums/GoDuplicatePropertyRuleType.cs delete mode 100644 Assets/Plugins/GoKit/enums/GoDuplicatePropertyRuleType.cs.meta delete mode 100644 Assets/Plugins/GoKit/enums/GoEaseType.cs delete mode 100644 Assets/Plugins/GoKit/enums/GoEaseType.cs.meta delete mode 100644 Assets/Plugins/GoKit/enums/GoLogLevel.cs delete mode 100644 Assets/Plugins/GoKit/enums/GoLogLevel.cs.meta delete mode 100644 Assets/Plugins/GoKit/enums/GoLookAtType.cs delete mode 100644 Assets/Plugins/GoKit/enums/GoLookAtType.cs.meta delete mode 100644 Assets/Plugins/GoKit/enums/GoLoopType.cs delete mode 100644 Assets/Plugins/GoKit/enums/GoLoopType.cs.meta delete mode 100644 Assets/Plugins/GoKit/enums/GoShakeType.cs delete mode 100644 Assets/Plugins/GoKit/enums/GoShakeType.cs.meta delete mode 100644 Assets/Plugins/GoKit/enums/GoSplineType.cs delete mode 100644 Assets/Plugins/GoKit/enums/GoSplineType.cs.meta delete mode 100644 Assets/Plugins/GoKit/enums/GoTweenState.cs delete mode 100644 Assets/Plugins/GoKit/enums/GoTweenState.cs.meta delete mode 100644 Assets/Plugins/GoKit/enums/GoUpdateType.cs delete mode 100644 Assets/Plugins/GoKit/enums/GoUpdateType.cs.meta delete mode 100644 Assets/Plugins/GoKit/extensions.meta delete mode 100644 Assets/Plugins/GoKit/extensions/GoKitTweenExtensions.cs delete mode 100644 Assets/Plugins/GoKit/extensions/GoKitTweenExtensions.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties.meta delete mode 100644 Assets/Plugins/GoKit/properties/GoTweenUtils.cs delete mode 100644 Assets/Plugins/GoKit/properties/GoTweenUtils.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/abstracts.meta delete mode 100644 Assets/Plugins/GoKit/properties/abstracts/AbstractColorTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/abstracts/AbstractColorTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/abstracts/AbstractQuaternionTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/abstracts/AbstractQuaternionTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/abstracts/AbstractTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/abstracts/AbstractTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/abstracts/AbstractVector3TweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/abstracts/AbstractVector3TweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes.meta delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/ColorTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/ColorTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/FloatTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/FloatTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/IGenericProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/IGenericProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/IntTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/IntTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/Vector2TweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/Vector2TweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/Vector3PathTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/Vector3PathTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/Vector3TweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/Vector3TweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/Vector3XTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/Vector3XTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/Vector3YTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/Vector3YTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/Vector3ZTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/Vector3ZTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/Vector4TweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/genericTypes/Vector4TweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/smoothing.meta delete mode 100644 Assets/Plugins/GoKit/properties/smoothing/GoSmoothedQuaternion.cs delete mode 100644 Assets/Plugins/GoKit/properties/smoothing/GoSmoothedQuaternion.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/smoothing/GoSmoothedVector3.cs delete mode 100644 Assets/Plugins/GoKit/properties/smoothing/GoSmoothedVector3.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/smoothing/GoSmoothingType.cs delete mode 100644 Assets/Plugins/GoKit/properties/smoothing/GoSmoothingType.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes.meta delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/EulerAnglesTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/EulerAnglesTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/MaterialColorTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/MaterialColorTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/PositionPathTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/PositionPathTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/PositionTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/PositionTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/RotationQuaternionTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/RotationQuaternionTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/RotationTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/RotationTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/ScalePathTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/ScalePathTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/ScaleTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/ScaleTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/ShakeTweenProperty.cs delete mode 100644 Assets/Plugins/GoKit/properties/specificTypes/ShakeTweenProperty.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/splines.meta delete mode 100644 Assets/Plugins/GoKit/properties/splines/AbstractGoSplineSolver.cs delete mode 100644 Assets/Plugins/GoKit/properties/splines/AbstractGoSplineSolver.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/splines/GoSpline.cs delete mode 100644 Assets/Plugins/GoKit/properties/splines/GoSpline.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/splines/GoSplineCatmullRomSolver.cs delete mode 100644 Assets/Plugins/GoKit/properties/splines/GoSplineCatmullRomSolver.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/splines/GoSplineCubicBezierSolver.cs delete mode 100644 Assets/Plugins/GoKit/properties/splines/GoSplineCubicBezierSolver.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/splines/GoSplineQuadraticBezierSolver.cs delete mode 100644 Assets/Plugins/GoKit/properties/splines/GoSplineQuadraticBezierSolver.cs.meta delete mode 100644 Assets/Plugins/GoKit/properties/splines/GoSplineStraightLineSolver.cs delete mode 100644 Assets/Plugins/GoKit/properties/splines/GoSplineStraightLineSolver.cs.meta rename Assets/{Plugins/GoKit/easing.meta => Resources.meta} (64%) create mode 100644 Assets/Resources/BillingMode.json rename Assets/{Plugins/GoKit/easing/easeEquationsLicense.txt.meta => Resources/BillingMode.json.meta} (61%) create mode 100644 Logs/AssetImportWorker0.log create mode 100644 Logs/AssetImportWorker1.log create mode 100644 Logs/Packages-Update.log create mode 100644 Logs/shadercompiler-AssetImportWorker0.log create mode 100644 Logs/shadercompiler-UnityShaderCompiler.exe0.log create mode 100644 Logs/shadercompiler-UnityShaderCompiler.exe1.log create mode 100644 Logs/shadercompiler-UnityShaderCompiler.exe10.log create mode 100644 Logs/shadercompiler-UnityShaderCompiler.exe11.log create mode 100644 Logs/shadercompiler-UnityShaderCompiler.exe2.log create mode 100644 Logs/shadercompiler-UnityShaderCompiler.exe3.log create mode 100644 Logs/shadercompiler-UnityShaderCompiler.exe4.log create mode 100644 Logs/shadercompiler-UnityShaderCompiler.exe5.log create mode 100644 Logs/shadercompiler-UnityShaderCompiler.exe6.log create mode 100644 Logs/shadercompiler-UnityShaderCompiler.exe7.log create mode 100644 Logs/shadercompiler-UnityShaderCompiler.exe8.log create mode 100644 Logs/shadercompiler-UnityShaderCompiler.exe9.log create mode 100644 Packages/packages-lock.json create mode 100644 ProjectSettings/MemorySettings.asset create mode 100644 ProjectSettings/PackageManagerSettings.asset create mode 100644 ProjectSettings/VFXManager.asset create mode 100644 ProjectSettings/VersionControlSettings.asset create mode 100644 ProjectSettings/boot.config create mode 100644 UserSettings/EditorUserSettings.asset create mode 100644 UserSettings/Layouts/default-2021.dwlt create mode 100644 UserSettings/Search.settings diff --git a/Assets/Editor/GoDummyPathEditor.cs b/Assets/Editor/GoDummyPathEditor.cs deleted file mode 100644 index 706ee24..0000000 --- a/Assets/Editor/GoDummyPathEditor.cs +++ /dev/null @@ -1,504 +0,0 @@ -using UnityEngine; -using UnityEditor; -using System.Collections; -using System.Linq; -using System.Collections.Generic; -using System.IO; - - - -[CustomEditor( typeof( GoDummyPath ) )] -public class GoDummyPathEditor : Editor -{ - private GoDummyPath _target; - private GUIStyle _labelStyle; - private GUIStyle _indexStyle; - - private int _insertIndex = 0; - private float _snapDistance = 5f; - private bool _showNodeDetails; - private bool _fileLoadSaveDetails; - private int _selectedNodeIndex = -1; - - - #region Monobehaviour and Editor - - void OnEnable() - { - // setup the font for the 'begin' 'end' text - _labelStyle = new GUIStyle(); - _labelStyle.fontStyle = FontStyle.Bold; - _labelStyle.normal.textColor = Color.white; - _labelStyle.fontSize = 16; - - _indexStyle = new GUIStyle(); - _indexStyle.fontStyle = FontStyle.Bold; - _indexStyle.normal.textColor = Color.white; - _indexStyle.fontSize = 12; - - _target = (GoDummyPath)target; - } - - - public override void OnInspectorGUI() - { - // what kind of handles shall we use? - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.PrefixLabel( "Use Standard Handles" ); - _target.useStandardHandles = EditorGUILayout.Toggle( _target.useStandardHandles ); - EditorGUILayout.EndHorizontal(); - - - // path name: - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.PrefixLabel( "Route Name" ); - _target.pathName = EditorGUILayout.TextField( _target.pathName ); - EditorGUILayout.EndHorizontal(); - - if( _target.pathName == string.Empty ) - _target.pathName = "route" + Random.Range( 1, 100000 ); - - - // path color: - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.PrefixLabel( "Route Color" ); - _target.pathColor = EditorGUILayout.ColorField( _target.pathColor ); - EditorGUILayout.EndHorizontal(); - - - // force straight lines: - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.PrefixLabel( "Force Straight Line Path" ); - _target.forceStraightLinePath = EditorGUILayout.Toggle( _target.forceStraightLinePath ); - EditorGUILayout.EndHorizontal(); - - - // resolution - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.PrefixLabel( "Editor Drawing Resolution" ); - _target.pathResolution = EditorGUILayout.IntSlider( _target.pathResolution, 2, 100 ); - EditorGUILayout.EndHorizontal(); - - - EditorGUILayout.Separator(); - - - // insert node - we need 3 or more nodes for insert to make sense - if( _target.nodes.Count > 2 ) - { - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.PrefixLabel( "Insert Node" ); - _insertIndex = EditorGUILayout.IntField( _insertIndex ); - if( GUILayout.Button( "Insert" ) ) - { - // validate the index - if( _insertIndex >= 0 && _insertIndex < _target.nodes.Count ) - { - // insert the node offsetting it a bit from the previous node - var copyNodeIndex = _insertIndex == 0 ? 0 : _insertIndex; - var copyNode = _target.nodes[copyNodeIndex]; - copyNode.x += 10; - copyNode.z += 10; - - insertNodeAtIndex( copyNode, _insertIndex ); - } - } - EditorGUILayout.EndHorizontal(); - } - - - // close route? - if( GUILayout.Button( "Close Path" ) ) - { - Undo.RecordObject( _target, "Path Vector Changed" ); - closeRoute(); - GUI.changed = true; - } - - - // shift the start point to the origin - if( GUILayout.Button( "Shift Path to Start at Origin" ) ) - { - Undo.RecordObject( _target, "Path Vector Changed" ); - - var offset = Vector3.zero; - - // see what kind of path we are. the simplest case is just a straight line - var path = new GoSpline( _target.nodes, _target.forceStraightLinePath ); - if( path.splineType == GoSplineType.StraightLine || _target.nodes.Count < 5 ) - offset = Vector3.zero - _target.nodes[0]; - else - offset = Vector3.zero - _target.nodes[1]; - - for( var i = 0; i < _target.nodes.Count; i++ ) - _target.nodes[i] += offset; - - GUI.changed = true; - } - - - // reverse - if( GUILayout.Button( "Reverse Path" ) ) - { - Undo.RecordObject( _target, "Path Vector Changed" ); - _target.nodes.Reverse(); - GUI.changed = true; - } - - - // persist to disk - EditorGUILayout.Space(); - EditorGUILayout.LabelField( "Save to/Read from Disk" ); - - EditorGUILayout.Space(); - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.PrefixLabel( "Serialize and Save Path" ); - if( GUILayout.Button( "Save" ) ) - { - var path = EditorUtility.SaveFilePanel( "Save path", Application.dataPath + "/StreamingAssets", _target.pathName + ".asset", "asset" ); - if( path != string.Empty ) - { - persistRouteToDisk( path ); - - // fetch the filename and set it as the routeName - _target.pathName = Path.GetFileName( path ).Replace( ".asset", string.Empty ); - GUI.changed = true; - } - } - EditorGUILayout.EndHorizontal(); - - - // load from disk - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.PrefixLabel( "Load saved path" ); - if( GUILayout.Button( "Load" ) ) - { - var path = EditorUtility.OpenFilePanel( "Choose path to load", Path.Combine( Application.dataPath, "StreamingAssets" ), "asset" ); - if( path != string.Empty ) - { - if( !File.Exists( path ) ) - { - EditorUtility.DisplayDialog( "File does not exist", "Path couldn't find the file you specified", "Close" ); - } - else - { - _target.nodes = GoSpline.bytesToVector3List( File.ReadAllBytes( path ) ); - _target.pathName = Path.GetFileName( path ).Replace( ".asset", string.Empty ); - GUI.changed = true; - } - } - } - EditorGUILayout.EndHorizontal(); - - - // node display - EditorGUILayout.Space(); - _showNodeDetails = EditorGUILayout.Foldout( _showNodeDetails, "Show Node Values" ); - if( _showNodeDetails ) - { - EditorGUI.indentLevel++; - for( int i = 0; i < _target.nodes.Count; i++ ) - _target.nodes[i] = EditorGUILayout.Vector3Field( "Node " + ( i + 1 ), _target.nodes[i] ); - EditorGUI.indentLevel--; - } - - - // instructions - EditorGUILayout.Space(); - EditorGUILayout.HelpBox( "While dragging a node, hold down Ctrl and slowly move the cursor to snap to a nearby point\n\n" + - "Click the 'Close Path' button to add a new node that will close out the current path.\n\n" + - "Hold Command while dragging a node to snap in 5 point increments\n\n" + - "Double click to add a new node at the end of the path\n\n" + - "Hold down alt while adding a node to prepend the new node at the front of the route\n\n" + - "Press delete or backspace to delete the selected node\n\n" + - "NOTE: make sure you have the pan tool selected while editing paths", MessageType.None ); - - - // update and redraw: - if( GUI.changed ) - { - EditorUtility.SetDirty( _target ); - Repaint(); - } - } - - - void OnSceneGUI() - { - if( !_target.gameObject.activeSelf ) - return; - - // handle current selection and node addition via double click or ctrl click - if( Event.current.type == EventType.MouseDown ) - { - var nearestIndex = getNearestNodeForMousePosition( Event.current.mousePosition ); - _selectedNodeIndex = nearestIndex; - - // double click to add - if( Event.current.clickCount > 1 ) - { - var translatedPoint = HandleUtility.GUIPointToWorldRay( Event.current.mousePosition ) - .GetPoint( ( _target.transform.position - Camera.current.transform.position ).magnitude ); - - Undo.RecordObject( _target, "Path Node Added" ); - - // if alt is down then prepend the node to the beginning - if( Event.current.alt ) - insertNodeAtIndex( translatedPoint, 0 ); - else - appendNodeAtPoint( translatedPoint ); - } - } - - - if( _selectedNodeIndex >= 0 ) - { - // shall we delete the selected node? - if( Event.current.keyCode == KeyCode.Delete || Event.current.keyCode == KeyCode.Backspace ) - { - if (_target.nodes.Count > 2) { - Undo.RecordObject( _target, "Path Node Deleted" ); - Event.current.Use(); - removeNodeAtIndex( _selectedNodeIndex ); - _selectedNodeIndex = -1; - } - } - } - - - if( _target.nodes.Count > 1 ) - { - // allow path adjustment undo: - Undo.RecordObject( _target, "Path Vector Changed" ); - - // path begin and end labels or just one if the path is closed - if( Vector3.Distance( _target.nodes[0], _target.nodes[_target.nodes.Count - 1] ) == 0 ) - { - Handles.Label( _target.nodes[0], " Begin and End", _labelStyle ); - } - else - { - Handles.Label( _target.nodes[0], " Begin", _labelStyle ); - Handles.Label( _target.nodes[_target.nodes.Count - 1], " End", _labelStyle ); - } - - // draw the handles, arrows and lines - drawRoute(); - - for( var i = 0; i < _target.nodes.Count; i++ ) - { - Handles.color = _target.pathColor; - - // dont label the first and last nodes - if( i > 0 && i < _target.nodes.Count - 1 ) - Handles.Label( _target.nodes[i] + new Vector3( 3f, 0, 1.5f ), i.ToString(), _indexStyle ); - - Handles.color = Color.white; - if( _target.useStandardHandles ) - { - _target.nodes[i] = Handles.PositionHandle( _target.nodes[i], Quaternion.identity ); - } - else - { - // how big shall we draw the handles? - var distanceToTarget = Vector3.Distance( SceneView.lastActiveSceneView.camera.transform.position, _target.transform.position ); - distanceToTarget = Mathf.Abs( distanceToTarget ); - var handleSize = Mathf.Ceil( distanceToTarget / 75 ); - - _target.nodes[i] = Handles.FreeMoveHandle( _target.nodes[i], - Quaternion.identity, - handleSize, - new Vector3( 5, 0, 5 ), - Handles.SphereCap ); - } - - - // should we snap? we need at least 4 nodes because we dont snap to the previous and next nodes - if( Event.current.control && _target.nodes.Count > 3 ) - { - // dont even bother checking for snapping to the previous/next nodes - var index = getNearestNode( _target.nodes[i], i, i + 1, i - 1 ); - var nearest = _target.nodes[index]; - var distanceToNearestNode = Vector3.Distance( nearest, _target.nodes[i] ); - - // is it close enough to snap? - if( distanceToNearestNode <= _snapDistance ) - { - GUI.changed = true; - _target.nodes[i] = nearest; - } - else if( distanceToNearestNode <= _snapDistance * 2 ) - { - // show which nodes are getting close enough to snap to - var color = Color.red; - color.a = 0.3f; - Handles.color = color; - Handles.SphereCap( 0, _target.nodes[i], Quaternion.identity, _snapDistance * 2 ); - //Handles.DrawWireDisc( _target.nodes[i], Vector3.up, _snapDistance ); - Handles.color = Color.white; - } - } - } // end for - - - if( GUI.changed ) - { - Repaint(); - EditorUtility.SetDirty( _target ); - } - } // end if - } - - #endregion - - - #region Private methods - - private void appendNodeAtPoint( Vector3 node ) - { - _target.nodes.Add( node ); - - GUI.changed = true; - } - - - private void removeNodeAtIndex( int index ) - { - if( index >= _target.nodes.Count || index < 0 ) - return; - - _target.nodes.RemoveAt( index ); - - GUI.changed = true; - } - - - private void insertNodeAtIndex( Vector3 node, int index ) - { - // validate the index - if( index >= 0 && index < _target.nodes.Count ) - { - _target.nodes.Insert( index, node ); - - GUI.changed = true; - } - } - - - private void drawArrowBetweenPoints( Vector3 point1, Vector3 point2 ) - { - // no need to draw arrows for tiny segments - var distance = Vector3.Distance( point1, point2 ); - if( distance < 40 ) - return; - - // we dont want to be exactly in the middle so we offset the length of the arrow - var lerpModifier = ( distance * 0.5f - 25 ) / distance; - - Handles.color = _target.pathColor; - - // get the midpoint between the 2 points - var dir = Vector3.Lerp( point1, point2, lerpModifier ); - var quat = Quaternion.LookRotation( point2 - point1 ); - Handles.ArrowCap( 0, dir, quat, 25 ); - - Handles.color = Color.white; - } - - - private int getNearestNode( Vector3 pos, params int[] excludeNodes ) - { - var excludeNodesList = new System.Collections.Generic.List( excludeNodes ); - var bestDistance = float.MaxValue; - var index = -1; - - var distance = float.MaxValue; - for( var i = _target.nodes.Count - 1; i >= 0; i-- ) - { - if( excludeNodesList.Contains( i ) ) - continue; - - distance = Vector3.Distance( pos, _target.nodes[i] ); - if( distance < bestDistance ) - { - bestDistance = distance; - index = i; - } - } - return index; - } - - - private int getNearestNodeForMousePosition( Vector3 mousePos ) - { - var bestDistance = float.MaxValue; - var index = -1; - - var distance = float.MaxValue; - for( var i = _target.nodes.Count - 1; i >= 0; i-- ) - { - var nodeToGui = HandleUtility.WorldToGUIPoint( _target.nodes[i] ); - distance = Vector2.Distance( nodeToGui, mousePos ); - - if( distance < bestDistance ) - { - bestDistance = distance; - index = i; - } - } - - // make sure we are close enough to a node - if( bestDistance < 10 ) - return index; - return -1; - } - - - private void closeRoute() - { - // we will use the GoSpline class to handle the dirtywork of closing the path - var path = new GoSpline( _target.nodes, _target.forceStraightLinePath ); - path.closePath(); - - _target.nodes = path.nodes; - - GUI.changed = true; - } - - - private void persistRouteToDisk( string path ) - { - var bytes = new List(); - - foreach( var vec in _target.nodes ) - { - bytes.AddRange( System.BitConverter.GetBytes( vec.x ) ); - bytes.AddRange( System.BitConverter.GetBytes( vec.y ) ); - bytes.AddRange( System.BitConverter.GetBytes( vec.z ) ); - } - - File.WriteAllBytes( path, bytes.ToArray() ); - } - - - private void drawRoute() - { - // if we are forcing straight lines just use this setup - if( _target.forceStraightLinePath ) - { - // draw just the route here and optional arrows - for( var i = 0; i < _target.nodes.Count; i++ ) - { - Handles.color = _target.pathColor; - if( i < _target.nodes.Count - 1 ) - { - Handles.DrawLine( _target.nodes[i], _target.nodes[i + 1] ); - drawArrowBetweenPoints( _target.nodes[i], _target.nodes[i + 1] ); - } - } - } - } - - #endregion - -} diff --git a/Assets/Plugins/GoKit/base.meta b/Assets/Plugins/Demigiant.meta similarity index 64% rename from Assets/Plugins/GoKit/base.meta rename to Assets/Plugins/Demigiant.meta index 96a1ed4..8306576 100644 --- a/Assets/Plugins/GoKit/base.meta +++ b/Assets/Plugins/Demigiant.meta @@ -1,7 +1,8 @@ fileFormatVersion: 2 -guid: 0a0650221f37549c4988877fdaa5e4bb +guid: 5c13c6a4c876fd24396372eb81256854 folderAsset: yes DefaultImporter: + externalObjects: {} userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Plugins/Demigiant/DOTween.meta b/Assets/Plugins/Demigiant/DOTween.meta new file mode 100644 index 0000000..cbebc39 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: a50bd9a009c8dfc4ebd88cc8101225a7 +labels: +- Tween +- Tweening +- Animation +- HOTween +- Paths +- iTween +- DFTween +- LeanTween +- Ease +- Easing +- Shake +- Punch +- 2DToolkit +- TextMeshPro +- Text +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/DOTween.XML b/Assets/Plugins/Demigiant/DOTween/DOTween.XML new file mode 100644 index 0000000..522a316 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/DOTween.XML @@ -0,0 +1,3051 @@ + + + + DOTween + + + + + Types of autoPlay behaviours + + + + No tween is automatically played + + + Only Sequences are automatically played + + + Only Tweeners are automatically played + + + All tweens are automatically played + + + + What axis to constrain in case of Vector tweens + + + + Called the first time the tween is set in a playing state, after any eventual delay + + + + Used in place of System.Func, which is not available in mscorlib. + + + + + Used in place of System.Action. + + + + + Public so it can be used by lose scripts related to DOTween (like DOTweenAnimation) + + + + + Used to separate DOTween class from the MonoBehaviour instance (in order to use static constructors on DOTween). + Contains all instance-based methods + + + + Used internally inside Unity Editor, as a trick to update DOTween's inspector at every frame + + + + Directly sets the current max capacity of Tweeners and Sequences + (meaning how many Tweeners and Sequences can be running at the same time), + so that DOTween doesn't need to automatically increase them in case the max is reached + (which might lead to hiccups when that happens). + Sequences capacity must be less or equal to Tweeners capacity + (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's). + Beware: use this method only when there are no tweens running. + + Max Tweeners capacity. + Default: 200 + Max Sequences capacity. + Default: 50 + + + + This class contains a C# port of the easing equations created by Robert Penner (http://robertpenner.com/easing). + + + + + Easing equation function for a bounce (exponentially decaying parabolic bounce) easing in: accelerating from zero velocity. + + + Current time (in frames or seconds). + + + Expected easing duration (in frames or seconds). + + Unused: here to keep same delegate for all ease types. + Unused: here to keep same delegate for all ease types. + + The eased value. + + + + + Easing equation function for a bounce (exponentially decaying parabolic bounce) easing out: decelerating from zero velocity. + + + Current time (in frames or seconds). + + + Expected easing duration (in frames or seconds). + + Unused: here to keep same delegate for all ease types. + Unused: here to keep same delegate for all ease types. + + The eased value. + + + + + Easing equation function for a bounce (exponentially decaying parabolic bounce) easing in/out: acceleration until halfway, then deceleration. + + + Current time (in frames or seconds). + + + Expected easing duration (in frames or seconds). + + Unused: here to keep same delegate for all ease types. + Unused: here to keep same delegate for all ease types. + + The eased value. + + + + + Returns a value between 0 and 1 (inclusive) based on the elapsed time and ease selected + + + + + Returns a value between 0 and 1 (inclusive) based on the elapsed time and ease selected + + + + + Used to interpret AnimationCurves as eases. + Public so it can be used by external ease factories + + + + + Behaviour in case a tween nested inside a Sequence fails and is captured by safe mode + + + + If the Sequence contains other elements, kill the failed tween but preserve the rest + + + Kill the whole Sequence + + + + Log types thrown by errors captured and prevented by safe mode + + + + No logs. NOT RECOMMENDED + + + Throw a normal log + + + Throw a warning log (default) + + + Throw an error log + + + + Additional notices passed to plugins when updating. + Public so it can be used by custom plugins. Internally, only PathPlugin uses it + + + + + None + + + + + Lets the plugin know that we restarted or rewinded + + + + + OnRewind callback behaviour (can only be set via DOTween's Utility Panel) + + + + + When calling Rewind or PlayBackwards/SmoothRewind, OnRewind callbacks will be fired only if the tween isn't already rewinded + + + + + When calling Rewind, OnRewind callbacks will always be fired, even if the tween is already rewinded. + When calling PlayBackwards/SmoothRewind instead, OnRewind callbacks will be fired only if the tween isn't already rewinded + + + + + When calling Rewind or PlayBackwards/SmoothRewind, OnRewind callbacks will always be fired, even if the tween is already rewinded + + + + + Public only so custom shortcuts can access some of these methods + + + + + INTERNAL: used by DO shortcuts and Modules to set special startup mode + + + + + INTERNAL: used by DO shortcuts and Modules to set the tween as blendable + + + + + INTERNAL: used by DO shortcuts and Modules to prevent a tween from using a From setup even if passed + + + + + Used to dispatch commands that need to be captured externally, usually by Modules + + + + + Returns a Vector3 with z = 0 + + + + + Returns the 2D angle between two vectors + + + + + Returns a point on a circle with the given center and radius, + using Unity's circle coordinates (0° points up and increases clockwise) + + + + + Uses approximate equality on each axis instead of Unity's Vector3 equality, + because the latter fails (in some cases) when assigning a Vector3 to a transform.position and then checking it. + + + + + Looks for the type within all possible project assembly names + + + + NO-GC METHOD: changes the start value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new start value + If bigger than 0 applies it as the new tween duration + + + NO-GC METHOD: changes the end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new end value + If TRUE the start value will become the current target's value, otherwise it will stay the same + + + NO-GC METHOD: changes the end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new end value + If bigger than 0 applies it as the new tween duration + If TRUE the start value will become the current target's value, otherwise it will stay the same + + + NO-GC METHOD: changes the start and end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new start value + The new end value + If bigger than 0 applies it as the new tween duration + + + + Struct that stores two colors (used for LineRenderer tweens) + + + + + Used for tween callbacks + + + + + Used for tween callbacks + + + + + Used for custom and animationCurve-based ease functions. Must return a value between 0 and 1. + + + + + Straight Quaternion plugin. Instead of using Vector3 values accepts Quaternion values directly. + Beware: doesn't work with LoopType.Incremental (neither directly nor if inside a LoopType.Incremental Sequence). + To use it, call DOTween.To with the plugin parameter overload, passing it PureQuaternionPlugin.Plug() as first parameter + (do not use any of the other public PureQuaternionPlugin methods): + DOTween.To(PureQuaternionPlugin.Plug(), ()=> myQuaternionProperty, x=> myQuaternionProperty = x, myQuaternionEndValue, duration); + + + + + Plug this plugin inside a DOTween.To call. + Example: + DOTween.To(PureQuaternionPlugin.Plug(), ()=> myQuaternionProperty, x=> myQuaternionProperty = x, myQuaternionEndValue, duration); + + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + + Extra non-tweening-related curve methods + + + + + Cubic bezier curve methods + + + + + Calculates a point along the given Cubic Bezier segment-curve. + + Segment start point + Start point's control point/handle + Segment end point + End point's control point/handle + 0-1 percentage along which to retrieve point + + + + Returns an array containing a series of points along the given Cubic Bezier segment-curve. + + Start point + Start point's control point/handle + End point + End point's control point/handle + Cloud resolution (min: 2) + + + + Calculates a series of points along the given Cubic Bezier segment-curve and adds them to the given list. + + Start point + Start point's control point/handle + End point + End point's control point/handle + Cloud resolution (min: 2) + + + + Main DOTween class. Contains static methods to create and control tweens in a generic way + + + + DOTween's version + + + If TRUE (default) makes tweens slightly slower but safer, automatically taking care of a series of things + (like targets becoming null while a tween is playing). + Default: TRUE + + + Log type when safe mode reports capturing an error and preventing it + + + Behaviour in case a tween nested inside a Sequence fails (and is caught by safe mode). + Default: NestedTweenFailureBehaviour.TryToPreserveSequence + + + If TRUE you will get a DOTween report when exiting play mode (only in the Editor). + Useful to know how many max Tweeners and Sequences you reached and optimize your final project accordingly. + Beware, this will slightly slow down your tweens while inside Unity Editor. + Default: FALSE + + + Global DOTween global timeScale (default: 1). + The final timeScale of a non-timeScaleIndependent tween is: + Unity's Time.timeScale * DOTween.timeScale * tween.timeScale + while the final timeScale of a timeScaleIndependent tween is: + DOTween.unscaledTimeScale * DOTween.timeScale * tween.timeScale + + + DOTween timeScale applied only to timeScaleIndependent tweens (default: 1). + The final timeScale of a timeScaleIndependent tween is: + DOTween.unscaledTimeScale * DOTween.timeScale * tween.timeScale + + + If TRUE, DOTween will use Time.smoothDeltaTime instead of Time.deltaTime for UpdateType.Normal and UpdateType.Late tweens + (unless they're set as timeScaleIndependent, in which case a value between the last timestep + and will be used instead). + Setting this to TRUE will lead to smoother animations. + Default: FALSE + + + If is TRUE, this indicates the max timeStep that an independent update call can last. + Setting this to TRUE will lead to smoother animations. + Default: FALSE + + + DOTween's log behaviour. + Default: LogBehaviour.ErrorsOnly + + + Used to intercept DOTween's logs. If this method isn't NULL, DOTween will call it before writing a log via Unity's own Debug log methods. + Return TRUE if you want DOTween to proceed with the log, FALSE otherwise. + This method must return a bool and accept two parameters: + - LogType: the type of Unity log that DOTween is trying to log + - object: the log message that DOTween wants to log + + + If TRUE draws path gizmos in Unity Editor (if the gizmos button is active). + Deactivate this if you want to avoid gizmos overhead while in Unity Editor + + + If TRUE activates various debug options + + + Stores the target id so it can be used to give more info in case of safeMode error capturing. + Only active if both debugMode and useSafeMode are TRUE + + + Default updateType for new tweens. + Default: UpdateType.Normal + + + Sets whether Unity's timeScale should be taken into account by default or not. + Default: false + + + Default autoPlay behaviour for new tweens. + Default: AutoPlay.All + + + Default autoKillOnComplete behaviour for new tweens. + Default: TRUE + + + Default loopType applied to all new tweens. + Default: LoopType.Restart + + + If TRUE all newly created tweens are set as recyclable, otherwise not. + Default: FALSE + + + Default ease applied to all new Tweeners (not to Sequences which always have Ease.Linear as default). + Default: Ease.InOutQuad + + + Default overshoot/amplitude used for eases + Default: 1.70158f + + + Default period used for eases + Default: 0 + + + Used internally. Assigned/removed by DOTweenComponent.Create/DestroyInstance + + + + Must be called once, before the first ever DOTween call/reference, + otherwise it will be called automatically and will use default options. + Calling it a second time won't have any effect. + You can chain SetCapacity to this method, to directly set the max starting size of Tweeners and Sequences: + DOTween.Init(false, false, LogBehaviour.Default).SetCapacity(100, 20); + + If TRUE all new tweens will be set for recycling, meaning that when killed, + instead of being destroyed, they will be put in a pool and reused instead of creating new tweens. This option allows you to avoid + GC allocations by reusing tweens, but you will have to take care of tween references, since they might result active + even if they were killed (since they might have been respawned and are now being used for other tweens). + If you want to automatically set your tween references to NULL when a tween is killed + you can use the OnKill callback like this: + .OnKill(()=> myTweenReference = null) + You can change this setting at any time by changing the static property, + or you can set the recycling behaviour for each tween separately, using: + SetRecyclable(bool recyclable) + Default: FALSE + If TRUE makes tweens slightly slower but safer, automatically taking care of a series of things + (like targets becoming null while a tween is playing). + You can change this setting at any time by changing the static property. + Default: FALSE + Type of logging to use. + You can change this setting at any time by changing the static property. + Default: ErrorsOnly + + + + Directly sets the current max capacity of Tweeners and Sequences + (meaning how many Tweeners and Sequences can be running at the same time), + so that DOTween doesn't need to automatically increase them in case the max is reached + (which might lead to hiccups when that happens). + Sequences capacity must be less or equal to Tweeners capacity + (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's). + Beware: use this method only when there are no tweens running. + + Max Tweeners capacity. + Default: 200 + Max Sequences capacity. + Default: 50 + + + + Kills all tweens, clears all cached tween pools and plugins and resets the max Tweeners/Sequences capacities to the default values. + + If TRUE also destroys DOTween's gameObject and resets its initializiation, default settings and everything else + (so that next time you use it it will need to be re-initialized) + + + + Clears all cached tween pools. + + + + + Checks all active tweens to find and remove eventually invalid ones (usually because their targets became NULL) + and returns the total number of invalid tweens found and removed. + IMPORTANT: this will cause an error on UWP platform, so don't use it there + BEWARE: this is a slightly expensive operation so use it with care + + + + + Updates all tweens that are set to . + + Manual deltaTime + Unscaled delta time (used with tweens set as timeScaleIndependent) + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using a custom plugin + The plugin to use. Each custom plugin implements a static Get() method + you'll need to call to assign the correct plugin in the correct way, like this: + CustomPlugin.Get() + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens only one axis of a Vector3 to the given value using default plugins. + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + The axis to tween + + + Tweens only the alpha of a Color to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a virtual property from the given start to the given end value + and implements a setter that allows to use that value with an external method or a lambda + Example: + To(MyMethod, 0, 12, 0.5f); + Where MyMethod is a function that accepts a float parameter (which will be the result of the virtual tween) + The action to perform with the tweened value + The value to start from + The end value to reach + The duration of the virtual tween + + + + Punches a Vector3 towards the given direction and then back to the starting one + as if it was connected to the starting position via an elastic. + This tween type generates some GC allocations at startup + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The direction and strength of the punch + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards. + 1 creates a full oscillation between the direction and the opposite decaying direction, + while 0 oscillates only between the starting position and the decaying direction + + + Shakes a Vector3 with the given values. + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction and behave like a random punch. + If TRUE only shakes on the X Y axis (looks better with things like cameras). + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Vector3 with the given values. + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction and behave like a random punch. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Tweens a property or field to the given values using default plugins. + Ease is applied between each segment and not as a whole. + This tween type generates some GC allocations at startup + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end values to reach for each segment. This array must have the same length as durations + The duration of each segment. This array must have the same length as endValues + + + + Returns a new to be used for tween groups. + Mind that Sequences don't have a target applied automatically like Tweener creation shortcuts, + so if you want to be able to kill this Sequence when calling DOTween.Kill(target) you'll have to add + the target manually; you can do that directly by using the overload instead of this one + + + + + Returns a new to be used for tween groups, and allows to set a target + (because Sequences don't have their target set automatically like Tweener creation shortcuts). + That way killing/controlling tweens by target will apply to this Sequence too. + + The target of the Sequence. Relevant only for static target-based methods like DOTween.Kill(target), + useless otherwise + + + Completes all tweens and returns the number of actual tweens completed + (meaning tweens that don't have infinite loops and were not already complete) + For Sequences only: if TRUE also internal Sequence callbacks will be fired, + otherwise they will be ignored + + + Completes all tweens with the given ID or target and returns the number of actual tweens completed + (meaning the tweens that don't have infinite loops and were not already complete) + For Sequences only: if TRUE internal Sequence callbacks will be fired, + otherwise they will be ignored + + + Flips all tweens (changing their direction to forward if it was backwards and viceversa), + then returns the number of actual tweens flipped + + + Flips the tweens with the given ID or target (changing their direction to forward if it was backwards and viceversa), + then returns the number of actual tweens flipped + + + Sends all tweens to the given position (calculating also eventual loop cycles) and returns the actual tweens involved + + + Sends all tweens with the given ID or target to the given position (calculating also eventual loop cycles) + and returns the actual tweens involved + + + Kills all tweens and returns the number of actual tweens killed + If TRUE completes the tweens before killing them + + + Kills all tweens and returns the number of actual tweens killed + If TRUE completes the tweens before killing them + Eventual IDs or targets to exclude from the killing + + + Kills all tweens with the given ID or target and returns the number of actual tweens killed + If TRUE completes the tweens before killing them + + + Kills all tweens with the given target and the given ID, and returns the number of actual tweens killed + If TRUE completes the tweens before killing them + + + Pauses all tweens and returns the number of actual tweens paused + + + Pauses all tweens with the given ID or target and returns the number of actual tweens paused + (meaning the tweens that were actually playing and have been paused) + + + Plays all tweens and returns the number of actual tweens played + (meaning tweens that were not already playing or complete) + + + Plays all tweens with the given ID or target and returns the number of actual tweens played + (meaning the tweens that were not already playing or complete) + + + Plays all tweens with the given target and the given ID, and returns the number of actual tweens played + (meaning the tweens that were not already playing or complete) + + + Plays backwards all tweens and returns the number of actual tweens played + (meaning tweens that were not already started, playing backwards or rewinded) + + + Plays backwards all tweens with the given ID or target and returns the number of actual tweens played + (meaning the tweens that were not already started, playing backwards or rewinded) + + + Plays backwards all tweens with the given target and ID and returns the number of actual tweens played + (meaning the tweens that were not already started, playing backwards or rewinded) + + + Plays forward all tweens and returns the number of actual tweens played + (meaning tweens that were not already playing forward or complete) + + + Plays forward all tweens with the given ID or target and returns the number of actual tweens played + (meaning the tweens that were not already playing forward or complete) + + + Plays forward all tweens with the given target and ID and returns the number of actual tweens played + (meaning the tweens that were not already started, playing backwards or rewinded) + + + Restarts all tweens, then returns the number of actual tweens restarted + + + Restarts all tweens with the given ID or target, then returns the number of actual tweens restarted + If TRUE includes the eventual tweens delays, otherwise skips them + If >= 0 changes the startup delay of all involved tweens to this value, otherwise doesn't touch it + + + Restarts all tweens with the given target and the given ID, and returns the number of actual tweens played + (meaning the tweens that were not already playing or complete) + If TRUE includes the eventual tweens delays, otherwise skips them + If >= 0 changes the startup delay of all involved tweens to this value, otherwise doesn't touch it + + + Rewinds and pauses all tweens, then returns the number of actual tweens rewinded + (meaning tweens that were not already rewinded) + + + Rewinds and pauses all tweens with the given ID or target, then returns the number of actual tweens rewinded + (meaning the tweens that were not already rewinded) + + + Smoothly rewinds all tweens (delays excluded), then returns the number of actual tweens rewinding/rewinded + (meaning tweens that were not already rewinded). + A "smooth rewind" animates the tween to its start position, + skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent. + Note that a tween that was smoothly rewinded will have its play direction flipped + + + Smoothly rewinds all tweens (delays excluded) with the given ID or target, then returns the number of actual tweens rewinding/rewinded + (meaning the tweens that were not already rewinded). + A "smooth rewind" animates the tween to its start position, + skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent. + Note that a tween that was smoothly rewinded will have its play direction flipped + + + Toggles the play state of all tweens and returns the number of actual tweens toggled + (meaning tweens that could be played or paused, depending on the toggle state) + + + Toggles the play state of all tweens with the given ID or target and returns the number of actual tweens toggled + (meaning the tweens that could be played or paused, depending on the toggle state) + + + + Returns TRUE if a tween with the given ID or target is active. + You can also use this to know if a shortcut tween is active for a given target. + Example: + transform.DOMoveX(45, 1); // transform is automatically added as the tween target + DOTween.IsTweening(transform); // Returns true + + The target or ID to look for + If FALSE (default) returns TRUE as long as a tween for the given target/ID is active, + otherwise also requires it to be playing + + + + Returns the total number of active tweens (so both Tweeners and Sequences). + A tween is considered active if it wasn't killed, regardless if it's playing or paused + + + + + Returns the total number of active Tweeners. + A Tweener is considered active if it wasn't killed, regardless if it's playing or paused + + + + + Returns the total number of active Sequences. + A Sequence is considered active if it wasn't killed, regardless if it's playing or paused + + + + + Returns the total number of active and playing tweens. + A tween is considered as playing even if its delay is actually playing + + + + + Returns a the total number of active tweens with the given id. + + If TRUE returns only the tweens with the given ID that are currently playing + + + + Returns a list of all active tweens in a playing state. + Returns NULL if there are no active playing tweens. + Beware: each time you call this method a new list is generated, so use it for debug only + + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) + + + + Returns a list of all active tweens in a paused state. + Returns NULL if there are no active paused tweens. + Beware: each time you call this method a new list is generated, so use it for debug only + + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) + + + + Returns a list of all active tweens with the given id. + Returns NULL if there are no active tweens with the given id. + Beware: each time you call this method a new list is generated + + If TRUE returns only the tweens with the given ID that are currently playing + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) + + + + Returns a list of all active tweens with the given target. + Returns NULL if there are no active tweens with the given target. + Beware: each time you call this method a new list is generated + If TRUE returns only the tweens with the given target that are currently playing + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) + + + + + Creates virtual tweens that can be used to change other elements via their OnUpdate calls + + + + + Tweens a virtual float. + You can add regular settings to the generated tween, + but do not use SetUpdate or you will overwrite the onVirtualUpdate parameter + + The value to start from + The value to tween to + The duration of the tween + A callback which must accept a parameter of type float, called at each update + + + + Tweens a virtual int. + You can add regular settings to the generated tween, + but do not use SetUpdate or you will overwrite the onVirtualUpdate parameter + + The value to start from + The value to tween to + The duration of the tween + A callback which must accept a parameter of type int, called at each update + + + + Tweens a virtual Vector3. + You can add regular settings to the generated tween, + but do not use SetUpdate or you will overwrite the onVirtualUpdate parameter + + The value to start from + The value to tween to + The duration of the tween + A callback which must accept a parameter of type Vector3, called at each update + + + + Tweens a virtual Color. + You can add regular settings to the generated tween, + but do not use SetUpdate or you will overwrite the onVirtualUpdate parameter + + The value to start from + The value to tween to + The duration of the tween + A callback which must accept a parameter of type Color, called at each update + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + Eventual overshoot to use with Back ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + Eventual amplitude to use with Elastic easeType + Eventual period to use with Elastic easeType + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The AnimationCurve to use for ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + Eventual overshoot to use with Back ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + Eventual amplitude to use with Elastic easeType + Eventual period to use with Elastic easeType + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The AnimationCurve to use for ease + + + Fires the given callback after the given time. + Callback delay + Callback to fire when the delay has expired + If TRUE (default) ignores Unity's timeScale + + + + Don't assign this! It's assigned automatically when creating 0 duration tweens + + + + + Don't assign this! It's assigned automatically when setting the ease to an AnimationCurve or to a custom ease function + + + + + Allows to wrap ease method in special ways, adding extra features + + + + + Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS + + FPS at which the tween should be played + Ease type + + + + Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS + + FPS at which the tween should be played + AnimationCurve to use for the ease + + + + Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS + + FPS at which the tween should be played + Custom ease function to use + + + + Used to allow method chaining with DOTween.Init + + + + + Directly sets the current max capacity of Tweeners and Sequences + (meaning how many Tweeners and Sequences can be running at the same time), + so that DOTween doesn't need to automatically increase them in case the max is reached + (which might lead to hiccups when that happens). + Sequences capacity must be less or equal to Tweeners capacity + (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's). + Beware: use this method only when there are no tweens running. + + Max Tweeners capacity. + Default: 200 + Max Sequences capacity. + Default: 50 + + + + Behaviour that can be assigned when chaining a SetLink to a tween + + + + Pauses the tween when the link target is disabled + + + Pauses the tween when the link target is disabled, plays it when it's enabled + + + Pauses the tween when the link target is disabled, restarts it when it's enabled + + + Plays the tween when the link target is enabled + + + Restarts the tween when the link target is enabled + + + Kills the tween when the link target is disabled + + + Kills the tween when the link target is destroyed (becomes NULL). This is always active even if another behaviour is chosen + + + Completes the tween when the link target is disabled + + + Completes and kills the tween when the link target is disabled + + + Rewinds the tween (delay excluded) when the link target is disabled + + + Rewinds and kills the tween when the link target is disabled + + + + Path mode (used to determine correct LookAt orientation) + + + + Ignores the path mode (and thus LookAt behaviour) + + + Regular 3D path + + + 2D top-down path + + + 2D side-scroller path + + + + Type of path to use with DOPath tweens + + + + Linear, composed of straight segments between each waypoint + + + Curved path (which uses Catmull-Rom curves) + + + EXPERIMENTAL: Curved path (which uses Cubic Bezier curves, where each point requires two extra control points) + + + + Tweens a Vector2 along a circle. + EndValue represents the center of the circle, start and end value degrees are inside options + ChangeValue x is changeValue°, y is unused + + + + + Path control point + + + + + Path waypoints (modified by PathPlugin when setting relative end/change value or by CubicBezierDecoder) and by DOTweenPathInspector + + + + + Minimum input points necessary to create the path (doesn't correspond to actual waypoints required) + + + + + Gets the point on the path at the given percentage (0 to 1) + + The percentage (0 to 1) at which to get the point + If TRUE constant speed is taken into account, otherwise not + + + + Base interface for all tween plugins options + + + + Resets the plugin + + + + This plugin generates some GC allocations at startup + + + + + Path plugin works exclusively with Transforms + + + + + Rotation mode used with DORotate methods + + + + + Fastest way that never rotates beyond 360° + + + + + Fastest way that rotates beyond 360° + + + + + Adds the given rotation to the transform using world axis and an advanced precision mode + (like when using transform.Rotate(Space.World)). + In this mode the end value is is always considered relative + + + + + Adds the given rotation to the transform's local axis + (like when rotating an object with the "local" switch enabled in Unity's editor or using transform.Rotate(Space.Self)). + In this mode the end value is is always considered relative + + + + + Type of scramble to apply to string tweens + + + + + No scrambling of characters + + + + + A-Z + a-z + 0-9 characters + + + + + A-Z characters + + + + + a-z characters + + + + + 0-9 characters + + + + + Custom characters + + + + + Type of randomness to apply to a shake tween + + + + Default, full randomness + + + Creates a more balanced randomness that looks more harmonic + + + + Methods that extend Tween objects and allow to control or get data from them + + + + Completes the tween + + + Completes the tween + For Sequences only: if TRUE also internal Sequence callbacks will be fired, + otherwise they will be ignored + + + Flips the direction of this tween (backwards if it was going forward or viceversa) + + + Forces the tween to initialize its settings immediately + + + Send the tween to the given position in time + Time position to reach + (if higher than the whole tween duration the tween will simply reach its end) + If TRUE will play the tween after reaching the given position, otherwise it will pause it + + + Send the tween to the given position in time while also executing any callback between the previous time position and the new one + Time position to reach + (if higher than the whole tween duration the tween will simply reach its end) + If TRUE will play the tween after reaching the given position, otherwise it will pause it + + + Kills the tween + If TRUE completes the tween before killing it + + + + Forces this tween to update manually, regardless of the set via SetUpdate. + Note that the tween will still be subject to normal tween rules, so if for example it's paused this method will do nothing. + Also note that if you only want to update this tween instance manually you'll have to set it to anyway, + so that it's not updated automatically. + + Manual deltaTime + Unscaled delta time (used with tweens set as timeScaleIndependent) + + + Pauses the tween + + + Plays the tween + + + Sets the tween in a backwards direction and plays it + + + Sets the tween in a forward direction and plays it + + + Restarts the tween from the beginning + Ignored in case of Sequences. If TRUE includes the eventual tween delay, otherwise skips it + Ignored in case of Sequences. If >= 0 changes the startup delay to this value, otherwise doesn't touch it + + + Rewinds and pauses the tween + Ignored in case of Sequences. If TRUE includes the eventual tween delay, otherwise skips it + + + Smoothly rewinds the tween (delays excluded). + A "smooth rewind" animates the tween to its start position, + skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent. + If called on a tween who is still waiting for its delay to happen, it will simply set the delay to 0 and pause the tween. + Note that a tween that was smoothly rewinded will have its play direction flipped + + + Plays the tween if it was paused, pauses it if it was playing + + + Send a path tween to the given waypoint. + Has no effect if this is not a path tween. + BEWARE, this is a special utility method: + it works only with Linear eases. Also, the lookAt direction might be wrong after calling this and might need to be set manually + (because it relies on a smooth path movement and doesn't work well with jumps that encompass dramatic direction changes) + Waypoint index to reach + (if higher than the max waypoint index the tween will simply go to the last one) + If TRUE will play the tween after reaching the given waypoint, otherwise it will pause it + + + + Creates a yield instruction that waits until the tween is killed or complete. + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForCompletion(); + + + + + Creates a yield instruction that waits until the tween is killed or rewinded. + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForRewind(); + + + + + Creates a yield instruction that waits until the tween is killed. + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForKill(); + + + + + Creates a yield instruction that waits until the tween is killed or has gone through the given amount of loops. + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForElapsedLoops(2); + + Elapsed loops to wait for + + + + Creates a yield instruction that waits until the tween is killed or has reached the given position (loops included, delays excluded). + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForPosition(2.5f); + + Position (loops included, delays excluded) to wait for + + + + Creates a yield instruction that waits until the tween is killed or started + (meaning when the tween is set in a playing state the first time, after any eventual delay). + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForStart(); + + + + Returns the total number of loops completed by this tween + + + Returns the eventual delay set for this tween + + + Returns the eventual elapsed delay set for this tween + + + Returns the duration of this tween (delays excluded). + NOTE: when using settings like SpeedBased, the duration will be recalculated when the tween starts + If TRUE returns the full duration loops included, + otherwise the duration of a single loop cycle + + + Returns the elapsed time for this tween (delays exluded) + If TRUE returns the elapsed time since startup loops included, + otherwise the elapsed time within the current loop cycle + + + Returns the elapsed percentage (0 to 1) of this tween (delays exluded) + If TRUE returns the elapsed percentage since startup loops included, + otherwise the elapsed percentage within the current loop cycle + + + Returns the elapsed percentage (0 to 1) of this tween (delays exluded), + based on a single loop, and calculating eventual backwards Yoyo loops as 1 to 0 instead of 0 to 1 + + + Returns FALSE if this tween has been killed or is NULL, TRUE otherwise. + BEWARE: if this tween is recyclable it might have been spawned again for another use and thus return TRUE anyway. + When working with recyclable tweens you should take care to know when a tween has been killed and manually set your references to NULL. + If you want to be sure your references are set to NULL when a tween is killed you can use the OnKill callback like this: + .OnKill(()=> myTweenReference = null) + + + Returns TRUE if this tween was reversed and is set to go backwards + + + Returns TRUE if the tween is complete + (silently fails and returns FALSE if the tween has been killed) + + + Returns TRUE if this tween has been initialized + + + Returns TRUE if this tween is playing + + + Returns the total number of loops set for this tween + (returns -1 if the loops are infinite) + + + + Returns a point on a path based on the given path percentage. + Returns Vector3.zero if this is not a path tween, if the tween is invalid, or if the path is not yet initialized. + A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature). + You can force a path to be initialized by calling myTween.ForceInit(). + + Percentage of the path (0 to 1) on which to get the point + + + + Returns an array of points that can be used to draw the path. + Note that this method generates allocations, because it creates a new array. + Returns NULL if this is not a path tween, if the tween is invalid, or if the path is not yet initialized. + A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature). + You can force a path to be initialized by calling myTween.ForceInit(). + + How many points to create for each path segment (waypoint to waypoint). + Only used in case of non-Linear paths + + + + Returns the length of a path. + Returns -1 if this is not a path tween, if the tween is invalid, or if the path is not yet initialized. + A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature). + You can force a path to be initialized by calling myTween.ForceInit(). + + + + + Types of loop + + + + Each loop cycle restarts from the beginning + + + The tween moves forward and backwards at alternate cycles + + + Continuously increments the tween at the end of each loop cycle (A to B, B to B+(A-B), and so on), thus always moving "onward". + In case of String tweens works only if the tween is set as relative + + + + Controls other tweens as a group + + + + + Methods that extend known Unity objects and allow to directly create and control tweens from their instances + + + + Tweens a Camera's aspect to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's backgroundColor to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's farClipPlane to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's fieldOfView to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's nearClipPlane to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's orthographicSize to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's pixelRect to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's rect to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Shakes a Camera's localPosition along its relative X Y axes with the given values. + Also stores the camera as the tween's target so it can be used for filtered operations + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Camera's localPosition along its relative X Y axes with the given values. + Also stores the camera as the tween's target so it can be used for filtered operations + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Camera's localRotation. + Also stores the camera as the tween's target so it can be used for filtered operations + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Camera's localRotation. + Also stores the camera as the tween's target so it can be used for filtered operations + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Tweens a Light's color to the given value. + Also stores the light as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Light's intensity to the given value. + Also stores the light as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Light's shadowStrength to the given value. + Also stores the light as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a LineRenderer's color to the given value. + Also stores the LineRenderer as the tween's target so it can be used for filtered operations. + Note that this method requires to also insert the start colors for the tween, + since LineRenderers have no way to get them. + The start value to tween from + The end value to reachThe duration of the tween + + + Tweens a Material's color to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Material's named color property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween (like _Tint or _SpecColor) + The duration of the tween + + + Tweens a Material's named color property with the given ID to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + + + Tweens a Material's alpha color to the given value + (will have no effect unless your material supports transparency). + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Material's alpha color to the given value + (will have no effect unless your material supports transparency). + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween (like _Tint or _SpecColor) + The duration of the tween + + + Tweens a Material's alpha color with the given ID to the given value + (will have no effect unless your material supports transparency). + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + + + Tweens a Material's named float property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween + The duration of the tween + + + Tweens a Material's named float property with the given ID to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + + + Tweens a Material's texture offset to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The duration of the tween + + + Tweens a Material's named texture offset property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween + The duration of the tween + + + Tweens a Material's texture scale to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The duration of the tween + + + Tweens a Material's named texture scale property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween + The duration of the tween + + + Tweens a Material's named Vector property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween + The duration of the tween + + + Tweens a Material's named Vector property with the given ID to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + + + Tweens a TrailRenderer's startWidth/endWidth to the given value. + Also stores the TrailRenderer as the tween's target so it can be used for filtered operations + The end startWidth to reachThe end endWidth to reach + The duration of the tween + + + Tweens a TrailRenderer's time to the given value. + Also stores the TrailRenderer as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's position to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's X position to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's Y position to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's Z position to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's localPosition to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's X localPosition to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's Y localPosition to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's Z localPosition to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's rotation to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + Rotation mode + + + Tweens a Transform's rotation to the given value using pure quaternion values. + Also stores the transform as the tween's target so it can be used for filtered operations. + PLEASE NOTE: DORotate, which takes Vector3 values, is the preferred rotation method. + This method was implemented for very special cases, and doesn't support LoopType.Incremental loops + (neither for itself nor if placed inside a LoopType.Incremental Sequence) + + The end value to reachThe duration of the tween + + + Tweens a Transform's localRotation to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + Rotation mode + + + Tweens a Transform's rotation to the given value using pure quaternion values. + Also stores the transform as the tween's target so it can be used for filtered operations. + PLEASE NOTE: DOLocalRotate, which takes Vector3 values, is the preferred rotation method. + This method was implemented for very special cases, and doesn't support LoopType.Incremental loops + (neither for itself nor if placed inside a LoopType.Incremental Sequence) + + The end value to reachThe duration of the tween + + + Tweens a Transform's localScale to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's localScale uniformly to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's X localScale to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's Y localScale to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's Z localScale to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's rotation so that it will look towards the given world position. + Also stores the transform as the tween's target so it can be used for filtered operations + The position to look atThe duration of the tween + Eventual axis constraint for the rotation + The vector that defines in which direction up is (default: Vector3.up) + + + EXPERIMENTAL Tweens a Transform's rotation so that it will look towards the given world position, + while also updating the lookAt position every frame + (contrary to which calculates the lookAt rotation only once, when the tween starts). + Also stores the transform as the tween's target so it can be used for filtered operations + The position to look atThe duration of the tween + Eventual axis constraint for the rotation + The vector that defines in which direction up is (default: Vector3.up) + + + Punches a Transform's localPosition towards the given direction and then back to the starting one + as if it was connected to the starting position via an elastic. + The direction and strength of the punch (added to the Transform's current position) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards. + 1 creates a full oscillation between the punch direction and the opposite direction, + while 0 oscillates only between the punch and the start position + If TRUE the tween will smoothly snap all values to integers + + + Punches a Transform's localScale towards the given size and then back to the starting one + as if it was connected to the starting scale via an elastic. + The punch strength (added to the Transform's current scale) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting size when bouncing backwards. + 1 creates a full oscillation between the punch scale and the opposite scale, + while 0 oscillates only between the punch scale and the start scale + + + Punches a Transform's localRotation towards the given size and then back to the starting one + as if it was connected to the starting rotation via an elastic. + The punch strength (added to the Transform's current rotation) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting rotation when bouncing backwards. + 1 creates a full oscillation between the punch rotation and the opposite rotation, + while 0 oscillates only between the punch and the start rotation + + + Shakes a Transform's localPosition with the given values. + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the tween will smoothly snap all values to integers + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Transform's localPosition with the given values. + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the tween will smoothly snap all values to integers + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Transform's localRotation. + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Transform's localRotation. + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Transform's localScale. + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Transform's localScale. + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Tweens a Transform's position to the given value, while also applying a jump effect along the Y axis. + Returns a Sequence instead of a Tweener. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reach + Power of the jump (the max height of the jump is represented by this plus the final Y offset) + Total number of jumps + The duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's localPosition to the given value, while also applying a jump effect along the Y axis. + Returns a Sequence instead of a Tweener. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reach + Power of the jump (the max height of the jump is represented by this plus the final Y offset) + Total number of jumps + The duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's position through the given path waypoints, using the chosen path algorithm. + Also stores the transform as the tween's target so it can be used for filtered operations + The waypoints to go through + The duration of the tween + The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + The path mode: 3D, side-scroller 2D, top-down 2D + The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive. + Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + The color of the path (shown when gizmos are active in the Play panel and the tween is running) + + + Tweens a Transform's localPosition through the given path waypoints, using the chosen path algorithm. + Also stores the transform as the tween's target so it can be used for filtered operations + The waypoint to go through + The duration of the tween + The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + The path mode: 3D, side-scroller 2D, top-down 2D + The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive. + Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + The color of the path (shown when gizmos are active in the Play panel and the tween is running) + + + IMPORTANT: Unless you really know what you're doing, you should use the overload that accepts a Vector3 array instead. + Tweens a Transform's position via the given path. + Also stores the transform as the tween's target so it can be used for filtered operations + The path to use + The duration of the tween + The path mode: 3D, side-scroller 2D, top-down 2D + + + IMPORTANT: Unless you really know what you're doing, you should use the overload that accepts a Vector3 array instead. + Tweens a Transform's localPosition via the given path. + Also stores the transform as the tween's target so it can be used for filtered operations + The path to use + The duration of the tween + The path mode: 3D, side-scroller 2D, top-down 2D + + + Tweens a Tween's timeScale to the given value. + Also stores the Tween as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Light's color to the given value, + in a way that allows other DOBlendableColor tweens to work together on the same target, + instead than fight each other as multiple DOColor would do. + Also stores the Light as the tween's target so it can be used for filtered operations + The value to tween toThe duration of the tween + + + Tweens a Material's color to the given value, + in a way that allows other DOBlendableColor tweens to work together on the same target, + instead than fight each other as multiple DOColor would do. + Also stores the Material as the tween's target so it can be used for filtered operations + The value to tween toThe duration of the tween + + + Tweens a Material's named color property to the given value, + in a way that allows other DOBlendableColor tweens to work together on the same target, + instead than fight each other as multiple DOColor would do. + Also stores the Material as the tween's target so it can be used for filtered operations + The value to tween to + The name of the material property to tween (like _Tint or _SpecColor) + The duration of the tween + + + Tweens a Material's named color property with the given ID to the given value, + in a way that allows other DOBlendableColor tweens to work together on the same target, + instead than fight each other as multiple DOColor would do. + Also stores the Material as the tween's target so it can be used for filtered operations + The value to tween to + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + + + Tweens a Transform's position BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableMove tweens to work together on the same target, + instead than fight each other as multiple DOMove would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's localPosition BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableMove tweens to work together on the same target, + instead than fight each other as multiple DOMove would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + EXPERIMENTAL METHOD - Tweens a Transform's rotation BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableRotate tweens to work together on the same target, + instead than fight each other as multiple DORotate would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + Rotation mode + + + EXPERIMENTAL METHOD - Tweens a Transform's lcoalRotation BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableRotate tweens to work together on the same target, + instead than fight each other as multiple DORotate would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + Rotation mode + + + Punches a Transform's localRotation BY the given value and then back to the starting one + as if it was connected to the starting rotation via an elastic. Does it in a way that allows other + DOBlendableRotate tweens to work together on the same target + The punch strength (added to the Transform's current rotation) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting rotation when bouncing backwards. + 1 creates a full oscillation between the punch rotation and the opposite rotation, + while 0 oscillates only between the punch and the start rotation + + + Tweens a Transform's localScale BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableScale tweens to work together on the same target, + instead than fight each other as multiple DOScale would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + + + + Completes all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens completed + (meaning the tweens that don't have infinite loops and were not already complete) + + For Sequences only: if TRUE also internal Sequence callbacks will be fired, + otherwise they will be ignored + + + + Completes all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens completed + (meaning the tweens that don't have infinite loops and were not already complete) + + For Sequences only: if TRUE also internal Sequence callbacks will be fired, + otherwise they will be ignored + + + + Kills all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens killed. + + If TRUE completes the tween before killing it + + + + Kills all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens killed. + + If TRUE completes the tween before killing it + + + + Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens flipped. + + + + + Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens flipped. + + + + + Sends to the given position all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens involved. + + Time position to reach + (if higher than the whole tween duration the tween will simply reach its end) + If TRUE will play the tween after reaching the given position, otherwise it will pause it + + + + Sends to the given position all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens involved. + + Time position to reach + (if higher than the whole tween duration the tween will simply reach its end) + If TRUE will play the tween after reaching the given position, otherwise it will pause it + + + + Pauses all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens paused. + + + + + Pauses all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens paused. + + + + + Plays all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays backwards all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays backwards all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays forward all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays forward all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Restarts all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens restarted. + + + + + Restarts all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens restarted. + + + + + Rewinds all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens rewinded. + + + + + Rewinds all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens rewinded. + + + + + Smoothly rewinds all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens rewinded. + + + + + Smoothly rewinds all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens rewinded. + + + + + Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens involved. + + + + + Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens involved. + + + + + This class serves only as a utility class to store tween settings to apply on multiple tweens. + It is in no way needed otherwise, since you can directly apply tween settings to a tween via chaining + + + + A variable you can eventually Clear and reuse when needed, + to avoid instantiating TweenParams objects + + + Creates a new TweenParams object, which you can use to store tween settings + to pass to multiple tweens via myTween.SetAs(myTweenParms) + + + Clears and resets this TweenParams instance using default values, + so it can be reused without instantiating another one + + + Sets the autoKill behaviour of the tween. + Has no effect if the tween has already started + If TRUE the tween will be automatically killed when complete + + + Sets an ID for the tween, which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets an ID for the tween, which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets an ID for the tween, which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets the target for the tween, which can then be used as a filter with DOTween's static methods. + IMPORTANT: use it with caution. If you just want to set an ID for the tween use SetId instead. + When using shorcuts the shortcut target is already assigned as the tween's target, + so using this method will overwrite it and prevent shortcut-operations like myTarget.DOPause from working correctly. + The target to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets the looping options for the tween. + Has no effect if the tween has already started + Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence) + Loop behaviour type (default: LoopType.Restart) + + + Sets the ease of the tween. + If applied to Sequences eases the whole sequence animation + Eventual overshoot or amplitude to use with Back or Elastic easeType (default is 1.70158) + Eventual period to use with Elastic easeType (default is 0) + + + Sets the ease of the tween using an AnimationCurve. + If applied to Sequences eases the whole sequence animation + + + Sets the ease of the tween using a custom ease function. + If applied to Sequences eases the whole sequence animation + + + Sets the recycling behaviour for the tween. + If TRUE the tween will be recycled after being killed, otherwise it will be destroyed. + + + Sets the update type to the one defined in DOTween.defaultUpdateType (UpdateType.Normal unless changed) + and lets you choose if it should be independent from Unity's Time.timeScale + If TRUE the tween will ignore Unity's Time.timeScale + + + Sets the type of update (default or independent) for the tween + The type of update (default: UpdateType.Normal) + If TRUE the tween will ignore Unity's Time.timeScale + + + Sets the onStart callback for the tween. + Called the first time the tween is set in a playing state, after any eventual delay + + + Sets the onPlay callback for the tween. + Called when the tween is set in a playing state, after any eventual delay. + Also called each time the tween resumes playing from a paused state + + + Sets the onRewind callback for the tween. + Called when the tween is rewinded, + either by calling Rewind or by reaching the start position while playing backwards. + Rewinding a tween that is already rewinded will not fire this callback + + + Sets the onUpdate callback for the tween. + Called each time the tween updates + + + Sets the onStepComplete callback for the tween. + Called the moment the tween completes one loop cycle, even when going backwards + + + Sets the onComplete callback for the tween. + Called the moment the tween reaches its final forward position, loops included + + + Sets the onKill callback for the tween. + Called the moment the tween is killed + + + Sets the onWaypointChange callback for the tween. + Called when a path tween reaches a new waypoint + + + Sets a delayed startup for the tween. + Has no effect on Sequences or if the tween has already started + + + If isRelative is TRUE sets the tween as relative + (the endValue will be calculated as startValue + endValue instead than being used directly). + Has no effect on Sequences or if the tween has already started + + + If isSpeedBased is TRUE sets the tween as speed based + (the duration will represent the number of units the tween moves x second). + Has no effect on Sequences, nested tweens, or if the tween has already started + + + + Methods that extend Tween objects and allow to set their parameters + + + + Sets the autoKill behaviour of the tween to TRUE. + Has no effect if the tween has already started or if it's added to a Sequence + + + Sets the autoKill behaviour of the tween. + Has no effect if the tween has already started or if it's added to a Sequence + If TRUE the tween will be automatically killed when complete + + + Sets an ID for the tween (), which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets a string ID for the tween (), which can then be used as a filter with DOTween's static methods. + Filtering via string is 2X faster than using an object as an ID (using the alternate obejct overload) + The string ID to assign to this tween. + + + Sets an int ID for the tween (), which can then be used as a filter with DOTween's static methods. + Filtering via int is 4X faster than via object, 2X faster than via string (using the alternate object/string overloads) + The int ID to assign to this tween. + + + Allows to link this tween to a GameObject + so that it will be automatically killed when the GameObject is destroyed. + Has no effect if the tween is added to a Sequence + The link target (unrelated to the target set via SetTarget) + + + Allows to link this tween to a GameObject and assign a behaviour depending on it. + This will also automatically kill the tween when the GameObject is destroyed. + Has no effect if the tween is added to a Sequence + The link target (unrelated to the target set via SetTarget) + The behaviour to use ( is always evaluated even if you choose another one) + + + Sets the target for the tween, which can then be used as a filter with DOTween's static methods. + IMPORTANT: use it with caution. If you just want to set an ID for the tween use SetId instead. + When using shorcuts the shortcut target is already assigned as the tween's target, + so using this method will overwrite it and prevent shortcut-operations like myTarget.DOPause from working correctly. + The target to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets the looping options for the tween. + Has no effect if the tween has already started + Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence) + + + Sets the looping options for the tween. + Has no effect if the tween has already started + Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence) + Loop behaviour type (default: LoopType.Restart) + + + Sets the ease of the tween. + If applied to Sequences eases the whole sequence animation + + + Sets the ease of the tween. + If applied to Sequences eases the whole sequence animation + + Eventual overshoot to use with Back or Flash ease (default is 1.70158 - 1 for Flash). + In case of Flash ease it must be an intenger and sets the total number of flashes that will happen. + Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value. + + + + Sets the ease of the tween. + If applied to Sequences eases the whole sequence animation + Eventual amplitude to use with Elastic easeType or overshoot to use with Flash easeType (default is 1.70158 - 1 for Flash). + In case of Flash ease it must be an integer and sets the total number of flashes that will happen. + Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value. + + Eventual period to use with Elastic or Flash easeType (default is 0). + In case of Flash ease it indicates the power in time of the ease, and must be between -1 and 1. + 0 is balanced, 1 weakens the ease with time, -1 starts the ease weakened and gives it power towards the end. + + + + Sets the ease of the tween using an AnimationCurve. + If applied to Sequences eases the whole sequence animation + + + Sets the ease of the tween using a custom ease function (which must return a value between 0 and 1). + If applied to Sequences eases the whole sequence animation + + + Allows the tween to be recycled after being killed. + + + Sets the recycling behaviour for the tween. + If TRUE the tween will be recycled after being killed, otherwise it will be destroyed. + + + Sets the update type to UpdateType.Normal and lets you choose if it should be independent from Unity's Time.timeScale + If TRUE the tween will ignore Unity's Time.timeScale + + + Sets the type of update for the tween + The type of update (defalt: UpdateType.Normal) + + + Sets the type of update for the tween and lets you choose if it should be independent from Unity's Time.timeScale + The type of update + If TRUE the tween will ignore Unity's Time.timeScale + + + EXPERIMENTAL: inverts this tween, so that it will play from the end to the beginning + (playing it backwards will actually play it from the beginning to the end). + Has no effect if the tween has already started or if it's added to a Sequence + + + EXPERIMENTAL: inverts this tween, so that it will play from the end to the beginning + (playing it backwards will actually play it from the beginning to the end). + Has no effect if the tween has already started or if it's added to a Sequence + If TRUE the tween will be inverted, otherwise it won't + + + Sets the onStart callback for the tween, clearing any previous onStart callback that was set. + Called the first time the tween is set in a playing state, after any eventual delay + + + Sets the onPlay callback for the tween, clearing any previous onPlay callback that was set. + Called when the tween is set in a playing state, after any eventual delay. + Also called each time the tween resumes playing from a paused state + + + Sets the onPause callback for the tween, clearing any previous onPause callback that was set. + Called when the tween state changes from playing to paused. + If the tween has autoKill set to FALSE, this is called also when the tween reaches completion. + + + Sets the onRewind callback for the tween, clearing any previous onRewind callback that was set. + Called when the tween is rewinded, + either by calling Rewind or by reaching the start position while playing backwards. + Rewinding a tween that is already rewinded will not fire this callback + + + Sets the onUpdate callback for the tween, clearing any previous onUpdate callback that was set. + Called each time the tween updates + + + Sets the onStepComplete callback for the tween, clearing any previous onStepComplete callback that was set. + Called the moment the tween completes one loop cycle, even when going backwards + + + Sets the onComplete callback for the tween, clearing any previous onComplete callback that was set. + Called the moment the tween reaches its final forward position, loops included + + + Sets the onKill callback for the tween, clearing any previous onKill callback that was set. + Called the moment the tween is killed + + + Sets the onWaypointChange callback for the tween, clearing any previous onWaypointChange callback that was set. + Called when a path tween's current waypoint changes + + + Sets the parameters of the tween (id, ease, loops, delay, timeScale, callbacks, etc) as the parameters of the given one. + Doesn't copy specific SetOptions settings: those will need to be applied manually each time. + Has no effect if the tween has already started. + NOTE: the tween's target will not be changed + Tween from which to copy the parameters + + + Sets the parameters of the tween (id, ease, loops, delay, timeScale, callbacks, etc) as the parameters of the given TweenParams. + Has no effect if the tween has already started. + TweenParams from which to copy the parameters + + + Adds the given tween to the end of the Sequence. + Has no effect if the Sequence has already started + The tween to append + + + Adds the given tween to the beginning of the Sequence, pushing forward the other nested content. + Has no effect if the Sequence has already started + The tween to prepend + + + Inserts the given tween at the same time position of the last tween, callback or intervale added to the Sequence. + Note that, in case of a Join after an interval, the insertion time will be the time where the interval starts, not where it finishes. + Has no effect if the Sequence has already started + + + Inserts the given tween at the given time position in the Sequence, + automatically adding an interval if needed. + Has no effect if the Sequence has already started + The time position where the tween will be placed + The tween to insert + + + Adds the given interval to the end of the Sequence. + Has no effect if the Sequence has already started + The interval duration + + + Adds the given interval to the beginning of the Sequence, pushing forward the other nested content. + Has no effect if the Sequence has already started + The interval duration + + + Adds the given callback to the end of the Sequence. + Has no effect if the Sequence has already started + The callback to append + + + Adds the given callback to the beginning of the Sequence, pushing forward the other nested content. + Has no effect if the Sequence has already started + The callback to prepend + + + Inserts the given callback at the given time position in the Sequence, + automatically adding an interval if needed. + Has no effect if the Sequence has already started + The time position where the callback will be placed + The callback to insert + + + Changes a TO tween into a FROM tween: sets the current target's position as the tween's endValue + then immediately sends the target to the previously set endValue. + + + Changes a TO tween into a FROM tween: sets the current target's position as the tween's endValue + then immediately sends the target to the previously set endValue. + If TRUE the FROM value will be calculated as relative to the current one + + + Changes a TO tween into a FROM tween: sets the current value of the target as the endValue, + and the previously passed endValue as the actual startValue. + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + If TRUE the FROM value will be calculated as relative to the current one + + + Changes a TO tween into a FROM tween: sets the tween's starting value to the given one + and eventually sets the tween's target to that value immediately. + Value to start from + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + If TRUE the FROM/TO values will be calculated as relative to the current ones + + + Changes a TO tween into a FROM tween: sets the tween's starting value to the given one + and eventually sets the tween's target to that value immediately. + Alpha value to start from (in case of Fade tweens) + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + If TRUE the FROM/TO values will be calculated as relative to the current ones + + + Changes a TO tween into a FROM tween: sets the tween's starting value to the given one + and eventually sets the tween's target to that value immediately. + Value to start from (in case of Vector tweens that act on a single coordinate or scale tweens) + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + If TRUE the FROM/TO values will be calculated as relative to the current ones + + + Changes a TO tween into a FROM tween: sets the tween's starting value to the given one + and eventually sets the tween's target to that value immediately. + Value to start from (in case of Vector tweens that act on a single coordinate or scale tweens) + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + If TRUE the FROM/TO values will be calculated as relative to the current ones + + + Sets a delayed startup for the tween. + In case of Sequences behaves the same as , + which means the delay will repeat in case of loops (while with tweens it's ignored after the first loop cycle). + Has no effect if the tween has already started + + + EXPERIMENTAL: implemented in v1.2.340. + Sets a delayed startup for the tween with options to choose how the delay is applied in case of Sequences. + Has no effect if the tween has already started + Only used by types: If FALSE sets the delay as a one-time occurrence + (defaults to this for types), + otherwise as a Sequence interval which will repeat at the beginning of every loop cycle + + + Sets the tween as relative + (the endValue will be calculated as startValue + endValue instead than being used directly). + Has no effect on Sequences or if the tween has already started + + + If isRelative is TRUE sets the tween as relative + (the endValue will be calculated as startValue + endValue instead than being used directly). + Has no effect on Sequences or if the tween has already started + + + If isSpeedBased is TRUE sets the tween as speed based + (the duration will represent the number of units the tween moves x second). + Has no effect on Sequences, nested tweens, or if the tween has already started + + + If isSpeedBased is TRUE sets the tween as speed based + (the duration will represent the number of units the tween moves x second). + Has no effect on Sequences, nested tweens, or if the tween has already started + + + Options for float tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector2 tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector2 tweens + Selecting an axis will tween the vector only on that axis, leaving the others untouched + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector3 tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector3 tweens + Selecting an axis will tween the vector only on that axis, leaving the others untouched + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector4 tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector4 tweens + Selecting an axis will tween the vector only on that axis, leaving the others untouched + If TRUE the tween will smoothly snap all values to integers + + + Options for Quaternion tweens + If TRUE (default) the rotation will take the shortest route, and will not rotate more than 360°. + If FALSE the rotation will be fully accounted. Is always FALSE if the tween is set as relative + + + Options for Color tweens + If TRUE only the alpha value of the color will be tweened + + + Options for Vector4 tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector4 tweens + If TRUE, rich text will be interpreted correctly while animated, + otherwise all tags will be considered as normal text + The type of scramble to use, if any + A string containing the characters to use for scrambling. + Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters. + Leave it to NULL to use default ones + + + Options for Vector3Array tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector3Array tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for ShapeCircle tweens + If TRUE the center you set in the DOTween.To method will be considered as relative + to the starting position of the target + If TRUE the tween will smoothly snap all values to integers + + + Options for Path tweens (created via the DOPath shortcut) + The eventual movement axis to lock. You can input multiple axis if you separate them like this: + AxisConstrain.X | AxisConstraint.Y + The eventual rotation axis to lock. You can input multiple axis if you separate them like this: + AxisConstrain.X | AxisConstraint.Y + + + Options for Path tweens (created via the DOPath shortcut) + If TRUE the path will be automatically closed + The eventual movement axis to lock. You can input multiple axis if you separate them like this: + AxisConstrain.X | AxisConstraint.Y + The eventual rotation axis to lock. You can input multiple axis if you separate them like this: + AxisConstrain.X | AxisConstraint.Y + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target towards the given position. + Must be chained directly to the tween creation method or to a SetOptions + The position to look at + The eventual direction to consider as "forward". + If left to NULL defaults to the regular forward side of the transform + The vector that defines in which direction up is (default: Vector3.up) + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target towards the given position with options to keep the Z rotation stable. + Must be chained directly to the tween creation method or to a SetOptions + The position to look at + If TRUE doesn't rotate the target along the Z axis + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target towards another transform. + Must be chained directly to the tween creation method or to a SetOptions + The transform to look at + The eventual direction to consider as "forward". + If left to NULL defaults to the regular forward side of the transform + The vector that defines in which direction up is (default: Vector3.up) + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target towards another transform with options to keep the Z rotation stable. + Must be chained directly to the tween creation method or to a SetOptions + The transform to look at + If TRUE doesn't rotate the target along the Z axis + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target to the path, with the given lookAhead. + Must be chained directly to the tween creation method or to a SetOptions + The percentage of lookAhead to use (0 to 1) + The eventual direction to consider as "forward". + If left to NULL defaults to the regular forward side of the transform + The vector that defines in which direction up is (default: Vector3.up) + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the path with options to keep the Z rotation stable. + Must be chained directly to the tween creation method or to a SetOptions + The percentage of lookAhead to use (0 to 1) + If TRUE doesn't rotate the target along the Z axis + + + + Types of log behaviours + + + + Log only warnings and errors + + + Log warnings, errors and additional infos + + + Log only errors + + + + Indicates either a Tweener or a Sequence + + + + TimeScale for the tween + + + If TRUE the tween will play backwards + + + If TRUE the tween is completely inverted but without playing it backwards + (play backwards will actually play the tween in the original direction) + + + Object ID (usable for filtering with DOTween static methods). Can be anything except a string or an int + (use or for those) + + + String ID (usable for filtering with DOTween static methods). 2X faster than using an object id + + + Int ID (usable for filtering with DOTween static methods). 4X faster than using an object id, 2X faster than using a string id. + Default is -999 so avoid using an ID like that or it will capture all unset intIds + + + Tween target (usable for filtering with DOTween static methods). Automatically set by tween creation shortcuts + + + Called when the tween is set in a playing state, after any eventual delay. + Also called each time the tween resumes playing from a paused state + + + Called when the tween state changes from playing to paused. + If the tween has autoKill set to FALSE, this is called also when the tween reaches completion. + + + Called when the tween is rewinded, + either by calling Rewind or by reaching the start position while playing backwards. + Rewinding a tween that is already rewinded will not fire this callback + + + Called each time the tween updates + + + Called the moment the tween completes one loop cycle + + + Called the moment the tween reaches completion (loops included) + + + Called the moment the tween is killed + + + Called when a path tween's current waypoint changes + + + Tweeners-only (ignored by Sequences), returns TRUE if the tween was set as relative + + + + Set by SetTarget if DOTween's Debug Mode is on (see DOTween Utility Panel -> "Store GameObject's ID" debug option + + + + FALSE when tween is (or should be) despawned - set only by TweenManager + + + Gets and sets the time position (loops included, delays excluded) of the tween + + + Returns TRUE if the tween is set to loop (either a set number of times or infinitely) + + + TRUE after the tween was set in a play state at least once, AFTER any delay is elapsed + + + Time position within a single loop cycle + + + + Animates a single value + + + + Changes the start value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new start value + If bigger than 0 applies it as the new tween duration + + + Changes the end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new end value + If bigger than 0 applies it as the new tween duration + If TRUE the start value will become the current target's value, otherwise it will stay the same + + + Changes the end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new end value + If TRUE the start value will become the current target's value, otherwise it will stay the same + + + Changes the start and end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new start value + The new end value + If bigger than 0 applies it as the new tween duration + + + + Used internally + + + + + Update type + + + + Updates every frame during Update calls + + + Updates every frame during LateUpdate calls + + + Updates using FixedUpdate calls + + + Updates using manual update calls + + + diff --git a/Assets/Plugins/Demigiant/DOTween/DOTween.XML.meta b/Assets/Plugins/Demigiant/DOTween/DOTween.XML.meta new file mode 100644 index 0000000..7a866b5 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/DOTween.XML.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 34192c5e0d14aee43a0e86cc4823268a +TextScriptImporter: + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/DOTween.dll b/Assets/Plugins/Demigiant/DOTween/DOTween.dll new file mode 100644 index 0000000000000000000000000000000000000000..4122abf7b2468abcc8bab2114f8475a26517fc42 GIT binary patch literal 174592 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 literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Demigiant/DOTween/DOTween.dll.mdb b/Assets/Plugins/Demigiant/DOTween/DOTween.dll.mdb new file mode 100644 index 0000000000000000000000000000000000000000..ba2dea04bb18c4f59f42dafa760715b68e3af727 GIT binary patch literal 67400 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 literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Demigiant/DOTween/DOTween.dll.mdb.meta b/Assets/Plugins/Demigiant/DOTween/DOTween.dll.mdb.meta new file mode 100644 index 0000000..f64a22a --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/DOTween.dll.mdb.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 4f007001a22b3d24dae350342c4d19c8 +DefaultImporter: + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/DOTween.dll.meta b/Assets/Plugins/Demigiant/DOTween/DOTween.dll.meta new file mode 100644 index 0000000..482dbb8 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/DOTween.dll.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: a811bde74b26b53498b4f6d872b09b6d +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Any: + enabled: 1 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Demigiant/DOTween/Editor.meta b/Assets/Plugins/Demigiant/DOTween/Editor.meta new file mode 100644 index 0000000..532edfb --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Editor.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: b27f58ae5d5c33a4bb2d1f4f34bd036d +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML new file mode 100644 index 0000000..8b82472 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML @@ -0,0 +1,110 @@ + + + + DOTweenEditor + + + + + Starts the update loop of tween in the editor. Has no effect during playMode. + + Eventual callback to call after every update + + + + Stops the update loop and clears the onPreviewUpdated callback. + + If TRUE also resets the tweened objects to their original state. + Note that this works by calling Rewind on all tweens, so it will work correctly + only if you have a single tween type per object and it wasn't killed + If TRUE also kills any cached tween + + + + Readies the tween for editor preview by setting its UpdateType to Manual plus eventual extra settings. + + The tween to ready + If TRUE (recommended) removes all callbacks (OnComplete/Rewind/etc) + If TRUE prevents the tween from being auto-killed at completion + If TRUE starts playing the tween immediately + + + Full major version + first minor version (ex: 2018.1f) + + + Major version + + + First minor version (ex: in 2018.1 it would be 1) + + + + Checks that the given editor texture use the correct import settings, + and applies them if they're incorrect. + + + + + Returns TRUE if setup is required + + + + + Returns TRUE if the file/directory at the given path exists. + + Path, relative to Unity's project folder + + + + + Converts the given project-relative path to a full path, + with backward (\) slashes). + + + + + Converts the given full path to a path usable with AssetDatabase methods + (relative to Unity's project folder, and with the correct Unity forward (/) slashes). + + + + + Connects to a asset. + If the asset already exists at the given path, loads it and returns it. + Otherwise, either returns NULL or automatically creates it before loading and returning it + (depending on the given parameters). + + Asset type + File path (relative to Unity's project folder) + If TRUE and the requested asset doesn't exist, forces its creation + + + + Full path for the given loaded assembly, assembly file included + + + + + Adds the given global define if it's not already present + + + + + Removes the given global define if it's present + + + + + Returns TRUE if the given global define is present in all the + or only in the given , depending on passed parameters. + + + to use. Leave NULL to check in all of them. + + + + Not used as menu item anymore, but as a utiity function + + + + diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta new file mode 100644 index 0000000..7cec113 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 2e2c6224d345d9249acfa6e8ef40bb2d +TextScriptImporter: + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll new file mode 100644 index 0000000000000000000000000000000000000000..c37b48606037f9f3893239c877854690ec0e4d32 GIT binary patch literal 66560 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 literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb new file mode 100644 index 0000000000000000000000000000000000000000..638efc1e678891f8055d211d56f791a3687aabd9 GIT binary patch literal 11777 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 literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb.meta b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb.meta new file mode 100644 index 0000000..bf461f3 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.mdb.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 8f46310a8b0a8f04a92993c37c713243 +DefaultImporter: + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta new file mode 100644 index 0000000..53590f3 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 45d5034162d6cf04dbe46da84fc7d074 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + DefaultValueInitialized: true + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs.meta new file mode 100644 index 0000000..a81ba5f --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 0034ebae0c2a9344e897db1160d71b6d +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..d06fc7c3e49fb705b19f50a23884e11e08fd6e89 GIT binary patch literal 1565 zcmV+&2IBdNP)pK&q+iZU-R{R_dCD)yXSsA=iKiWUaHS%xglyYZad)#h+<5;*}0 zNm4;#XNMU$Zj;|vsJ23aE-5O{$8uo1iN`?c(v%ev86gvrQJJtDUgxox^bsB@>w%Sv@Z{F3?7c1><;yj*g<&fQ;rHj}CCd5!B9uJ9iB}?8sX9 z0l}mbA`+6NSzvKr7orW|#Qq*|(_H8{K}SN-b6PMMr68BfK|728UnV4rbuENZG2Z=Z5Wu9k@Z ztFhSr_^u&Go2vR`!G?lmnDf^U%@^vc&8BfCWA&5;S^i0KcuQ?}kJ(Z3^ukf69xF;y zhTjIduJg}*jhXlo$g+|CIjkSftK3odtF^Ij{rKV$Cnn9$)I>`OWpR2BZvMLfc!?KG z`Ygj57^xT!Rkoeb;;a>--p1*pKcW45EApC=r9;lR-6-kL1bPPs&3JrJ`3>IVgWG}u zrp-R@PdWz2X;89OBJXFclQSuKH%hu+=km#Rb8S^yF>)=)yvW|npJ`O9bTXp9hsHlb znp{n43g)Eywa^bS0=L=}#fV_6`pc{T=00UOIql`_gv<&0h%GG1sFbh_*L zqP^;2G6HL$uEjx);7q^Pe;Vac1Sb6of8vi>KZaIU-M!xHLy7h)J?TTTtlXuy)v(S-r9V9I7cw) zBJ@dWbWCbJy!KBwxl~8X#1q??E z(FRaBcRnf^OG3xEWE{XiDJhYPVBV54Q*B2`fK%)r4bJp zv@(2PX=l*%^bG!@&}Ku`gi%4ta5WNM0#2BfuE7?N_gS0ljFV#0yW1U1N=~9Q$*7V9 zs*5|&bg|QQt;WLQDrER5jfAhm2W6wJag5au!96_|(2Th-DB`E<_rUdkM#GW4COG!3 z`K~-?KL;C^l|r|5RUE^pEPvtTLR^K!B04D#hpLNGOCz;*Z|Rx&7b{!rLVU{NI)eH5 zyg0@a6A$elUi>gA6@P$cWD53gSzVnTr*}j6sd4;47Sd19E6U{>QXP%UxLJ2^hjTS@ z6ZIq2+r)$@>IAiS(jN5U4r-m;p98e&wn5+}NTri*S7~M1@c0mh@Mz$FrSMzj$u5?< P00000NkvXXu0mjftl$Bl literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta new file mode 100644 index 0000000..61c3cce --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 8da095e39e9b4df488dfd436f81116d6 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 128 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..7cd74c1a26df1a45564c7a0e21c62d0ef3af2fd1 GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{!3Opi<85sBugD~Uq{1quc!H=FU zjv*3LlT#WP(iF^Cl2R3(u|Mi}s1fft&-^joZ3WZ(2Ug1Y!S$8-a*li}_21XqSnvJ# z@Y+`2=i8W`Zfg*cV81TuZmqUr`JI~8M}9x(m1v%HMLo`ySuokJ?%Vq7{C4$+ST-HH z5`RuO<@s#=8XoVy+lF)YEaxg?4vAr1(jlM1>Tx0PF<0}pFUf679a{7Ee==}5`qQz? zuIUa#(3byge21?t-^6oqTDwHc&iz0s`zDdQwtGKbESsPtIM1KwqFB4+nW=frYn!|7 zvs(U9y->(A=TFZ3t)>6Hv^;B{u+A(fd3smW;eIaTDS0KOITHVv7#gf%Y$mkMJ`MCd NgQu&X%Q~loCICTRfS>>X literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta new file mode 100644 index 0000000..c343a61 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 61521df2e071645488ba3d05e49289ae +timeCreated: 1602317874 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png new file mode 100644 index 0000000000000000000000000000000000000000..e29d02fe18b777b1d316feb647b339803c5126de GIT binary patch literal 4409 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 literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png.meta new file mode 100644 index 0000000..7ca1911 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 7051dba417b3d53409f2918f1ea4938d +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..e48db5ef7a2b83eff50d6e3b5fe9ba3bcd4a5015 GIT binary patch literal 4429 zcmV-T5wh-yP)pV|4BqaRCt{2oC}ndRTam-d$}`=KmylMW&q7h$wvaYFsxjKXh5NY zB9jj^Mg|3ZgbTB@GBPO*luF(MISEQRg33b?5=J1f0`oy8p+q3e3=A`fs0_^9+wXtp zoV(6^e)rD6fVgV*T4$ZtKKnerz4zJsoO5r;JA!c2O*i!kg+dQapFaKEBT3i7h!G>c z7>~!_fPUy`&`$+7-+c2y=Jlm%)240kji+}k7Mnd|#*9u)?Zd3y3%=qp%=Ka4SY9OR z?UvE517q9S)G_=&L-<$^pc$Is(*TjC5!HwCP5<8^+lqJ|{k>w_78DeGj`|@a+YnY#x7Zm= zHvJAIoWK}<*U%aaA3nT0v<8u^%FN81`N$)W>}8H$C!dW*pKtLP)1{1K7k&NZP}aB^ zjy^PLN8n?Bo9IQD z@Zd}(%)AT1jW=b@o8jm{Q+EV0&yUf138qHliRms^8YUb@^g(WJ?p4y}ghCkiowBmB zepOXf&qkxs88Gd6($WVH9=sCVSEfvv@-__lYtk=c^9~ms1nO~UmCHYHJI>0=8c1Iq zq5pYk*HAQ-wi1jxN&nEGL4L+Bl#rcI^i#qTnDLjy)9K?L)r}lE@;R7(a{m5l2t(tESBvn6~B*tw(-_R!~FgNQJf zeMGPOiZdBoSGRz**y+cs0n&`G85#ji6$CNoTASe`t$@iAg20EpfT%OfummRbh*f+% z<>wa{7cZi0w#*O8UZE_X^ejWBC!sy{OASp$@M)|ow37@#o1TOM#~bqKz|TIv^5cL_`u-@ku<((E8V)2rJtzTuGl6=5}PN{ClhS655W zHeova%k>jFcI>zSbE|-U)?&v$O}ZDwHE8td7Kc6yVB{S7X-QgwaFH4J4;lBLshcm2 z%}#Iw@gHW*npKGa%z@T0LJ9q?qMiJgz+J|`9t26I-VzvIg0~j`V5w7INSFFVXlr(3Gc&P%U}j++JxUAt%~D#8BFkbvYTL##jZ^+Z4M*%lvZ|W>O=@3 zx`K8cp!*M7Z%(4VV)NPswr}6wmwwLy_n!#I3zj~NsgtMg6EwaEJIXvUy6pqUIEv5= z&YwM6~gGUg&b=S{Z^0 zrH)P8w{L#}LU5msml59E)8VJMS#A_G-z+yBntY-5X$6>LHyZuGvFe|lA&Z@4D`SxM zzPP~#&2UWNe^wCCkiCv&|GHf!%J`)F&Ckz25i{;&b1N>NX`Ak6{CFcrjy%n)yH&3T zy4hFE4s{B?PdiM?@|iPdmb*BZuI-LH?zmG(?gM|bi*MWeq3z>~+Gl2ZUkt@VS+THJ z)#m+H8@A+Mlr-mbD1p+bkuT`BlbKpxUakWRucD&jt>WV1ddkht1C#k}zv-zv7{*kQ zot?eY(g*_e`#&oP|F4jlnJH5+aj1YWB<^8gvTbA^z&x8`@%Z?91<)segf*8R1m|iU z1dzVW*T=oo-9d64;e6BAILd~2K65)d@43zyvDm|L&(kxUh!=``x?BIK%?HW026P7{ z^RC{5O?<#!@;wu@qES6#neW!qrw$`}gQNM3vgHz>($dn`PzJxn-y26@!{J0mQT z8n;TWLY>q5VvrU&9Dx3vx-&ppE7IYO7%?IbybXM;H`C#z0vzenaW?Z9|EXl(gI0Ax6(0$oK~GC`UjeNWH=V8x8uLun^#bsU8ru(apCDS|mN75gny1um21nmcZ=G~( ztefe3DVxk#b6MY?xVY4J3!n$5a{d5T7H;;e~ z)JM(k(9=)H;3rQe_0j>TbWbZ27ix4g1%|mnfl5tUAM8Q<1i=LzZKfKyePHGSG`snC zmms_#(Dvp$U<(Aazy*x|K^CGfW4}?ti`KoHd{@dZG7kei${$oXl==AkMzB6+^V8Rl znBznKaz8G8FCh#{H+3Q%%pzBT9m)ZHRKb*b-nM@xIf|9~~vg^#V zWIadLt*OkZz2t|(1TRo`A!%(f+A0T8_YwK=)QuA@^140lr8hg~xw54849fLD@7I+7 z%-_G9v8=4D8E6Atg2}9TUeB`q=lB8^NzWGa#Co+`E>ny?uCO~DsOf<@4C|H#Wrd9sIpa-|%8cKd}m=UF)JQ^`x2 zJm*7gV=i#-qJ9Fq-qVa}pV9n{f^<(TJuv~D^F0G#h8|2oaaO5 zPeB#*v(h|s&^UE*mat2~pU4>Z2t8nk5UZWj`cXz=rsa44}`gyOOHZ4nOgKrf?3nGF?Qn+wy8nX$@0Sfh(j z^E^fCIWWLVXk{)Gk8I4sF@8B?9AWF>3V$+Ckq7 z!zF%;fX35v11-7)A$iFIbN3>WFs#tAmb4R-T4ZidlXkEiGa_lv>(K&T2s-(YgQVA~ zLjs1{3K|ET_S&JIa^~?2V;kX{+pYL5wVIFm(9;jV-R3K4Gg%4d`(>gi0`VK=5r%cl z&##eOm`~exOk2(GkUxqu&N0mAyT0Pn4wF`Aogxv}v(II^`f<%Sh`>-{;^lg*X#5-b zLS?MQ8U&!bz9HX9>-MqByimOEsZA&zI@y-R;-Qj|PO3ujfu3{169lpzh!RJ%&aS1t zqU_Yk_gpUUZRYZAZf9Jh3knJ*r(F;qr2E0i=@5KZX_&YRThB7$os>->bRoDx^scY@ z-T;!)99rB7HbCPn%C@;klxs^C?GYBwJl9?&lPO@Fn+fOGJPiISA4ks}bV{I`+P3~S z+KmvdmzYl(^e0htrVqt^94CRU@ICk58Zf^EFsIF_>JAl{mwu$w)eT+)CpBqkC7#DK z_mYNiSwpK7D$Hq-+UOWl&pn=zDP#@^G~ZT1G-5Tidf6Mp7`xJz?aJ$4wllB)GR&oo z4UNJ4;!oh>+H}fyTeQ=Toyk14JM3wwpJcnBLcO8U_RivI3lwt}kzXV;0;&5t<;A`x z>7FTD&^9acsvk7^DCpN`(DFai)&k2e9PQv;%NWMlpJCSPI2M~j{ZK0;@*{K-VopN> zPpW7$mwxBVL`yNBBrpyMd5+Ji?wktWJP-d=f%(~}e(1E8b$PiVeEZy8=CCP}Y1l)* zF|li9>nIB}jVi7gAZ4-;H{rYvPc6RVForDws)S$i>_HCZrcMC&%1=qvNZ(z*1SF{+ zhBfL?Mqsu2xh&Rhlh$^mUwP>jrDYH?*@w~uI3g#*9Cro0*-s1D`z2`L{cLLwz*P6* z4D04|u{rWe{yT&;5My};ftZ+|pP!eJks%Xp8hMT3B|lxZY5npoFEcZ9jec$kz4d4` z39=s4$t0Q>FdY4sIw4fI+;YojG5vnv+u@Q>SXlTfbl+y|;|32Ne0Tfy?PV%mN|+La z|0#iN<9o?}kr^TFs-L7@>qlg6?x*FW9h^-z)MY}(CscVeA>G2Vsrd7Vx)Wu^wT zhd=Lu2jpKw)Ai$mc7!)!ic95fE07m~LZt6yl&yhZt_$qq}LVicQ?svt48^OOrr#gIe?RIyQ->cWKa-#k7p-dmH zTQnNgZ=c7LpJ{24-|Enn$yDLAOVSFWdz3)WAzIVlV+74zzQIpe)9(0hTO7P9gL}Oj zSdSd9?t-^iYn;u{1nE~k8M z3$NBaR^O%fVM-8xQ?&S&PX^3yj_SZk{MN+0{N3du$hoHe9y7l8189_+c1idzW*92o TqmFO~00000NkvXXu0mjf{EM6C literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta new file mode 100644 index 0000000..f12a1a7 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 519694efe2bb2914788b151fbd8c01f4 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4d710d719075150879b1ee76680af87791c4d3b3 GIT binary patch literal 22787 zcmeIa2|QH&+dqD!Qj&?1R7`~wAyJkvZAdEFcT*`#Dj~9;R!Wv4WSt60Vv;TEWZ#W_ ztl9T{8D>56|J1#H@89!#e&6kRUeEvadfcx&HRsGZpU<_vulIGG!|Gu5LtD+8UcOB)-Y6`qJI{C3sflyDh}?ka!jG-}+}Yo^v4{WE&VJw6AN%TpxY*f% z^4NJG3`EXjBv3ECS#zHgIspCSzn~ZEHP<{&TeAjr3f1fz)wAyJzk~>P0w?cRXwUMV z#ul^tm)K6MgSJ8cwKR`IFZvkDN7eKT3n2;eDSLZe8Z(a z=-yMByTTXl{v^>CzoXgEkT6Kp+jVZ+`&R~;2i&Z?b``odcMZsw3lBty*gTprcfWPO zu>90kqw|%hbxI$PbcB{?hp(va&CALPu6=UsmU(EvyHHY3+i2$A)BH+z+d^`N{rn$a zF{n5We>=9!+^X4p_cd91%WZd2fgm>AhaH02qz9I%T!c-J-=qv3b-2!SVQ_!AGNJo0 z_I4phR}Tea@Y*ChZsqpa4b4^enJN{Z0)v*+u&X1}v8skEo<7=3;<6=eUIp2Ql}{%W z1%C97)4lfOa}|YNiyO04#jKe(po)I%_1Nt)t|U9+x$A{FWxw6f6S@4@hGKOsE0G~O zd9ox;Tk*h02P_sjI~gz^;yMD8>T=V}D5o{@&FoW;T%FnR;-bo3$U4X(??;ou6!4VnKd3 zu_i4}%&sp7jP^eLiwSUO^&c0M)%}{6Nyy>V{H%PT;33E9M!Ns%5#?j(t%@zFyYej@ zmYCerd`d260Zqi-k`N#D(J7*dRrzdo!S7!rKGjXr_kqhQ>>Ba%U0+_39 zGq;R1Y!HpGz~TzsyJKGzh)-gaPy+Ya( z)Mht(lMIsN?c0)T)OL+T*XsqL-li$%A1H4sD@ho-RzRY@9+(fiVsK9D6pHs$4tmRZ z?jv8c*W@&Qv`(+H`xu!c-1!wb8*|1z-O!sfjv2hxKkKM za~c;|n3DN(1#h*~&Z`X!?995Zc=Orv9RIFf!{ZyLC7%Q|2k3b!$!@mMhRg7< zb9-qQA;V18*^H!D8ljbFx81P+Ov-4+LroEzbOD7*vGzjq+tB6jwVc93S z!dSV?gOr+0X1&{MvDpuQ(!P{*+RXcVX>%{d8-2N+7g^9VZ0S@=T1cPb8Jc(B@D7q8ni(M;dojb6iK%PH z&3;a^xOR0yX*ka{!u|3K;ne0ZDb00GU-7b=Ue|6ubywe^9x+r*zAC72ZsTpUd7)Uz z(Okib4Zf|^px%rQAGjv(i1MM7tNJtzBO3q1gfSh}r%8jg9dl%Q%G0MZvz(9baYDo) z|IvCGp0cY+3NtyqZ{x(@B^y)=Im}lgS6L95j2vC=xz2(P_W=VHF0EDVOYS6<#l87& z4FzQ>GQc2Op*JGR{9}G4&lni+qMqU&VyU=vce5yIp1K-a8robywTY z(Boh2j^U&Z-JkJtM4k@>3TuZxJE2?Ja^o_Riq(nrnOdj*yidE>jI5$;ldHbvpAR9J zfwC0Q@|EblRH@4isxjy$!nrh|s8^Gh!ke+AQRTwk8q`P0%Dv5U1nzD^O}*Q-(1{S# zcw3V|fgqQh(5w;cP1tXXOMjwJ#DYkpmS3ORIZ;A&ci%QJCeqIn7gN1H_Sx;smpf(QFA$F@JC=hE+Uz*Yt5e#3%d+?Qc-@`N;?5GqgDPlZ zaP@qd(CvW?d#QUi0bW@FvgTq(MoJ}?yBSY|#KYQ>r~B zN$?@*_z6-~O`(m_u}fdjX>hetGhym0qHACU59?@z@EKu?pXSOw}jqPhu1v2hH`JC5M_)hEv7+Q z;9*2;`O?}=KNchel4{0LI0uZG}G-4s>*yFMbVGnvm( z6pdx)050S<&~w~*OdjOlLrVhV@#L1Rl%?RP4Q?e?NLYal17vxjtd@@ zW# z3JdzsI79i&f}RvEup^J2v7q~4NekQHEB$cj0z8V=dE32k<*!#bfRuh?L1Kd}s7^Kh zbk1NYvVFA-MdKDj*h*PYnGVzM0isVLN(0r)Uq{=!lu;MkD)zr@sXmnfUelNS|%u~+2&#p*8t1c1(==5?cVx%L|^EQ5iaVw zvAHU*%fX6zvy|C_IvHbA{Ru_28y-pJ7%D)mGXt1Z?R9WfEz%3WUF=MnSG6&Ct5gxr zt61_O@Y%`^d~CAlZnMx%Ewai^?ixv|ASx(J;wRug=+)5ua>QL^EIHx?j{2wSzY` z2Wx9V+T3E^+eL`nG~Lx9tZ)Lw(PJek$W5N^Y@cWi@AMK#JSWvW>)EL{ z8n~hN5tWVF)?%X0YuTh(of@$mLa*d|oInlDZJ<0ij5cmHomA_%e=ATnHU&94IJ#rP zO2SjqHczT*2yfDklNC2Un~pWB8QTz&BC`yUR5l(k2#BkWSCC7HKBnyQp>xusz-YTJ zHT@IY#xA4SI!~sWhx>P_aPhoYF&BHELlYHkfu_&Omk+w#px&KvYM)i_-kH67NI~~7 z9P4zwBg_}nKiOt9*+VL77vF`-DLZ`Zx*@+(sr{nhaAk3q5tk+rTaxem>DHkO#(C0b z2)m-KB-9fk_E$A7_&vRObTjX9d&PTN5-APGcmhz4LOl!tzkCdw{yRLVN2NhNJu^_yqwL!44QfjrOw7T;Zd%D0>#xcpE`CEyT zlRABM1G_xTW|ZZ1x-pUXi(6`JTUQpMUE8EFUnl%aO3Wv*!W@R}`wK}yA0E|Scd>oN zf;L!&4PQ-P!u!)on(NI*(yI;gW3jeD4{2kiLVIMsTUuycxx4LCE*u_Snk@escl$wxt`_96d65cOP?@jD@LBOdG?6 z4r?2*ptZ_-lRNEJls*|b@Ay8rCw+6mtO9(pQb%1cAl@(0^r&D=I4+p#yFK$@#SLwk zBBp40uxuM!hnuuT%cte)n^~I2KGummKTtpJ$z8@yAvIs4h6@GqYi*(R+V+ifro@G# zwqD%g_~Ei!5aotaTYXoEl}(von(r!2ZxaRnmx&0P;nk|x2 zfiuOv?#9q5nd2wO(CYreo1p?vN?LGPVF`@5N=wcxaUCzB;n^k%-!tpHuOf?@yv{U( zufupFF$w@RGmmCj(AHRz(FKc>z9G{q`Rbc&6z51$3y!tiA6ZZa;T~<)v3aI9O4?wU{ijIVD5w%OIp$o3T`*RYQ{s+UiFY&D&t{TD&VP#%gzpRz9 z{H`-SGE`yq+OFFUvW8IH{f$-u6$8W zVWnS^VbqO;G<%~LcmG}za=lOCtz-+61P_bF&hsMc5)SN=cvPYKm66g^D=~1uz^S}t zEHJw;E044!gXatlOs=Vm@1NoH=9NhNnycma^@Zw)xseYX(^5Bbq2-akfA)I?Ww{Sx zb#u5QOb0WbmFQ)$`GHxV%L}k3*ua}iul^YjI|hsfg}8>kpJf4&Va-)BNL^)_x2+3^O348C!#%emV7Y z5pMzkfnYo75ftSTKVezcj0N@Y1^Ds<3o?1jf>irJV1Y215sQ9|1DpD20sx54Zvo&^ z|4+9@cWF^iBiq)^F}VPsrfh&IA2IE=FfnHp+zB-!$^aMo^Rm%Xa+tAhI=B-$3$i@Of`}16_w_fINB_J!hU5<~jWB_T*pV#<3FD$@CJi&Bv9gwcn@9b2<29R4 z7wdKz6YsjLb>zA^a^{*1yTX)7d-e5mF-gQPMV0DX1NJ_{bBc$W*Gtj~r$g{u^uuqs zpO+T#hnjr0&nz%L@#1}RqdItiV9kMZ(@{)Hz7R*Th2SE;X}gWo~5H4lY?I z&s-bNf(RN6dpvy&mPipYqAh46UOyH7r=zyWw}>T#4JiPuJ5KtCDWT^dTmZ2901KLH zVnI7GpG6tqQy33;#j)C-YGdrtgB#Cb=*w_L@bpF)(~q74IAjq4+Fy@;mMPXG@<3?B zdg-LHluQ5|=-x5CsYD@3qGxr{d{Xg~^$@qEnM={A${nGBDH{44y--gry_HmU>5SA& ze9Yb~ku>t=fY~ttd~|A=PNJ?pGp;_B?iH-${xBfM-Bk)MxnIbF-bMi>v4LWP&x8g2 z;RV{jpe}(zh|QA)ojyuH)}RsbU~&|CY38R^=$i0>zkXkXR*#~t{8&2Mzvw~|H*jn4 zhwj#|dw1=rI4fv;4{s$?s>SCUc0k1D{_o-c70dsc!{6fu%2Pwy z!I`*S`(Nci(Uf8dQm7YIxU>!vxTtcZK=$z;{a9{?!C*!xehW-`OrUK{>&aox z;y%ik!rN7os!gRCzBdU|gBa!pqsblEq0%-Vo76}+7i3i~!hTOd?*+=8UvL=P=9xT; z&U*X3mqYieOSG<$DYr3Y3$LIDmd6e4?>r#Zf{vG6w<17Pm5B!4jn(Z z8+Tb^%#mubTZLa&vag|U*yq8^1u2Qc73xon%lF4s_ov~>*`icdr~`k zYGXCz%HCWQz3GYX_T4XTcTf5_Mvl5Ti`Qi7hh}9GCi|S2cjMfC?&aDPZCzaEd{%4d z+oxNK%-BeRPN>8?gY(-KZYky@IZ&)RYclH84HG^jP*V$O9&+wu{>vS5vBq6y1wjw^ zGWM<=WaP9TskWxz5jAf!qyV6X#?21DbdBt^hb)uI!)Wfy#s5@Kn{Amm z-N}MPhLFDNh!%EJ8Dwvm@+3y#Bts;EuIEF4nr}n zae^>!LHsLVYX72*IX)TkR-ZfHEc`X&g~r~Py`m?FxICHb+;iXWdoSc4CT{~Tsrvak z(RMJ*5-lv8a`H`kUC9ariWYf}O2^Wd2?JOR6aO4>C`R8yK3<2H=6;Zn^AS^hODlxc z3AiM9#tXaTvjNj~9*=k<(u~T|!Csg5YV!6EzoC1jDSAN;{!Z)8%8y;=Lk#zD3=icV-TEQ3#`;aD_icVj1)wTqQ%4w#s1QnKbNtJRQr= z=zEAF>q!7G1%os#`)*z;C;3JMiN~@*^<1PBcS6jFpk;o>_i)aD=v#m+E*V&0LCp300DL}6phN{v zAL3sG5-%t3R0*2u_X{r28-#b%CfUnRINr>5IH0petWE$@yo7SLyyzT$2bk9gpI5iH|^C%VH}dIZQY7N-;6;lDIU z3`(2XpM^7g_AcsJU}fi30o}tIy~{^0RUf_+5)zbBA9(pg(p`TRwEnKQyu|`DE;_~Z zd9W#;zh*M7#(? zx7o#lFqn0S#!GTdU!5Bu(AEvaZYnhm3f=B^IonS8h};8O`mtAeVP4+zL&c^J53`=rB{>yt-i2@Dm5ex^&aa&gK^9 z&+k3hdn`|SQQTMj(?_*qUTxSro;Iln(P!H{=tRD256Vpv9mug=YnI^BonJ@n6>jt~ zSjt^FRwU4}qMJ2G6Y^2boN!t^e%m95Ax?nc#(aJNeIr0Ih>t@$D?s@|EQVi>F`aUj z(8s+DTMpfIc)Bw!`hE9v&$EJS9eqWltaRN);u1(**Ikm#Hf^l$B`n!w_(sQy9=vTs z+1Jp0X(2q&%6&`t_d(i@#8YQ`KK1jwB%U_25)*fGZ;;l<4O`eLw1ip&zlR45DD23S z4#FIRz%cNVUTKg=e0(-Bf>Bdpgx8qAIg0L9=%Z38(u=4xL*z05@J9V88vj*LzAXMM zHg68WV`KeLY{?dml4y@f=`wfPu?(m>Ge<+i(wA&>q@|!>FqDLSbw+Zb;I) zqG2yzVc~Mqnfswx23720aSw~8I283uOPoA13Bo<`V&aYt>A@EJ{oXRx&LhEtm>m`! zQ-)giZby06e6Wb%771WqeBmL(n5rPk9KF-wqI9ugg&|NGm?D0+<#~2e4qTEl&%xZ3 z4);+(%}d43#5gb*41TH*mLvfm{@bINY)8V<(mZw;ZJx>~1_d$x8+us^^jF}KALaJ% zs(IlJG$T-SkYdyCiQ&4DMj}Gxmv2k|I9_uRMM%~fp>$IZRv5TW=&uw%>}zx1YP}0qsyLy%u$) zp1m0$%hOeOGeV|pP)0fIx{FQ6RPms=ezKixiT#weKFDqVFQCQVsEVF)#ovfJ|7`cx zq#of1(k$pY*6O9TT;e*v8_j0!ET~u|fP0^mYCYfuWK;5Ud}ljnW`#}mIr{2-FY--2 zVEE{9TZ_s@wF^$QR&~n15tX2+GN-szwCwO2|4fwvK+b3PcWux8!)}tD%y{wyo~Wi4_{*(0`0sACRjt~ z)FW_S1WvkjWt5j1xbaKER0wQJ z<(guS4F|VOrGbgX?wpt>0Dz1f} z3FI)ex{ujey}$S6MsqwfF$r!w)dIqyG^LHc6IX)_EY^O8?dkxIF%XRm2)S-!5wvGBnz$$I}MoxEnb$TMH66FZdy!>w(%g?MY0+wUYBgoM&- z^g<@RGUjjZxUIV1_A`-JYu7pY%hn^f-keMJa~bXm{i7{NS}?r5D}H})ilp3(YV&E) z#K6@2mzkM5;vp(WII?`a#WSKZ6FQe>bv?hBJ&*Rhv$<^HbpHF*O}K_vR}S7x6N&D4 zPS*lsHgBFJF%j&-$Caa)FlOmU#AT$pg)qL?4ur@EhV9Q!i)*FI{mz6O(=fPu#aH*p z29-eT=!@fKLhcK-S}l@A+o!ggO|;*sDN-i|tusUu0`8o^+l!{^8h0Gj%)(>$yIvj> zGd)O{tmL5sd{$*<0qmCt9=~9T-wJc%Qj{{JeZ`85s)SCiC1u~KvWlAhE-z>>3?b^t zdNEm0u?|g=OKaiS zo`=fI&dGaTlb7S~wiNqi&lTL;M1dOa1y|l%H{EPzPFh{J;rBzTZ5$j5)8yTC9`^=I z3w*<;4CIAIC)ds8OnT(rjdsePb_?_VF$3T&OFsrzD}cGaPB?^AvVfwGRSOASVK}^; z2pfpmdxA5dsyNL5v*Oy_TWl{R-Ibg6@O$WDR;YJg^4_NPPiMATJ%edOh2AR{0#p3s zJ)YkNBwAWh;iFXX&#U3Rp3z2z^Sx$;g=O|47Z2BXl9CNyi5HjLn20^%A2kwQ8A1uF z*nHe5s=cdUduQB+Ny0SF5gTj0!}dx_O^oPW0&2h4%Dx!8R>$YLvF7R=@(UV>Cg~|= z3i#Su(rq(jRl9B10O2`WZ#b17IeiREUO*#{CCFUT3j>n`+4ed@&lK#74OIy$qA(Oj z5K*9=HPSRHmbosaf{5uQePl$Ed-#7?_&lLr$Pv5W=gl@YQ3AtD1EC-;mnbh|9R_Nf z;z-!HxQ8+ST9ts3SRgV2)iVO=dyQmsQpjy za8<5HMl@c8cK;1ZhZ#v2ehYx{5Y^*h4q;j1CLhdutQ&RSSe$NpF~o1#u^RRPo9gcsba%Joer@x<8o8yNsc8 zn1Sq*g|AD;&GBKt_=W6f3e0QyDe2E@ZI5)I_hR%7cTv*Gs;c;A?Rb^$6(BUdLFv_0 z!mF%BFYQ8U+_<|5u9J%R<&bLPbQbSbqNw5?eaySTAjFFLJPCz!^{B{A+HUmxRc{j; z79{inOynFz45-UR`@QHrqsSpUCEr|teD#|%^WjX(i^4pWg+{KT>dNWR9hApx%~Xl6 zIG^}&QMfvKAZdqzZg?e;F#iGB3pWy2Q0NPI!DR*0{Te;SKvRV(Nw%e@YnV9H#n@048RjVm8y%L{CG&vrk zOeu`^LM2LW>-*VQf`}U>xgyc%z_g1joD8pCxFcD|vv{u5ED z!l6o^v6aEZMdhUxBhZb^2D#lFRE>>Mg=zZ{L5!iRHI_@;3;#m-(FmbyD@e7VtaJiB zCbd-WmD9)w8aL|Mf$ondrgR+VCiTONunSv}JWUq#F0PKSZGwcQ(Z=f%>B-9rVnrJXGR)j!BG1W4b z5ir#8J&=FS#hcKNSSG~=R5*FQ=vi9SR1^~-Rm7cmwP6%F00gbHz`=9_zVs$)<|i76 z_mW?*n)C{L2f~+iEm8!qQR5Szx4%$H9-R^NScm!AMVoX|AKGs>p^QL<07AloRP-jx zt#gc?N5+P#=7Tb(Zv^3|#y3a|6I<8Z7s+8k!2mM$p&LG;d1X@>iXO6EQ_HgRdU2FT zASBiG%_S}2r9onFfrTgBv=DX2W%y<2d zSamP95g$c>&)%<2;%I9~<<^8bXDT2X9{FO1jkLyCP@*hv!P0k5XbRZ@S6!S#z6JwU zG9UQoc1yo;wR{~TLT#f``>@Z8dGAK)Eu_J@ziUKehG+e2{hn3WH8G&!&VC9 zks0X)pQkHd`UVJk)hXlJCl0VT!Zrk|_%SrO#sT=(&{*HBF4f0I=s4vNEu?7eyf!=Y zBW76gElk=7FN@;w1Gs@!vIah!aYWg)C}x?M;RPV(K1*P?m#2V(W>LdsnS)6b+^ARE z4?6JGU)0(n38H_}r2kKPwz7?;xonf~Q-hoIQbWi&i{VAu&sGzcm?#NZItJ6YLZj-{ zs9vND08Fb50%+Px5JVI3jb9vA#bHc6?(`#sOFIQX@S$cjZIn<$P>m=f;ygo|xBTQm zk2#Q~k%{*?JHaKyz$G+JgG=Cn19cHjHDG!^!WKHqJBa;Nv<8B*s@t!G@<5RaTrJj4 znDIk`g9^=qnKU$}I@V2ksB(-d`!+D3=IV}(mnrcn9^*e7tE8Hi>jv#6F4Uc~PVKznJ%`9a3=!WeQC8r`wsvAZqxXZZW2QEtwOt zcih539y`SJBP`OE#~WmWtvuwgg>5SUL{mK?{!d>$z#dJB2OR8F8JavGjXbo^`9-UN z^FOfrqTzFp6r-hS6p)in@zH$wDf47(exOqdb~IQ4ABwre35E0_s=|Q$hm}5foo&dO9~mdw;~R;^7d;12 zjOVg&5w4-2V2Ihq2u>W3rV3OxA?n&CMCvo}Oa?RV>k$;y9Z1hU2p*|q0)UnsTj(t? z&k;r$L)4@DKEmUhuzXQ0sE{~96<*=q0o>O@8i%~9JGVr1JHU>oTmf4-PM{5f=N>F) zPcuwB(0qXLnQa9bgC_ItQ;s`uh_%ab2Bwe# z7o#Y)0+?}qZ3YU^kayvfO^6SIo%rA(H8*b08AJmof>#W82NdJUr$kxeh4q>-^I`-SrAP!h4gDQAq5~@!JnplG zgM{GdZ|Qc;Qm>?uj%F?aMq#uo3;N<5+n4B(YiU9r6Ro#5OI)SKy4{q|DauYShD%RW z1Alo3_rom69*<=jW0zLvS3{`ebuzVQg$_yI>jv!JeVFc!woU@|cMek(Ss z1QZ2Cn$7HDOimD59snqj7EHbZ6Z=Y$4e+mDzd~6W+C)hziOAbHPwU!*mtHNI^XdH} zvD_iM>PRYdx$GqR1i!OqHH+qMmYd3j`VxgZI(-8HyvgEr5di4NMw(NHx+jTe1fZtjkG42+vo>=Z zd1MSbdsOwuxDxK$OY##R4=*ZEU6u_E#|_-jnFVF0On$ZUAV{~8o$5yxmBoublTY1O zjbuh+hGXFFX+pLAfSVt4X*d{l7?H19u9NKRZ_GjKILR*S2tFBLI9rk8^&VEKbolZOA2=P^E}2bXa)*B|!Y% z2*WtB+$1LSqCGh7Kzi>rLG(Ha0+O}EY73PV5d-HDUM?2^rxsSAVXCSrCM-xsntmM& zvXRz<^Q2X=$uo{b##d0!5>{Gr@bRipWvjA$Lf?1Id(P~cU#uK?c^a)~M(b|opiFN& zn-XNZOB}f|8`X3YMc!pMd4z#x!XFDZfvpDMhy@!BT4y8+QldvtIT(9s{0zD#h|gvW zTcolC+;gy$d9#iM#d_B=o_DGHCE4i~Wa}J}O=}me9$H8XP+cD+kgI1Fvx70l|N7*q zg0%2_5j&$RBXR$8@XbZ%3ZaejtIzl6M4M%W+{@8T4~qDW&35&{E3<8XR=FS=B2b3(g-ut4xs5qnrh3BZO7Sf4t!D=_9g7$cTxYt7w>$8 z*fA$9FKFh4IET;agzuNiy5u1jdq2!^tokQhAQ&(qZ zET*jt3nsgx-xAEN#j5*uV}_HbU~)5txh;&g{Q@$gJx0wKzXKOPBVWfcJV3TFCsB>Y znkkV>b58iDcRe?IYJ6>WQRp($y8lkiNc`fC!^6(4oGmCzHxK_rl_vesiQ1^+fR8^& zWP=-z46&d!!(f(a8JJr-p`Id~1jOL?mxGv}hxX9Ow}FpyI)B41a{=@GmW!zf{zZ1G zg=SwnRk`z&M~-tTvhha^-U#AL3c!BZ_>aGa+DR+S zBjG6}#yoY1y+R1pSYRApo!YIbkbUTCx5R#VD;1Q=I+p>Nw$BlFW7BS(E11AWBscs; ze|^8Kq5Gd)cy6ti5ygH0jiRvYwk_8Ryvu)7v)Gv?c)wTtV1LZr{e@h3`SPnWI!QX? zb4{)`>iqnMi3S2HTz#EbL;O7!m+-4Qankj>zY_b;(n<&_ zs$L*fbY(EL{owDp;BN+GbD2VH1mM1`7pX#gSYwa3C(!4Sdfehg%*+aQIBUM(G(ug} z@OusK8uqyEX0zds!PMP-1N6VuBKIdj;oyrL^41Q?#8SCBVNw}P+k$UB zOsMqx$RL^>VL{HRh=9-e6(#!6eE%@pweA z8GhLt))ILB)`1HaiXzBT%`ExWxmosg_0!E27tdu}Gb-0FC#49PRA>5>`qj+4xzo?- zw_@);op#yOEy#kbazi##dOr^-Ofc#%98xotUvbK+moeV0D)s$4r(qXj^UjTPc69ZO z`|Tw6gsop@okIh-B_YY0j0H&YXsNG9{O#vhP?!~)!s&Ver6#t z_I>Cli_Q}?r?XAv`x}j`_lQm1$B5JF{5Vb(3F#)U?PWn{JUVvDja|r`(n&NwNsqcLa(mA`;>hgW^?N+&#{zioK90d2}@?? z%xj3;Iw)Raz6O;oQB!%n!}!YNxx+@9h=!z>is;1)8gI#xUK{(L{CE=ryEO~a1wcH? z-Z6gA;uvk|LJ=6NAJnpc9b^?Q>#G-V$H$kTn|zV)>cG*v#H3gHVUg2)8GZgarX;x-6YEvs{pjs!lz`qtK%K`c_qgo5^FGEPOQoym{Nkw} zZ-8L;rI10@gEIwX1e&I*M0Ucgj(f47{Vx54U^H&neQX;4gATlhd{qN<;89QWpI~Xa zu4qRb6}!isqZZB-V}t=^(ne6ob5r`XAF~F7saySwDb~OleRdVZ1Jpznj}l|v1=gXa z;_gnO2Wm%*2ASK;i+Eqb#^F@m;29Gnsgy7Wv^OJ8OWW}sUrSao&v5q&=EQ$ex%6fu zubqx-LRx&I%(fW4Ud}3PW)Dnshvzc1LR21BskQ*VLS+PyKlQs`PH#WC5*5cPxFnsamM`8rlwo@wi1mp;!l< zUD>q9ZtSwb`xlQ|x63(|-`%uNrnu_kj=3Y+)bYMpBiUJv48O}upxBKIq&C&j{r-`E zUEvB+-;|CvH79;;-IupH;nF4cuwHe(*C?wC$FfB$r0+^ciZPZQ8gR0+(l*@1qX3+! z>{^PCTt)ro|04junZLe0a$S4=p%Zezv@2&>LivA+iN^94iX=7Swl%443iWat-x&Q&=WWfyza!2o=e>2S+?!q00r>})* z%8Z_!3yKc1O9(H`^3{XhY`!H?+7*{%zY=}6DZa-@^xLqJD_R==)K7W4UtkdNv)j(1 znhd)x`Z2&9Jw6WnC5{K~YchkauI5V@0Qh3&L>z^kQIykJMCt%Plez7eBbfG{3@Wat z6xlN4jJN?uhQULW9ci_5D00pr#AfyIpRcB|a!le2y_9*Y78A*=!whhfFk_FgtIImf zK>z6?kcj`un;bcg=d?f8-rS?bbyeX-KF=OywopAi@v@fZG2zea+WoeUkS8l%iOlT} zX(AuVoKl>d6VA-O)Lb3=CWd=Goam?%FWz#=cbdH5mglB)B-MbP0vA;f8GF0N81v5& z#D5N{D0juW15}opYqNyO_50%xCOzFE;yZfkwh4ncdj&kT1@@)9CuD zAFVqamZiUjO9azk;s(OpcszX{`pFM7=M4C=J@bfNi@PB@f>yp@0 zt#?20+E+E{blZ0IF9ncP#n{X?^NBxKzc)htzV&eQll9%_=*AYpCtF?2T;m$#t{HV` zDeML_^4gp4r#^cgcJxgK*V4v_R{g2$XrnF`)Lu^fU9EhCpE_zl|2L}dKe3UDR>}S8 z1tHD->%xz)LrzLIG}5{oN8;r-&IaGx=%4gFerGE#Z{-+&F>UC;z8#;{;dcKy6V-#u zKv}AXYV~q};0gbrfd8FJd}%>3GS12hAGNjODNF2l#@4T|Uz0A^KPLKa>FC?CPH&I& z#Er+RJ8fx^w2QGWA1!v-s~NsH=(Ne|LGVJFx$4gM`@CMQswn$hInAckMRGODaW?vs zrvZxOr+Y2{9sUn+!~aB&|5sm^xjkc@1r&UFZF+VEG;Cc!dzEUFFn{uH;fskCeoN14Lz>(|v^ zMTahW^VM{zzVu9ydw$Ko;_#;1mz4krOWA#lH%&C_!cCV^#k5^gIxfBV>}xK{2N=thnz2|U16ZSAW*$K=5pVwI*Owh|dybsg>Bsa0FzHRy z2q3caTR~@Q9Mti1%WyfmUdW~2fx7c%5rDC8j(WW}Kvq$>VPXpfhp4&uU}?H4x<#!F zuip!V5DK8H_e5i9bAZ{5nqTVcuOuz25+B0fCt*MG=_0_NR`CuYMcT;2%th&bEz?psG66DeRP!>lLsl_U?=V*e@IR)ckeg%$xJ``y zuBhR-@FFK}D_Z~TuS5H|K`fP@jH0c=!}bw^$P7l^!$h7D09uL9d~8tjBt)G9)UK|G zJy!803o0OJ(9m!NyeR#n;!@dHl*#z|+h%?sI_2mx+@hQ%Oe#iP<|%!vxis9D;l4$Q zL}Y8b{Vb~D;VyQup56oFLKU}c-ol|Kva_OF6#|BnS%vM|T+C&53) zA=(Ri`k2jF>3a0(62hWf(vN21#GzsefGlXxPoEWAIy!m{y$#W5a;%&mrx6-wrzW(C zzrK%-TVgPRmWp9cU{*}2(_k74#x&9!)>Bg8ZbEVisUG(hOoSPg22=UrnGEZB0WEHf_8?52ajcuf>0y4)l89}#kQ>=jDXo1%lVQ8E!RfGr9*e0F|!rW)T5-~d4NZDS$JjnnI zgyR*Z8v!qqS&aY>(D5ypB++|77w;+4&zJC{s|sF!13-*EZq}c!FdbYa?seW{$b+&L3u$K%cSlC>LHbi^m+G?l;S(ab&U(vm!rA?Im|t1F$%#Ju#bQYC>F1x6O` zE7izKX4I+vm!0|8J|$c?)lp{c<%eTY7e9RuO#gIrNB#%tT%PzZhp$;1g396O!OYn} z(H-@s=f)#`TkFvu8<3U$*odgD?x9s&=>Ng94PY=^lQNvg#R8}uctm|8yZ<@IQ z%cA}*X9^rzItPW=?dE>)Ix6y_Zf^vq+(drKL61E_?(Zzp>-Vj3esc9dz=+`1jZH~9 z-*vRxP=74V=!YDG|1Hb-`?t2w)#hqL`D?PsaFlQNJ?r#FS7+Z84Ifby3CvNS_It12-&%1|>Am?x#f@eokv}Ae{UJf(f3to5{oe63GV*nX z%pvetz>QtEdZQ0~ND+N2-8D-X8+D*lZZLsVtug-&0seo2eAOJi~K&uY* zu?c&{yXu+X%SXaTK98R){s4v@?GOAA=o!NAN=;eG!bC=T8~QCu=W_hEQrjON`nB1@ z`{*yc)20v~z{(MPgYEUGum90AH-`)ks);Yv)Oh$hsfp>{GWimJ>XqQoHr$(z#PEIR zb(L(=+J)uf4{BKJPn=4s2qphX*+1RozfjrNGPIwqj=GCN6DTSW+ QE#Li`lK-oJv9mh=KQ4fgsQ>@~ literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta new file mode 100644 index 0000000..26e4255 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 78a59ca99f8987941adb61f9e14a06a7 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + filterMode: 1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/Modules.meta b/Assets/Plugins/Demigiant/DOTween/Modules.meta new file mode 100644 index 0000000..24cd2ac --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 143604b8bad857d47a6f7cc7a533e2dc +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs new file mode 100644 index 0000000..c195b6c --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs @@ -0,0 +1,202 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; +using UnityEngine; +#if UNITY_5 || UNITY_2017_1_OR_NEWER +using UnityEngine.Audio; // Required for AudioMixer +#endif + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleAudio + { + #region Shortcuts + + #region Audio + + ///

Tweens an AudioSource's volume to the given value. + /// Also stores the AudioSource as the tween's target so it can be used for filtered operations + /// The end value to reach (0 to 1)The duration of the tween + public static TweenerCore DOFade(this AudioSource target, float endValue, float duration) + { + if (endValue < 0) endValue = 0; + else if (endValue > 1) endValue = 1; + TweenerCore t = DOTween.To(() => target.volume, x => target.volume = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an AudioSource's pitch to the given value. + /// Also stores the AudioSource as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPitch(this AudioSource target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pitch, x => target.pitch = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + +#if UNITY_5 || UNITY_2017_1_OR_NEWER + #region AudioMixer (Unity 5 or Newer) + + /// Tweens an AudioMixer's exposed float to the given value. + /// Also stores the AudioMixer as the tween's target so it can be used for filtered operations. + /// Note that you need to manually expose a float in an AudioMixerGroup in order to be able to tween it from an AudioMixer. + /// Name given to the exposed float to set + /// The end value to reachThe duration of the tween + public static TweenerCore DOSetFloat(this AudioMixer target, string floatName, float endValue, float duration) + { + TweenerCore t = DOTween.To(()=> { + float currVal; + target.GetFloat(floatName, out currVal); + return currVal; + }, x=> target.SetFloat(floatName, x), endValue, duration); + t.SetTarget(target); + return t; + } + + #region Operation Shortcuts + + /// + /// Completes all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens completed + /// (meaning the tweens that don't have infinite loops and were not already complete) + /// + /// For Sequences only: if TRUE also internal Sequence callbacks will be fired, + /// otherwise they will be ignored + public static int DOComplete(this AudioMixer target, bool withCallbacks = false) + { + return DOTween.Complete(target, withCallbacks); + } + + /// + /// Kills all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens killed. + /// + /// If TRUE completes the tween before killing it + public static int DOKill(this AudioMixer target, bool complete = false) + { + return DOTween.Kill(target, complete); + } + + /// + /// Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens flipped. + /// + public static int DOFlip(this AudioMixer target) + { + return DOTween.Flip(target); + } + + /// + /// Sends to the given position all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens involved. + /// + /// Time position to reach + /// (if higher than the whole tween duration the tween will simply reach its end) + /// If TRUE will play the tween after reaching the given position, otherwise it will pause it + public static int DOGoto(this AudioMixer target, float to, bool andPlay = false) + { + return DOTween.Goto(target, to, andPlay); + } + + /// + /// Pauses all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens paused. + /// + public static int DOPause(this AudioMixer target) + { + return DOTween.Pause(target); + } + + /// + /// Plays all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlay(this AudioMixer target) + { + return DOTween.Play(target); + } + + /// + /// Plays backwards all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlayBackwards(this AudioMixer target) + { + return DOTween.PlayBackwards(target); + } + + /// + /// Plays forward all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlayForward(this AudioMixer target) + { + return DOTween.PlayForward(target); + } + + /// + /// Restarts all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens restarted. + /// + public static int DORestart(this AudioMixer target) + { + return DOTween.Restart(target); + } + + /// + /// Rewinds all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens rewinded. + /// + public static int DORewind(this AudioMixer target) + { + return DOTween.Rewind(target); + } + + /// + /// Smoothly rewinds all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens rewinded. + /// + public static int DOSmoothRewind(this AudioMixer target) + { + return DOTween.SmoothRewind(target); + } + + /// + /// Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens involved. + /// + public static int DOTogglePause(this AudioMixer target) + { + return DOTween.TogglePause(target); + } + + #endregion + + #endregion +#endif + + #endregion + } +} +#endif diff --git a/Assets/Editor/GoDummyPathEditor.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta similarity index 62% rename from Assets/Editor/GoDummyPathEditor.cs.meta rename to Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta index 9f30de8..50aa010 100644 --- a/Assets/Editor/GoDummyPathEditor.cs.meta +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta @@ -1,10 +1,8 @@ fileFormatVersion: 2 -guid: 14be03d8aa8eb4defb30eb2e964df151 +guid: b766d08851589514b97afb23c6f30a70 MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs new file mode 100644 index 0000000..2ab3775 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs @@ -0,0 +1,146 @@ +using UnityEngine; + +#if false || EPO_DOTWEEN // MODULE_MARKER + +using EPOOutline; +using DG.Tweening.Plugins.Options; +using DG.Tweening; +using DG.Tweening.Core; + +namespace DG.Tweening +{ + public static class DOTweenModuleEPOOutline + { + public static int DOKill(this SerializedPass target, bool complete) + { + return DOTween.Kill(target, complete); + } + + public static TweenerCore DOFloat(this SerializedPass target, string propertyName, float endValue, float duration) + { + var tweener = DOTween.To(() => target.GetFloat(propertyName), x => target.SetFloat(propertyName, x), endValue, duration); + tweener.SetOptions(true).SetTarget(target); + return tweener; + } + + public static TweenerCore DOFade(this SerializedPass target, string propertyName, float endValue, float duration) + { + var tweener = DOTween.ToAlpha(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration); + tweener.SetOptions(true).SetTarget(target); + return tweener; + } + + public static TweenerCore DOColor(this SerializedPass target, string propertyName, Color endValue, float duration) + { + var tweener = DOTween.To(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration); + tweener.SetOptions(false).SetTarget(target); + return tweener; + } + + public static TweenerCore DOVector(this SerializedPass target, string propertyName, Vector4 endValue, float duration) + { + var tweener = DOTween.To(() => target.GetVector(propertyName), x => target.SetVector(propertyName, x), endValue, duration); + tweener.SetOptions(false).SetTarget(target); + return tweener; + } + + public static TweenerCore DOFloat(this SerializedPass target, int propertyId, float endValue, float duration) + { + var tweener = DOTween.To(() => target.GetFloat(propertyId), x => target.SetFloat(propertyId, x), endValue, duration); + tweener.SetOptions(true).SetTarget(target); + return tweener; + } + + public static TweenerCore DOFade(this SerializedPass target, int propertyId, float endValue, float duration) + { + var tweener = DOTween.ToAlpha(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration); + tweener.SetOptions(true).SetTarget(target); + return tweener; + } + + public static TweenerCore DOColor(this SerializedPass target, int propertyId, Color endValue, float duration) + { + var tweener = DOTween.To(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration); + tweener.SetOptions(false).SetTarget(target); + return tweener; + } + + public static TweenerCore DOVector(this SerializedPass target, int propertyId, Vector4 endValue, float duration) + { + var tweener = DOTween.To(() => target.GetVector(propertyId), x => target.SetVector(propertyId, x), endValue, duration); + tweener.SetOptions(false).SetTarget(target); + return tweener; + } + + public static int DOKill(this Outlinable.OutlineProperties target, bool complete = false) + { + return DOTween.Kill(target, complete); + } + + public static int DOKill(this Outliner target, bool complete = false) + { + return DOTween.Kill(target, complete); + } + + /// + /// Controls the alpha (transparency) of the outline + /// + public static TweenerCore DOFade(this Outlinable.OutlineProperties target, float endValue, float duration) + { + var tweener = DOTween.ToAlpha(() => target.Color, x => target.Color = x, endValue, duration); + tweener.SetOptions(true).SetTarget(target); + return tweener; + } + + /// + /// Controls the color of the outline + /// + public static TweenerCore DOColor(this Outlinable.OutlineProperties target, Color endValue, float duration) + { + var tweener = DOTween.To(() => target.Color, x => target.Color = x, endValue, duration); + tweener.SetOptions(false).SetTarget(target); + return tweener; + } + + /// + /// Controls the amount of blur applied to the outline + /// + public static TweenerCore DOBlurShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false) + { + var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration); + tweener.SetOptions(snapping).SetTarget(target); + return tweener; + } + + /// + /// Controls the amount of blur applied to the outline + /// + public static TweenerCore DOBlurShift(this Outliner target, float endValue, float duration, bool snapping = false) + { + var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration); + tweener.SetOptions(snapping).SetTarget(target); + return tweener; + } + + /// + /// Controls the amount of dilation applied to the outline + /// + public static TweenerCore DODilateShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false) + { + var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration); + tweener.SetOptions(snapping).SetTarget(target); + return tweener; + } + + /// + /// Controls the amount of dilation applied to the outline + /// + public static TweenerCore DODilateShift(this Outliner target, float endValue, float duration, bool snapping = false) + { + var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration); + tweener.SetOptions(snapping).SetTarget(target); + return tweener; + } + } +} +#endif diff --git a/Assets/Plugins/GoKit/Go.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta similarity index 68% rename from Assets/Plugins/GoKit/Go.cs.meta rename to Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta index 81965c9..4b8991f 100644 --- a/Assets/Plugins/GoKit/Go.cs.meta +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta @@ -1,5 +1,7 @@ fileFormatVersion: 2 -guid: aabcf1780fb4540bbb12fde714c3f88a +guid: e944529dcaee98f4e9498d80e541d93e +timeCreated: 1602593330 +licenseType: Store MonoImporter: serializedVersion: 2 defaultReferences: [] diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs new file mode 100644 index 0000000..08b0700 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs @@ -0,0 +1,216 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Core.Enums; +using DG.Tweening.Plugins; +using DG.Tweening.Plugins.Core.PathCore; +using DG.Tweening.Plugins.Options; +using UnityEngine; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModulePhysics + { + #region Shortcuts + + #region Rigidbody + + /// Tweens a Rigidbody's position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMove(this Rigidbody target, Vector3 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody's X position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveX(this Rigidbody target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue, 0, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody's Y position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveY(this Rigidbody target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, endValue, 0), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody's Z position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveZ(this Rigidbody target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue), duration); + t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody's rotation to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// Rotation mode + public static TweenerCore DORotate(this Rigidbody target, Vector3 endValue, float duration, RotateMode mode = RotateMode.Fast) + { + TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration); + t.SetTarget(target); + t.plugOptions.rotateMode = mode; + return t; + } + + /// Tweens a Rigidbody's rotation so that it will look towards the given position. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The position to look atThe duration of the tween + /// Eventual axis constraint for the rotation + /// The vector that defines in which direction up is (default: Vector3.up) + public static TweenerCore DOLookAt(this Rigidbody target, Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3? up = null) + { + TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, towards, duration) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetLookAt); + t.plugOptions.axisConstraint = axisConstraint; + t.plugOptions.up = (up == null) ? Vector3.up : (Vector3)up; + return t; + } + + #region Special + + /// Tweens a Rigidbody's position to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJump(this Rigidbody target, Vector3 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, jumpPower, 0), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(() => startPosY = target.position.y); + s.Append(DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue.x, 0, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue.z), duration) + .SetOptions(AxisConstraint.Z, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + yTween.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector3 pos = target.position; + pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad); + target.MovePosition(pos); + }); + return s; + } + + /// Tweens a Rigidbody's position through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations. + /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOPath. + /// The waypoints to go through + /// The duration of the tween + /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOPath( + this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, new Path(pathType, path, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + return t; + } + /// Tweens a Rigidbody's localPosition through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations + /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOLocalPath. + /// The waypoint to go through + /// The duration of the tween + /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOLocalPath( + this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + // Used by path editor when creating the actual tween, so it can pass a pre-compiled path + internal static TweenerCore DOPath( + this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + return t; + } + internal static TweenerCore DOLocalPath( + this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Assets/Plugins/GoKit/GoTween.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta similarity index 62% rename from Assets/Plugins/GoKit/GoTween.cs.meta rename to Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta index a59cded..0ce0d75 100644 --- a/Assets/Plugins/GoKit/GoTween.cs.meta +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta @@ -1,10 +1,8 @@ fileFormatVersion: 2 -guid: a5e29433d2fb8417c9b59ce3453f2ca3 +guid: dae9aa560b4242648a3affa2bfabc365 MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs new file mode 100644 index 0000000..d01f728 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs @@ -0,0 +1,193 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true && (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 + + /// Tweens a Rigidbody2D's position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMove(this Rigidbody2D target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody2D's X position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveX(this Rigidbody2D target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector2(endValue, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody2D's Y position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveY(this Rigidbody2D target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector2(0, endValue), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody2D's rotation to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DORotate(this Rigidbody2D target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration); + t.SetTarget(target); + return t; + } + + #region Special + + /// Tweens a Rigidbody2D's position to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations. + /// IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJump(this Rigidbody2D target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.position, x => target.position = x, new Vector2(0, jumpPower), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(() => startPosY = target.position.y); + s.Append(DOTween.To(() => target.position, x => target.position = x, new Vector2(endValue.x, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + yTween.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector3 pos = target.position; + pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad); + target.MovePosition(pos); + }); + return s; + } + + /// Tweens a Rigidbody2D's position through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations. + /// NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOPath. + /// The waypoints to go through + /// The duration of the tween + /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOPath( + this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + int len = path.Length; + Vector3[] path3D = new Vector3[len]; + for (int i = 0; i < len; ++i) path3D[i] = path[i]; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), new Path(pathType, path3D, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody2D = true; + t.plugOptions.mode = pathMode; + return t; + } + /// Tweens a Rigidbody2D's localPosition through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOLocalPath. + /// The waypoint to go through + /// The duration of the tween + /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOLocalPath( + this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + int len = path.Length; + Vector3[] path3D = new Vector3[len]; + for (int i = 0; i < len; ++i) path3D[i] = path[i]; + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path3D, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody2D = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + // Used by path editor when creating the actual tween, so it can pass a pre-compiled path + internal static TweenerCore DOPath( + this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody2D = true; + t.plugOptions.mode = pathMode; + return t; + } + internal static TweenerCore DOLocalPath( + this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody2D = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Assets/Plugins/GoKit/GoDummyPath.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta similarity index 62% rename from Assets/Plugins/GoKit/GoDummyPath.cs.meta rename to Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta index 3c15ce3..ca9ed29 100644 --- a/Assets/Plugins/GoKit/GoDummyPath.cs.meta +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta @@ -1,10 +1,8 @@ fileFormatVersion: 2 -guid: 25af92ea012eb4667a9c36cc4a72a725 +guid: 230fe34542e175245ba74b4659dae700 MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs new file mode 100644 index 0000000..549fff3 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs @@ -0,0 +1,93 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER +using System; +using UnityEngine; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleSprite + { + #region Shortcuts + + #region SpriteRenderer + + /// Tweens a SpriteRenderer's color to the given value. + /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this SpriteRenderer target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Material's alpha color to the given value. + /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this SpriteRenderer target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a SpriteRenderer's color using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this SpriteRenderer target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + + #endregion + + #region Blendables + + #region SpriteRenderer + + /// Tweens a SpriteRenderer's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the SpriteRenderer as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this SpriteRenderer target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta new file mode 100644 index 0000000..a0c67c4 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 188918ab119d93148aa0de59ccf5286b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs new file mode 100644 index 0000000..b3a6fd1 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs @@ -0,0 +1,662 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true && (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; +using DG.Tweening.Plugins.Options; +using Outline = UnityEngine.UI.Outline; +using Text = UnityEngine.UI.Text; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleUI + { + #region Shortcuts + + #region CanvasGroup + + /// Tweens a CanvasGroup's alpha color to the given value. + /// Also stores the canvasGroup as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this CanvasGroup target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.alpha, x => target.alpha = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region Graphic + + /// Tweens an Graphic's color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Graphic target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Graphic's alpha color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Graphic target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region Image + + /// Tweens an Image's color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Image target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Image's alpha color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Image target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Image's fillAmount to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reach (0 to 1)The duration of the tween + public static TweenerCore DOFillAmount(this Image target, float endValue, float duration) + { + if (endValue > 1) endValue = 1; + else if (endValue < 0) endValue = 0; + TweenerCore t = DOTween.To(() => target.fillAmount, x => target.fillAmount = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Image's colors using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this Image target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + + #endregion + + #region LayoutElement + + /// Tweens an LayoutElement's flexibleWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOFlexibleSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => new Vector2(target.flexibleWidth, target.flexibleHeight), x => { + target.flexibleWidth = x.x; + target.flexibleHeight = x.y; + }, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens an LayoutElement's minWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMinSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => new Vector2(target.minWidth, target.minHeight), x => { + target.minWidth = x.x; + target.minHeight = x.y; + }, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens an LayoutElement's preferredWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOPreferredSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => new Vector2(target.preferredWidth, target.preferredHeight), x => { + target.preferredWidth = x.x; + target.preferredHeight = x.y; + }, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + #endregion + + #region Outline + + /// Tweens a Outline's effectColor to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Outline target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.effectColor, x => target.effectColor = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Outline's effectColor alpha to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Outline target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.effectColor, x => target.effectColor = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Outline's effectDistance to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOScale(this Outline target, Vector2 endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.effectDistance, x => target.effectDistance = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region RectTransform + + /// Tweens a RectTransform's anchoredPosition to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPosX(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPosY(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, endValue), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's anchoredPosition3D to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3D(this RectTransform target, Vector3 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition3D X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3DX(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(endValue, 0, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition3D Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3DY(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, endValue, 0), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition3D Z to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3DZ(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, 0, endValue), duration); + t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's anchorMax to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorMax(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchorMax, x => target.anchorMax = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's anchorMin to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorMin(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchorMin, x => target.anchorMin = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's pivot to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPivot(this RectTransform target, Vector2 endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, endValue, duration); + t.SetTarget(target); + return t; + } + /// Tweens a RectTransform's pivot X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPivotX(this RectTransform target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(endValue, 0), duration); + t.SetOptions(AxisConstraint.X).SetTarget(target); + return t; + } + /// Tweens a RectTransform's pivot Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPivotY(this RectTransform target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(0, endValue), duration); + t.SetOptions(AxisConstraint.Y).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's sizeDelta to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOSizeDelta(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.sizeDelta, x => target.sizeDelta = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Punches a RectTransform's anchoredPosition towards the given direction and then back to the starting one + /// as if it was connected to the starting position via an elastic. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The direction and strength of the punch (added to the RectTransform's current position) + /// The duration of the tween + /// Indicates how much will the punch vibrate + /// Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards. + /// 1 creates a full oscillation between the punch direction and the opposite direction, + /// while 0 oscillates only between the punch and the start position + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOPunchAnchorPos(this RectTransform target, Vector2 punch, float duration, int vibrato = 10, float elasticity = 1, bool snapping = false) + { + return DOTween.Punch(() => target.anchoredPosition, x => target.anchoredPosition = x, punch, duration, vibrato, elasticity) + .SetTarget(target).SetOptions(snapping); + } + + /// Shakes a RectTransform's anchoredPosition with the given values. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The duration of the tween + /// The shake strength + /// Indicates how much will the shake vibrate + /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + /// Setting it to 0 will shake along a single direction. + /// If TRUE the tween will smoothly snap all values to integers + /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + /// Randomness mode + public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, float strength = 100, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full) + { + return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, true, fadeOut, randomnessMode) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping); + } + /// Shakes a RectTransform's anchoredPosition with the given values. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The duration of the tween + /// The shake strength on each axis + /// Indicates how much will the shake vibrate + /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + /// Setting it to 0 will shake along a single direction. + /// If TRUE the tween will smoothly snap all values to integers + /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + /// Randomness mode + public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, Vector2 strength, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full) + { + return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, fadeOut, randomnessMode) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping); + } + + #region Special + + /// Tweens a RectTransform's anchoredPosition to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJumpAnchorPos(this RectTransform target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + + // Separate Y Tween so we can elaborate elapsedPercentage on that insted of on the Sequence + // (in case users add a delay or other elements to the Sequence) + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, jumpPower), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(()=> startPosY = target.anchoredPosition.y); + s.Append(DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue.x, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + s.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector2 pos = target.anchoredPosition; + pos.y += DOVirtual.EasedValue(0, offsetY, s.ElapsedDirectionalPercentage(), Ease.OutQuad); + target.anchoredPosition = pos; + }); + return s; + } + + #endregion + + #endregion + + #region ScrollRect + + /// Tweens a ScrollRect's horizontal/verticalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DONormalizedPos(this ScrollRect target, Vector2 endValue, float duration, bool snapping = false) + { + return DOTween.To(() => new Vector2(target.horizontalNormalizedPosition, target.verticalNormalizedPosition), + x => { + target.horizontalNormalizedPosition = x.x; + target.verticalNormalizedPosition = x.y; + }, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + /// Tweens a ScrollRect's horizontalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOHorizontalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.horizontalNormalizedPosition, x => target.horizontalNormalizedPosition = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + /// Tweens a ScrollRect's verticalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOVerticalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.verticalNormalizedPosition, x => target.verticalNormalizedPosition = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + + #endregion + + #region Slider + + /// Tweens a Slider's value to the given value. + /// Also stores the Slider as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOValue(this Slider target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.value, x => target.value = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + #endregion + + #region Text + + /// Tweens a Text's color to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Text target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// + /// Tweens a Text's text from one integer to another, with options for thousands separators + /// + /// The value to start from + /// The end value to reach + /// The duration of the tween + /// If TRUE (default) also adds thousands separators + /// The to use (InvariantCulture if NULL) + public static TweenerCore DOCounter( + this Text target, int fromValue, int endValue, float duration, bool addThousandsSeparator = true, CultureInfo culture = null + ){ + int v = fromValue; + CultureInfo cInfo = !addThousandsSeparator ? null : culture ?? CultureInfo.InvariantCulture; + TweenerCore t = DOTween.To(() => v, x => { + v = x; + target.text = addThousandsSeparator + ? v.ToString("N0", cInfo) + : v.ToString(); + }, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Text's alpha color to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Text target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Text's text to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end string to tween toThe duration of the tween + /// If TRUE (default), rich text will be interpreted correctly while animated, + /// otherwise all tags will be considered as normal text + /// The type of scramble mode to use, if any + /// A string containing the characters to use for scrambling. + /// Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters. + /// Leave it to NULL (default) to use default ones + public static TweenerCore DOText(this Text target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null) + { + if (endValue == null) { + if (Debugger.logPriority > 0) Debugger.LogWarning("You can't pass a NULL string to DOText: an empty string will be used instead to avoid errors"); + endValue = ""; + } + TweenerCore t = DOTween.To(() => target.text, x => target.text = x, endValue, duration); + t.SetOptions(richTextEnabled, scrambleMode, scrambleChars) + .SetTarget(target); + return t; + } + + #endregion + + #region Blendables + + #region Graphic + + /// Tweens a Graphic's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Graphic as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Graphic target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #region Image + + /// Tweens a Image's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Image as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Image target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #region Text + + /// Tweens a Text's color BY the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Text target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #endregion + + #region Shapes + + /// Tweens a RectTransform's anchoredPosition so that it draws a circle around the given center. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations. + /// IMPORTANT: SetFrom(value) requires a instead of a float, where the X property represents the "from degrees value" + /// Circle-center/pivot around which to rotate (in UI anchoredPosition coordinates) + /// The end value degrees to reach (to rotate counter-clockwise pass a negative value) + /// The duration of the tween + /// If TRUE the coordinates will be considered as relative to the target's current anchoredPosition + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOShapeCircle( + this RectTransform target, Vector2 center, float endValueDegrees, float duration, bool relativeCenter = false, bool snapping = false + ) + { + TweenerCore t = DOTween.To( + CirclePlugin.Get(), () => target.anchoredPosition, x => target.anchoredPosition = x, center, duration + ); + t.SetOptions(endValueDegrees, relativeCenter, snapping).SetTarget(target); + return t; + } + + #endregion + + #endregion + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + + public static class Utils + { + /// + /// Converts the anchoredPosition of the first RectTransform to the second RectTransform, + /// taking into consideration offset, anchors and pivot, and returns the new anchoredPosition + /// + public static Vector2 SwitchToRectTransform(RectTransform from, RectTransform to) + { + Vector2 localPoint; + Vector2 fromPivotDerivedOffset = new Vector2(from.rect.width * 0.5f + from.rect.xMin, from.rect.height * 0.5f + from.rect.yMin); + Vector2 screenP = RectTransformUtility.WorldToScreenPoint(null, from.position); + screenP += fromPivotDerivedOffset; + RectTransformUtility.ScreenPointToLocalPointInRectangle(to, screenP, null, out localPoint); + Vector2 pivotDerivedOffset = new Vector2(to.rect.width * 0.5f + to.rect.xMin, to.rect.height * 0.5f + to.rect.yMin); + return to.anchoredPosition + localPoint - pivotDerivedOffset; + } + } + } +} +#endif diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta new file mode 100644 index 0000000..60d55ef --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a060394c03331a64392db53a10e7f2d1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs new file mode 100644 index 0000000..fa1ac05 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs @@ -0,0 +1,403 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +using System; +using UnityEngine; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; +//#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0) +//using Task = System.Threading.Tasks.Task; +//#endif + +#pragma warning disable 1591 +namespace DG.Tweening +{ + /// + /// Shortcuts/functions that are not strictly related to specific Modules + /// but are available only on some Unity versions + /// + public static class DOTweenModuleUnityVersion + { +#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER + #region Unity 4.3 or Newer + + #region Material + + /// Tweens a Material's color using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this Material target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + /// Tweens a Material's named color property using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to use + /// The name of the material property to tween (like _Tint or _SpecColor) + /// The duration of the tween + public static Sequence DOGradientColor(this Material target, Gradient gradient, string property, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.SetColor(property, c.color); + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, property, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + + #endregion + + #endregion +#endif + +#if UNITY_5_3_OR_NEWER || UNITY_2017_1_OR_NEWER + #region Unity 5.3 or Newer + + #region CustomYieldInstructions + + /// + /// Returns a that waits until the tween is killed or complete. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForCompletion(true); + /// + public static CustomYieldInstruction WaitForCompletion(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForCompletion(t); + } + + /// + /// Returns a that waits until the tween is killed or rewinded. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForRewind(); + /// + public static CustomYieldInstruction WaitForRewind(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForRewind(t); + } + + /// + /// Returns a that waits until the tween is killed. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForKill(); + /// + public static CustomYieldInstruction WaitForKill(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForKill(t); + } + + /// + /// Returns a that waits until the tween is killed or has gone through the given amount of loops. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForElapsedLoops(2); + /// + /// Elapsed loops to wait for + public static CustomYieldInstruction WaitForElapsedLoops(this Tween t, int elapsedLoops, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForElapsedLoops(t, elapsedLoops); + } + + /// + /// Returns a that waits until the tween is killed + /// or has reached the given time position (loops included, delays excluded). + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForPosition(2.5f); + /// + /// Position (loops included, delays excluded) to wait for + public static CustomYieldInstruction WaitForPosition(this Tween t, float position, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForPosition(t, position); + } + + /// + /// Returns a that waits until the tween is killed or started + /// (meaning when the tween is set in a playing state the first time, after any eventual delay). + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForStart(); + /// + public static CustomYieldInstruction WaitForStart(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForStart(t); + } + + #endregion + + #endregion +#endif + +#if UNITY_2018_1_OR_NEWER + #region Unity 2018.1 or Newer + + #region Material + + /// Tweens a Material's named texture offset property with the given ID to the given value. + /// Also stores the material as the tween's target so it can be used for filtered operations + /// The end value to reach + /// The ID of the material property to tween (also called nameID in Unity's manual) + /// The duration of the tween + public static TweenerCore DOOffset(this Material target, Vector2 endValue, int propertyID, float duration) + { + if (!target.HasProperty(propertyID)) { + if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID); + return null; + } + TweenerCore t = DOTween.To(() => target.GetTextureOffset(propertyID), x => target.SetTextureOffset(propertyID, x), endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Material's named texture scale property with the given ID to the given value. + /// Also stores the material as the tween's target so it can be used for filtered operations + /// The end value to reach + /// The ID of the material property to tween (also called nameID in Unity's manual) + /// The duration of the tween + public static TweenerCore DOTiling(this Material target, Vector2 endValue, int propertyID, float duration) + { + if (!target.HasProperty(propertyID)) { + if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID); + return null; + } + TweenerCore t = DOTween.To(() => target.GetTextureScale(propertyID), x => target.SetTextureScale(propertyID, x), endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region .NET 4.6 or Newer + +#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0) + + #region Async Instructions + + /// + /// Returns an async that waits until the tween is killed or complete. + /// It can be used inside an async operation. + /// Example usage:await myTween.WaitForCompletion(); + /// + public static async System.Threading.Tasks.Task AsyncWaitForCompletion(this Tween t) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && !t.IsComplete()) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed or rewinded. + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForRewind(); + /// + public static async System.Threading.Tasks.Task AsyncWaitForRewind(this Tween t) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0)) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed. + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForKill(); + /// + public static async System.Threading.Tasks.Task AsyncWaitForKill(this Tween t) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed or has gone through the given amount of loops. + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForElapsedLoops(); + /// + /// Elapsed loops to wait for + public static async System.Threading.Tasks.Task AsyncWaitForElapsedLoops(this Tween t, int elapsedLoops) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && t.CompletedLoops() < elapsedLoops) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed or started + /// (meaning when the tween is set in a playing state the first time, after any eventual delay). + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForPosition(); + /// + /// Position (loops included, delays excluded) to wait for + public static async System.Threading.Tasks.Task AsyncWaitForPosition(this Tween t, float position) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && t.position * (t.CompletedLoops() + 1) < position) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed. + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForKill(); + /// + public static async System.Threading.Tasks.Task AsyncWaitForStart(this Tween t) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && !t.playedOnce) await System.Threading.Tasks.Task.Yield(); + } + + #endregion +#endif + + #endregion + + #endregion +#endif + } + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ CLASSES █████████████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + +#if UNITY_5_3_OR_NEWER || UNITY_2017_1_OR_NEWER + public static class DOTweenCYInstruction + { + public class WaitForCompletion : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && !t.IsComplete(); + }} + readonly Tween t; + public WaitForCompletion(Tween tween) + { + t = tween; + } + } + + public class WaitForRewind : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0); + }} + readonly Tween t; + public WaitForRewind(Tween tween) + { + t = tween; + } + } + + public class WaitForKill : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active; + }} + readonly Tween t; + public WaitForKill(Tween tween) + { + t = tween; + } + } + + public class WaitForElapsedLoops : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && t.CompletedLoops() < elapsedLoops; + }} + readonly Tween t; + readonly int elapsedLoops; + public WaitForElapsedLoops(Tween tween, int elapsedLoops) + { + t = tween; + this.elapsedLoops = elapsedLoops; + } + } + + public class WaitForPosition : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && t.position * (t.CompletedLoops() + 1) < position; + }} + readonly Tween t; + readonly float position; + public WaitForPosition(Tween tween, float position) + { + t = tween; + this.position = position; + } + } + + public class WaitForStart : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && !t.playedOnce; + }} + readonly Tween t; + public WaitForStart(Tween tween) + { + t = tween; + } + } + } +#endif +} diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta new file mode 100644 index 0000000..290189f --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 63c02322328255542995bd02b47b0457 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs new file mode 100644 index 0000000..12a365d --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs @@ -0,0 +1,167 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +using System; +using System.Reflection; +using UnityEngine; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Core.PathCore; +using DG.Tweening.Plugins.Options; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + /// + /// Utility functions that deal with available Modules. + /// Modules defines: + /// - DOTAUDIO + /// - DOTPHYSICS + /// - DOTPHYSICS2D + /// - DOTSPRITE + /// - DOTUI + /// Extra defines set and used for implementation of external assets: + /// - DOTWEEN_TMP ► TextMesh Pro + /// - DOTWEEN_TK2D ► 2D Toolkit + /// + public static class DOTweenModuleUtils + { + static bool _initialized; + + #region Reflection + + /// + /// Called via Reflection by DOTweenComponent on Awake + /// +#if UNITY_2018_1_OR_NEWER + [UnityEngine.Scripting.Preserve] +#endif + public static void Init() + { + if (_initialized) return; + + _initialized = true; + DOTweenExternalCommand.SetOrientationOnPath += Physics.SetOrientationOnPath; + +#if UNITY_EDITOR +#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1 + UnityEditor.EditorApplication.playmodeStateChanged += PlaymodeStateChanged; +#else + UnityEditor.EditorApplication.playModeStateChanged += PlaymodeStateChanged; +#endif +#endif + } + +#if UNITY_2018_1_OR_NEWER +#pragma warning disable + [UnityEngine.Scripting.Preserve] + // Just used to preserve methods when building, never called + static void Preserver() + { + Assembly[] loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies(); + MethodInfo mi = typeof(MonoBehaviour).GetMethod("Stub"); + } +#pragma warning restore +#endif + + #endregion + +#if UNITY_EDITOR + // Fires OnApplicationPause in DOTweenComponent even when Editor is paused (otherwise it's only fired at runtime) +#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1 + static void PlaymodeStateChanged() + #else + static void PlaymodeStateChanged(UnityEditor.PlayModeStateChange state) +#endif + { + if (DOTween.instance == null) return; + DOTween.instance.OnApplicationPause(UnityEditor.EditorApplication.isPaused); + } +#endif + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + + public static class Physics + { + // Called via DOTweenExternalCommand callback + public static void SetOrientationOnPath(PathOptions options, Tween t, Quaternion newRot, Transform trans) + { +#if true // PHYSICS_MARKER + if (options.isRigidbody) ((Rigidbody)t.target).rotation = newRot; + else trans.rotation = newRot; +#else + trans.rotation = newRot; +#endif + } + + // Returns FALSE if the DOTween's Physics2D Module is disabled, or if there's no Rigidbody2D attached + public static bool HasRigidbody2D(Component target) + { +#if true // PHYSICS2D_MARKER + return target.GetComponent() != null; +#else + return false; +#endif + } + + #region Called via Reflection + + + // Called via Reflection by DOTweenPathInspector + // Returns FALSE if the DOTween's Physics Module is disabled, or if there's no rigidbody attached +#if UNITY_2018_1_OR_NEWER + [UnityEngine.Scripting.Preserve] +#endif + public static bool HasRigidbody(Component target) + { +#if true // PHYSICS_MARKER + return target.GetComponent() != null; +#else + return false; +#endif + } + + // Called via Reflection by DOTweenPath +#if UNITY_2018_1_OR_NEWER + [UnityEngine.Scripting.Preserve] +#endif + public static TweenerCore CreateDOTweenPathTween( + MonoBehaviour target, bool tweenRigidbody, bool isLocal, Path path, float duration, PathMode pathMode + ){ + TweenerCore t = null; + bool rBodyFoundAndTweened = false; +#if true // PHYSICS_MARKER + if (tweenRigidbody) { + Rigidbody rBody = target.GetComponent(); + if (rBody != null) { + rBodyFoundAndTweened = true; + t = isLocal + ? rBody.DOLocalPath(path, duration, pathMode) + : rBody.DOPath(path, duration, pathMode); + } + } +#endif +#if true // PHYSICS2D_MARKER + if (!rBodyFoundAndTweened && tweenRigidbody) { + Rigidbody2D rBody2D = target.GetComponent(); + if (rBody2D != null) { + rBodyFoundAndTweened = true; + t = isLocal + ? rBody2D.DOLocalPath(path, duration, pathMode) + : rBody2D.DOPath(path, duration, pathMode); + } + } +#endif + if (!rBodyFoundAndTweened) { + t = isLocal + ? target.transform.DOLocalPath(path, duration, pathMode) + : target.transform.DOPath(path, duration, pathMode); + } + return t; + } + + #endregion + } + } +} diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta new file mode 100644 index 0000000..ab62186 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7bcaf917d9cf5b84090421a5a2abe42e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/readme.txt b/Assets/Plugins/Demigiant/DOTween/readme.txt new file mode 100644 index 0000000..37ff7ef --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/readme.txt @@ -0,0 +1,29 @@ +DOTween and DOTween Pro are copyright (c) 2014-2018 Daniele Giardini - Demigiant + +// IMPORTANT!!! ///////////////////////////////////////////// +// Upgrading DOTween from versions older than 1.2.000 /////// +// (or DOTween Pro older than 1.0.000) ////////////////////// +------------------------------------------------------------- +If you're upgrading your project from a version of DOTween older than 1.2.000 (or DOTween Pro older than 1.0.000) please follow these instructions carefully. +1) Import the new version in the same folder as the previous one, overwriting old files. A lot of errors will appear but don't worry +2) Close and reopen Unity (and your project). This is fundamental: skipping this step will cause a bloodbath +3) Open DOTween's Utility Panel (Tools > Demigiant > DOTween Utility Panel) if it doesn't open automatically, then press "Setup DOTween...": this will run the upgrade setup +4) From the Add/Remove Modules panel that opens, activate/deactivate Modules for Unity systems and for external assets (Pro version only) + +// GET STARTED ////////////////////////////////////////////// + +- After importing a new DOTween update, select DOTween's Utility Panel from the "Tools/Demigiant" menu (if it doesn't open automatically) and press the "Setup DOTween..." button to activate/deactivate Modules. You can also access a Preferences Tab from there to choose default settings for DOTween. +- In your code, add "using DG.Tweening" to each class where you want to use DOTween. +- You're ready to tween. Check out the links below for full documentation and license info. + + +// LINKS /////////////////////////////////////////////////////// + +DOTween website (documentation, examples, etc): http://dotween.demigiant.com +DOTween license: http://dotween.demigiant.com/license.php +DOTween repository (Google Code): https://code.google.com/p/dotween/ +Demigiant website (documentation, examples, etc): http://www.demigiant.com + +// NOTES ////////////////////////////////////////////////////// + +- DOTween's Utility Panel can be found under "Tools > Demigiant > DOTween Utility Panel" and also contains other useful options, plus a tab to set DOTween's preferences \ No newline at end of file diff --git a/Assets/Plugins/Demigiant/DOTween/readme.txt.meta b/Assets/Plugins/Demigiant/DOTween/readme.txt.meta new file mode 100644 index 0000000..3799165 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/readme.txt.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: fccfc62abf2eb0a4db614853430894fd +TextScriptImporter: + userData: diff --git a/Assets/Plugins/GoKit.meta b/Assets/Plugins/GoKit.meta deleted file mode 100644 index 62b20f9..0000000 --- a/Assets/Plugins/GoKit.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 8c5cefa129e0c4945acf6eb49a983eae -folderAsset: yes -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/Go.cs b/Assets/Plugins/GoKit/Go.cs deleted file mode 100644 index b5bbf23..0000000 --- a/Assets/Plugins/GoKit/Go.cs +++ /dev/null @@ -1,406 +0,0 @@ -using UnityEngine; -using System.Collections; -using System.Collections.Generic; - - -public class Go : MonoBehaviour -{ - // defaults used for all tweens/properties that are not explicitly set - public static GoEaseType defaultEaseType = GoEaseType.Linear; - public static GoLoopType defaultLoopType = GoLoopType.RestartFromBeginning; - public static GoUpdateType defaultUpdateType = GoUpdateType.Update; - - // defines what we should do in the event that a TweenProperty is added and an already existing tween has the same - // property and target - public static GoDuplicatePropertyRuleType duplicatePropertyRule = GoDuplicatePropertyRuleType.None; - public static GoLogLevel logLevel = GoLogLevel.Warn; - - // validates that the target object still exists each tick of the tween. NOTE: it is recommended - // that you just properly remove your tweens before destroying any objects even though this might destroy them for you - public static bool validateTargetObjectsEachTick = true; - - // Used to stop instances being created while the application is quitting - private static bool _applicationIsQuitting = false; - - private static List _tweens = new List(); // contains Tweens, TweenChains and TweenFlows - private bool _timeScaleIndependentUpdateIsRunning; - - // only one Go can exist - static Go _instance = null; - public static Go instance - { - get - { - // Don't allow new instances to be created when the application is quitting to avoid the GOKit object never being destroyed. - // These dangling instances can't be found with FindObjectOfType and so you'd get multiple instances in a scene. - if( !_instance && !_applicationIsQuitting ) - { - // check if there is a GO instance already available in the scene graph - _instance = FindObjectOfType( typeof( Go ) ) as Go; - - // possible Unity bug with FindObjectOfType workaround - //_instance = FindObjectOfType( typeof( Go ) ) ?? GameObject.Find( "GoKit" ).GetComponent() as Go; - - // nope, create a new one - if( !_instance ) - { - var obj = new GameObject( "GoKit" ); - _instance = obj.AddComponent(); - DontDestroyOnLoad( obj ); - } - } - - return _instance; - } - } - - - /// - /// loops through all the Tweens and updates any that are of updateType. If any Tweens are complete - /// (the update call will return true) they are removed. - /// - private void handleUpdateOfType( GoUpdateType updateType, float deltaTime ) - { - // loop backwards so we can remove completed tweens - for( var i = _tweens.Count - 1; i >= 0; --i ) - { - var t = _tweens[i]; - - if( t.state == GoTweenState.Destroyed ) - { - // destroy method has been called - removeTween( t ); - } - else - { - // only process tweens with our update type that are running - if( t.updateType == updateType && t.state == GoTweenState.Running && t.update( deltaTime * t.timeScale ) ) - { - // tween is complete if we get here. if destroyed or set to auto remove kill it - if( t.state == GoTweenState.Destroyed || t.autoRemoveOnComplete ) - { - removeTween( t ); - t.destroy(); - } - } - } - } - } - - - #region Monobehaviour - - private void Update() - { - if( _tweens.Count == 0 ) - return; - - handleUpdateOfType( GoUpdateType.Update, Time.deltaTime ); - } - - - private void LateUpdate() - { - if( _tweens.Count == 0 ) - return; - - handleUpdateOfType( GoUpdateType.LateUpdate, Time.deltaTime ); - } - - - private void FixedUpdate() - { - if( _tweens.Count == 0 ) - return; - - handleUpdateOfType( GoUpdateType.FixedUpdate, Time.deltaTime ); - } - - - private void OnApplicationQuit() - { - _instance = null; - Destroy( gameObject ); - _applicationIsQuitting = true; - } - - #endregion - - - /// - /// this only runs as needed and handles time scale independent Tweens - /// - private IEnumerator timeScaleIndependentUpdate() - { - _timeScaleIndependentUpdateIsRunning = true; - var time = Time.realtimeSinceStartup; - - while( _tweens.Count > 0 ) - { - var elapsed = Time.realtimeSinceStartup - time; - time = Time.realtimeSinceStartup; - - // update tweens - handleUpdateOfType( GoUpdateType.TimeScaleIndependentUpdate, elapsed ); - - yield return null; - } - - _timeScaleIndependentUpdateIsRunning = false; - } - - - /// - /// checks for duplicate properties. if one is found and the DuplicatePropertyRuleType is set to - /// DontAddCurrentProperty it will return true indicating that the tween should not be added. - /// this only checks tweens that are not part of an AbstractTweenCollection - /// - private static bool handleDuplicatePropertiesInTween( GoTween tween ) - { - // first fetch all the current tweens with the same target object as this one - var allTweensWithTarget = tweensWithTarget( tween.target ); - - // store a list of all the properties in the tween - var allProperties = tween.allTweenProperties(); - - // TODO: perhaps only perform the check on running Tweens? - - // loop through all the tweens with the same target - foreach( var tweenWithTarget in allTweensWithTarget ) - { - // loop through all the properties in the tween and see if there are any dupes - foreach( var tweenProp in allProperties ) - { - warn( "found duplicate TweenProperty {0} in tween {1}", tweenProp, tween ); - - // check for a matched property - if( tweenWithTarget.containsTweenProperty( tweenProp ) ) - { - // handle the different duplicate property rules - if( duplicatePropertyRule == GoDuplicatePropertyRuleType.DontAddCurrentProperty ) - { - return true; - } - else if( duplicatePropertyRule == GoDuplicatePropertyRuleType.RemoveRunningProperty ) - { - // TODO: perhaps check if the Tween has any properties left and remove it if it doesnt? - tweenWithTarget.removeTweenProperty( tweenProp ); - } - - return false; - } - } - } - - return false; - } - - - #region Logging - - /// - /// logging should only occur in the editor so we use a conditional - /// - [System.Diagnostics.Conditional( "UNITY_EDITOR" )] - private static void log( object format, params object[] paramList ) - { - if( format is string ) - Debug.Log( string.Format( format as string, paramList ) ); - else - Debug.Log( format ); - } - - - [System.Diagnostics.Conditional( "UNITY_EDITOR" )] - public static void warn( object format, params object[] paramList ) - { - if( logLevel == GoLogLevel.None || logLevel == GoLogLevel.Info ) - return; - - if( format is string ) - Debug.LogWarning( string.Format( format as string, paramList ) ); - else - Debug.LogWarning( format ); - } - - - [System.Diagnostics.Conditional( "UNITY_EDITOR" )] - public static void error( object format, params object[] paramList ) - { - if( logLevel == GoLogLevel.None || logLevel == GoLogLevel.Info || logLevel == GoLogLevel.Warn ) - return; - - if( format is string ) - Debug.LogError( string.Format( format as string, paramList ) ); - else - Debug.LogError( format ); - } - - #endregion - - - #region public API - - /// - /// helper function that creates a "to" Tween and adds it to the pool - /// - public static GoTween to( object target, float duration, GoTweenConfig config ) - { - config.setIsTo(); - var tween = new GoTween( target, duration, config ); - addTween( tween ); - - return tween; - } - - - /// - /// helper function that creates a "from" Tween and adds it to the pool - /// - public static GoTween from( object target, float duration, GoTweenConfig config ) - { - config.setIsFrom(); - var tween = new GoTween( target, duration, config ); - addTween( tween ); - - return tween; - } - - - /// - /// adds an AbstractTween (Tween, TweenChain or TweenFlow) to the current list of running Tweens - /// - public static void addTween( AbstractGoTween tween ) - { - // early out for invalid items - if( !tween.isValid() ) - return; - - // dont add the same tween twice - if( _tweens.Contains( tween ) ) - return; - - // check for dupes and handle them before adding the tween. we only need to check for Tweens - if( duplicatePropertyRule != GoDuplicatePropertyRuleType.None && tween is GoTween ) - { - // if handleDuplicatePropertiesInTween returns true it indicates we should not add this tween - if( handleDuplicatePropertiesInTween( tween as GoTween ) ) - return; - - // if we became invalid after handling dupes dont add the tween - if( !tween.isValid() ) - return; - } - - _tweens.Add( tween ); - - // enable ourself if we are not enabled - if( !instance.enabled ) // purposely using the static instace property just once for initialization - _instance.enabled = true; - - // if the Tween isn't paused and it is a "from" tween jump directly to the start position - if( tween is GoTween && ((GoTween)tween).isFrom && tween.state != GoTweenState.Paused ) - tween.update( 0 ); - - // should we start up the time scale independent update? - if( !_instance._timeScaleIndependentUpdateIsRunning && tween.updateType == GoUpdateType.TimeScaleIndependentUpdate ) - _instance.StartCoroutine( _instance.timeScaleIndependentUpdate() ); - -#if UNITY_EDITOR - _instance.gameObject.name = string.Format( "GoKit ({0} tweens)", _tweens.Count ); -#endif - } - - - /// - /// removes the Tween returning true if it was removed or false if it was not found - /// - public static bool removeTween( AbstractGoTween tween ) - { - if( _tweens.Contains( tween ) ) - { - _tweens.Remove( tween ); - -#if UNITY_EDITOR - if( _instance != null && _tweens != null ) - _instance.gameObject.name = string.Format( "GoKit ({0} tweens)", _tweens.Count ); -#endif - - if( _instance != null && _tweens.Count == 0 ) - { - // disable ourself if we have no more tweens - _instance.enabled = false; - } - - return true; - } - - return false; - } - - - /// - /// returns a list of all Tweens, TweenChains and TweenFlows with the given id - /// - public static List tweensWithId( int id ) - { - List list = null; - - foreach( var tween in _tweens ) - { - if( tween.id == id ) - { - if( list == null ) - list = new List(); - list.Add( tween ); - } - } - - return list; - } - - - /// - /// returns a list of all Tweens with the given target. TweenChains and TweenFlows can optionally - /// be traversed and matching Tweens returned as well. - /// - public static List tweensWithTarget( object target, bool traverseCollections = false ) - { - List list = new List(); - - foreach( var item in _tweens ) - { - // we always check Tweens so handle them first - var tween = item as GoTween; - if( tween != null && tween.target == target ) - list.Add( tween ); - - // optionally check TweenChains and TweenFlows. if tween is null we have a collection - if( traverseCollections && tween == null ) - { - var tweenCollection = item as AbstractGoTweenCollection; - if( tweenCollection != null ) - { - var tweensInCollection = tweenCollection.tweensWithTarget( target ); - if( tweensInCollection.Count > 0 ) - list.AddRange( tweensInCollection ); - } - } - } - - return list; - } - - - /// - /// kills all tweens with the given target by calling the destroy method on each one - /// - public static void killAllTweensWithTarget( object target ) - { - foreach( var tween in tweensWithTarget( target, true ) ) - tween.destroy(); - } - - #endregion - -} diff --git a/Assets/Plugins/GoKit/GoDummyPath.cs b/Assets/Plugins/GoKit/GoDummyPath.cs deleted file mode 100644 index 8302a6b..0000000 --- a/Assets/Plugins/GoKit/GoDummyPath.cs +++ /dev/null @@ -1,31 +0,0 @@ -using UnityEngine; -using System.Collections; -using System.Collections.Generic; - - -/// -/// place this script on any GameObject to enable route editing. note that it is not required at runtime! it is -/// only required to be in your scene while editing a path -/// -public class GoDummyPath : MonoBehaviour -{ - public string pathName = string.Empty; - public Color pathColor = Color.magenta; // color of the path if visible in the editor - public List nodes = new List() { Vector3.zero, Vector3.zero }; - public bool useStandardHandles = false; - public bool forceStraightLinePath = false; - public int pathResolution = 50; - - - public void OnDrawGizmos() - { - // the editor will draw paths when force straight line is on - if( !forceStraightLinePath ) - { - var spline = new GoSpline( nodes ); - Gizmos.color = pathColor; - spline.drawGizmos( pathResolution ); - } - } - -} diff --git a/Assets/Plugins/GoKit/GoTween.cs b/Assets/Plugins/GoKit/GoTween.cs deleted file mode 100644 index c456d14..0000000 --- a/Assets/Plugins/GoKit/GoTween.cs +++ /dev/null @@ -1,341 +0,0 @@ -using UnityEngine; -using System; -using System.Collections; -using System.Collections.Generic; - - -public class GoTween : AbstractGoTween -{ - // Tween specific properties - public object target { get; private set; } // the target of the tweens - public float delay { get; private set; } // delay before starting the actual animations - private float _elapsedDelay; // total time delayed - private bool _delayComplete; // once we complete the delay this gets set so we can reverse and play properly for the future - public bool isFrom { get; private set; } // a value of true will make this a "from" tween - - private List _tweenPropertyList = new List(); - private string targetTypeString; - - /// - /// sets the ease type for all Tweens. this will overwrite the ease types for each Tween! - /// - private GoEaseType _easeType; - public GoEaseType easeType - { - get - { - return _easeType; - } - set - { - _easeType = value; - - // change ease type of all existing tweens. - foreach( var tween in _tweenPropertyList ) - tween.setEaseType( value ); - } - } - - - /// - /// initializes a new instance and sets up the details according to the config parameter - /// - public GoTween( object target, float duration, GoTweenConfig config, Action onComplete = null ) - { - // default to removing on complete - autoRemoveOnComplete = true; - - // allow events by default - allowEvents = true; - - // setup callback bools - _didInit = false; - _didBegin = false; - - // flag the onIterationStart event to fire. - // as long as goTo is not called on this tween, the onIterationStart event will fire - // as soon as the delay, if any, is completed. - _fireIterationStart = true; - - this.target = target; - this.targetTypeString = target.GetType().ToString(); - this.duration = duration; - - // copy the TweenConfig info over - id = config.id; - delay = config.delay; - loopType = config.loopType; - iterations = config.iterations; - _easeType = config.easeType; - updateType = config.propertyUpdateType; - isFrom = config.isFrom; - timeScale = config.timeScale; - - _onInit = config.onInitHandler; - _onBegin = config.onBeginHandler; - _onIterationStart = config.onIterationStartHandler; - _onUpdate = config.onUpdateHandler; - _onIterationEnd = config.onIterationEndHandler; - _onComplete = config.onCompleteHandler; - - if( config.isPaused ) - state = GoTweenState.Paused; - - // if onComplete is passed to the constructor it wins. it is left as the final param to allow an inline Action to be - // set and maintain clean code (Actions always try to be the last param of a method) - if( onComplete != null ) - _onComplete = onComplete; - - // add all our properties - for( var i = 0; i < config.tweenProperties.Count; ++i ) - { - var tweenProp = config.tweenProperties[i]; - - // if the tween property is initialized already it means it is being reused so we need to clone it - if( tweenProp.isInitialized ) - tweenProp = tweenProp.clone(); - - addTweenProperty( tweenProp ); - } - - // calculate total duration - if( iterations < 0 ) - totalDuration = float.PositiveInfinity; - else - totalDuration = iterations * duration; - } - - /// - /// tick method. if it returns true it indicates the tween is complete - /// - public override bool update( float deltaTime ) - { - // properties are prepared only once on the first update of the tween. - if ( !_didInit ) - onInit(); - - // should we validate the target? - if( Go.validateTargetObjectsEachTick ) - { - // This might seem to be overkill, but on the case of Transforms that - // have been destroyed, target == null will return false, whereas - // target.Equals(null) will return true. Otherwise we don't really - // get the benefits of the nanny. - if( target == null || target.Equals(null) ) - { - // if the target doesn't pass validation - Debug.LogWarning( "target validation failed. destroying the tween to avoid errors. Target type: " + this.targetTypeString ); - autoRemoveOnComplete = true; - return true; - } - } - - // we only fire the begin callback once per run. - if ( !_didBegin ) - onBegin(); - - // handle delay and return if we are still delaying - if( !_delayComplete && _elapsedDelay < delay ) - { - // if we have a timeScale set we need to remove its influence so that delays are always in seconds - if( timeScale != 0 ) - _elapsedDelay += deltaTime / timeScale; - - // are we done delaying? - if( _elapsedDelay >= delay ) - _delayComplete = true; - - return false; - } - - // loops only start once the delay has completed. - if ( _fireIterationStart ) - onIterationStart(); - - // base will calculate the proper elapsedTime, iterations, etc. - base.update( deltaTime ); - - // if we are looping back on a PingPong loop - var convertedElapsedTime = _isLoopingBackOnPingPong ? duration - _elapsedTime : _elapsedTime; - //Debug.Log(string.Format("{0} : {1} -- {2}", _elapsedTime, convertedElapsedTime, _isLoopingBackOnPingPong ? "Y" : "N")); - - // update all properties - for( var i = 0; i < _tweenPropertyList.Count; ++i ) - _tweenPropertyList[i].tick( convertedElapsedTime ); - - onUpdate(); - - if ( _fireIterationEnd ) - onIterationEnd(); - - if( state == GoTweenState.Complete ) - { - onComplete(); - - return true; // true if complete - } - - return false; // false if not complete - } - - - /// - /// we are valid if we have a target and at least one TweenProperty - /// - public override bool isValid() - { - return target != null; - } - - - /// - /// adds the tween property if it passes validation and initializes the property - /// - public void addTweenProperty( AbstractTweenProperty tweenProp ) - { - // make sure the target is valid for this tween before adding - if( tweenProp.validateTarget( target ) ) - { - // ensure we dont add two tweens of the same property so they dont fight - if( _tweenPropertyList.Contains( tweenProp ) ) - { - Debug.Log( "not adding tween property because one already exists: " + tweenProp ); - return; - } - - _tweenPropertyList.Add( tweenProp ); - tweenProp.init( this ); - } - else - { - Debug.Log( "tween failed to validate target: " + tweenProp ); - } - } - - - public override bool removeTweenProperty( AbstractTweenProperty property ) - { - if( _tweenPropertyList.Contains( property ) ) - { - _tweenPropertyList.Remove( property ); - return true; - } - - return false; - } - - - public override bool containsTweenProperty( AbstractTweenProperty property ) - { - return _tweenPropertyList.Contains( property ); - } - - - public void clearTweenProperties() - { - _tweenPropertyList.Clear(); - } - - - public override List allTweenProperties() - { - return _tweenPropertyList; - } - - - #region AbstractTween overrides - - /// - /// called only once the first update of a tween. - /// - protected override void onInit() - { - base.onInit(); - - for ( var i = 0; i < _tweenPropertyList.Count; ++i ) - _tweenPropertyList[i].prepareForUse(); - } - - /// - /// removes the tween and cleans up its state - /// - public override void destroy() - { - base.destroy(); - - _tweenPropertyList.Clear(); - target = null; - } - - /// - /// goes to the specified time clamping it from 0 to the total duration of the tween. if the tween is - /// not playing it will be force updated to the time specified. - /// - public override void goTo( float time , bool skipDelay = true ) - { - // handle delay, which is specific to Tweens - if( skipDelay ) - { - _elapsedDelay = delay; - } - else - { - _elapsedDelay = Mathf.Min( time, delay ); - time -= _elapsedDelay; - } - - _delayComplete = _elapsedDelay >= delay; - - time = Mathf.Clamp( time, 0f, totalDuration ); - - // provide an early out for calling goto on the same time multiple times. - if ( time == _totalElapsedTime ) - return; - - // if we are doing a goTo at the "start" of the timeline, based on the isReversed variable, - // allow the onBegin and onIterationStart callback to fire again. - // we only allow the onIterationStart event callback to fire at the start of the timeline, - // as doing a goTo(x) where x % duration == 0 will trigger the onIterationEnd before we - // go to the start. - if ( ( isReversed && time == totalDuration ) || ( !isReversed && time == 0f ) ) - { - _didBegin = false; - _fireIterationStart = true; - } - else - { - _didBegin = true; - _fireIterationStart = false; - } - - // since we're doing a goTo, we want to stop this tween from remembering that it iterated. - // this could cause issues if you caused the tween to complete an iteration and then goTo somewhere - // else while still paused. - _didIterateThisFrame = false; - - // force a time and completedIterations before we update - _totalElapsedTime = time; - _completedIterations = isReversed ? Mathf.CeilToInt( _totalElapsedTime / duration ) : Mathf.FloorToInt( _totalElapsedTime / duration ); - - update( 0 ); - } - - - /// - /// completes the tween. sets the object to it's final position as if the tween completed normally. - /// takes into effect if the tween was playing forward or reversed. - /// - public override void complete() - { - if( iterations < 0 ) - return; - - // set delayComplete so we get one last update in before we die (base will set the elapsed time for us) - _delayComplete = true; - - base.complete(); - } - - #endregion - -} diff --git a/Assets/Plugins/GoKit/GoTweenChain.cs b/Assets/Plugins/GoKit/GoTweenChain.cs deleted file mode 100644 index d9b9595..0000000 --- a/Assets/Plugins/GoKit/GoTweenChain.cs +++ /dev/null @@ -1,147 +0,0 @@ -using UnityEngine; -using System.Collections; - - -public class GoTweenChain : AbstractGoTweenCollection -{ - public GoTweenChain() : this(new GoTweenCollectionConfig()) {} - public GoTweenChain(GoTweenCollectionConfig config) : base(config) {} - - #region internal Chain management - - private void append( TweenFlowItem item ) - { - // early out for invalid items - if( item.tween != null && !item.tween.isValid() ) - return; - - if( float.IsInfinity( item.duration ) ) - { - Debug.LogError( "adding a Tween with infinite iterations to a TweenChain is not permitted" ); - return; - } - - if ( item.tween != null ) - { - if ( item.tween.isReversed != isReversed ) - { - Debug.LogError( "adding a Tween that doesn't match the isReversed property of the TweenChain is not permitted." ); - return; - } - - // ensure the tween isnt already live - Go.removeTween(item.tween); - - // ensure that the item is marked to play. - item.tween.play(); - } - - _tweenFlows.Add( item ); - - // update the duration and total duration - duration += item.duration; - - if( iterations < 0 ) - totalDuration = float.PositiveInfinity; - else - totalDuration = duration * iterations; - } - - - private void prepend( TweenFlowItem item ) - { - // early out for invalid items - if( item.tween != null && !item.tween.isValid() ) - return; - - if( float.IsInfinity( item.duration ) ) - { - Debug.LogError( "adding a Tween with infinite iterations to a TweenChain is not permitted" ); - return; - } - - if ( item.tween != null ) - { - if ( item.tween.isReversed != isReversed ) - { - Debug.LogError( "adding a Tween that doesn't match the isReversed property of the TweenChain is not permitted." ); - return; - } - - // ensure the tween isnt already live - Go.removeTween( item.tween ); - - // ensure that the item is marked to play. - item.tween.play(); - } - - // fix all the start times on our previous chains - foreach( var flowItem in _tweenFlows ) - flowItem.startTime += item.duration; - - _tweenFlows.Insert( 0, item ); - - // update the duration and total duration - duration += item.duration; - - if ( iterations < 0 ) - totalDuration = float.PositiveInfinity; - else - totalDuration = duration * iterations; - } - - #endregion - - - #region Chain management - - /// - /// appends a Tween at the end of the current flow - /// - public GoTweenChain append( AbstractGoTween tween ) - { - var item = new TweenFlowItem( duration, tween ); - append( item ); - - return this; - } - - - /// - /// appends a delay to the end of the current flow - /// - public GoTweenChain appendDelay( float delay ) - { - var item = new TweenFlowItem( duration, delay ); - append( item ); - - return this; - } - - - /// - /// adds a Tween to the front of the flow - /// - public GoTweenChain prepend( AbstractGoTween tween ) - { - var item = new TweenFlowItem( 0, tween ); - prepend( item ); - - return this; - } - - - /// - /// adds a delay to the front of the flow - /// - public GoTweenChain prependDelay( float delay ) - { - var item = new TweenFlowItem( 0, delay ); - prepend( item ); - - return this; - } - - #endregion - -} diff --git a/Assets/Plugins/GoKit/GoTweenChain.cs.meta b/Assets/Plugins/GoKit/GoTweenChain.cs.meta deleted file mode 100644 index 6508ae2..0000000 --- a/Assets/Plugins/GoKit/GoTweenChain.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: e4985888b83c04c04b428c6b4d0e9e13 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/GoTweenCollectionConfig.cs b/Assets/Plugins/GoKit/GoTweenCollectionConfig.cs deleted file mode 100644 index c3fbf93..0000000 --- a/Assets/Plugins/GoKit/GoTweenCollectionConfig.cs +++ /dev/null @@ -1,122 +0,0 @@ -using UnityEngine; -using System; -using System.Collections; -using System.Collections.Generic; - - -public class GoTweenCollectionConfig -{ - public int id; // id for finding the Tween at a later time. multiple Tweens can have the same id - public int iterations = 1; // number of times to iterate. -1 will loop indefinitely - public GoLoopType loopType = Go.defaultLoopType; - public GoUpdateType propertyUpdateType = Go.defaultUpdateType; - - public Action onInitHandler; - public Action onBeginHandler; - public Action onIterationStartHandler; - public Action onUpdateHandler; - public Action onIterationEndHandler; - public Action onCompleteHandler; - - - /// - /// sets the number of iterations. setting to -1 will loop infinitely - /// - public GoTweenCollectionConfig setIterations( int iterations ) - { - this.iterations = iterations; - return this; - } - - - /// - /// sets the number of iterations and the loop type. setting to -1 will loop infinitely - /// - public GoTweenCollectionConfig setIterations( int iterations, GoLoopType loopType ) - { - this.iterations = iterations; - this.loopType = loopType; - return this; - } - - - /// - /// sets the update type for the Tween - /// - public GoTweenCollectionConfig setUpdateType( GoUpdateType setUpdateType ) - { - this.propertyUpdateType = setUpdateType; - return this; - } - - - /// - /// sets the onInit handler for the Tween - /// - public GoTweenCollectionConfig onInit( Action onInit ) - { - onInitHandler = onInit; - return this; - } - - - /// - /// sets the onBegin handler for the Tween - /// - public GoTweenCollectionConfig onBegin( Action onBegin ) - { - onBeginHandler = onBegin; - return this; - } - - - /// - /// sets the onIterationStart handler for the Tween - /// - public GoTweenCollectionConfig onIterationStart( Action onIterationStart ) - { - onIterationStartHandler = onIterationStart; - return this; - } - - - /// - /// sets the onUpdate handler for the Tween - /// - public GoTweenCollectionConfig onUpdate( Action onUpdate ) - { - onUpdateHandler = onUpdate; - return this; - } - - - /// - /// sets the onIterationEnd handler for the Tween - /// - public GoTweenCollectionConfig onIterationEnd( Action onIterationEnd ) - { - onIterationEndHandler = onIterationEnd; - return this; - } - - - /// - /// sets the onComplete handler for the Tween - /// - public GoTweenCollectionConfig onComplete( Action onComplete ) - { - onCompleteHandler = onComplete; - return this; - } - - - /// - /// sets the id for the Tween. Multiple Tweens can have the same id and you can retrieve them with the Go class - /// - public GoTweenCollectionConfig setId( int id ) - { - this.id = id; - return this; - } - -} \ No newline at end of file diff --git a/Assets/Plugins/GoKit/GoTweenCollectionConfig.cs.meta b/Assets/Plugins/GoKit/GoTweenCollectionConfig.cs.meta deleted file mode 100644 index bfddd6d..0000000 --- a/Assets/Plugins/GoKit/GoTweenCollectionConfig.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 04126d38111de41799edaa161b80b0b4 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/GoTweenConfig.cs b/Assets/Plugins/GoKit/GoTweenConfig.cs deleted file mode 100644 index d0b87c5..0000000 --- a/Assets/Plugins/GoKit/GoTweenConfig.cs +++ /dev/null @@ -1,533 +0,0 @@ -using UnityEngine; -using System; -using System.Collections; -using System.Collections.Generic; - - -public class GoTweenConfig -{ - private List _tweenProperties = new List(); - public List tweenProperties { get { return _tweenProperties; } } - - public int id; // id for finding the Tween at a later time. multiple Tweens can have the same id - public float delay; // how long should we delay before starting the Tween - public int iterations = 1; // number of times to iterate. -1 will loop indefinitely - public int timeScale = 1; - public GoLoopType loopType = Go.defaultLoopType; - public GoEaseType easeType = Go.defaultEaseType; - public bool isPaused; - public GoUpdateType propertyUpdateType = Go.defaultUpdateType; - public bool isFrom; - - public Action onInitHandler; - public Action onBeginHandler; - public Action onIterationStartHandler; - public Action onUpdateHandler; - public Action onIterationEndHandler; - public Action onCompleteHandler; - - - #region TweenProperty adders - - /// - /// position tween - /// - public GoTweenConfig position( Vector3 endValue, bool isRelative = false ) - { - var prop = new PositionTweenProperty( endValue, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// localPosition tween - /// - public GoTweenConfig localPosition( Vector3 endValue, bool isRelative = false ) - { - var prop = new PositionTweenProperty( endValue, isRelative, true ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// position path tween - /// - public GoTweenConfig positionPath( GoSpline path, bool isRelative = false, GoLookAtType lookAtType = GoLookAtType.None, Transform lookTarget = null ) - { - var prop = new PositionPathTweenProperty( path, isRelative, false, lookAtType, lookTarget ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// uniform scale tween (x, y and z scale to the same value) - /// - public GoTweenConfig scale( float endValue, bool isRelative = false ) - { - return this.scale( new Vector3( endValue, endValue, endValue ), isRelative ); - } - - - /// - /// scale tween - /// - public GoTweenConfig scale( Vector3 endValue, bool isRelative = false ) - { - var prop = new ScaleTweenProperty( endValue, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// scale through a series of Vector3s - /// - public GoTweenConfig scalePath( GoSpline path, bool isRelative = false ) - { - var prop = new ScalePathTweenProperty( path, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// eulerAngle tween - /// - public GoTweenConfig eulerAngles( Vector3 endValue, bool isRelative = false ) - { - var prop = new EulerAnglesTweenProperty( endValue, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// local eulerAngle tween - /// - public GoTweenConfig localEulerAngles( Vector3 endValue, bool isRelative = false ) - { - var prop = new EulerAnglesTweenProperty( endValue, isRelative, true ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// rotation tween - /// - public GoTweenConfig rotation( Vector3 endValue, bool isRelative = false ) - { - var prop = new RotationTweenProperty( endValue, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// localRotation tween - /// - public GoTweenConfig localRotation( Vector3 endValue, bool isRelative = false ) - { - var prop = new RotationTweenProperty( endValue, isRelative, true ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// rotation tween as Quaternion - /// - public GoTweenConfig rotation( Quaternion endValue, bool isRelative = false ) - { - var prop = new RotationQuaternionTweenProperty( endValue, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - /// - /// localRotation tween as Quaternion - /// - public GoTweenConfig localRotation( Quaternion endValue, bool isRelative = false ) - { - var prop = new RotationQuaternionTweenProperty( endValue, isRelative, true ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// material color tween - /// - public GoTweenConfig materialColor( Color endValue, string colorName = "_Color", bool isRelative = false ) - { - var prop = new MaterialColorTweenProperty( endValue, colorName, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// shake tween - /// - public GoTweenConfig shake( Vector3 shakeMagnitude, GoShakeType shakeType = GoShakeType.Position, int frameMod = 1, bool useLocalProperties = false ) - { - var prop = new ShakeTweenProperty( shakeMagnitude, shakeType, frameMod, useLocalProperties ); - _tweenProperties.Add( prop ); - - return this; - } - - - #region generic properties - - /// - /// generic vector2 tween - /// - public GoTweenConfig vector2Prop( string propertyName, Vector2 endValue, bool isRelative = false ) - { - var prop = new Vector2TweenProperty( propertyName, endValue, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// generic vector3 tween - /// - public GoTweenConfig vector3Prop( string propertyName, Vector3 endValue, bool isRelative = false ) - { - var prop = new Vector3TweenProperty( propertyName, endValue, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// generic vector4 tween - /// - public GoTweenConfig vector4Prop( string propertyName, Vector4 endValue, bool isRelative = false ) - { - var prop = new Vector4TweenProperty( propertyName, endValue, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// generic vector3 path tween - /// - public GoTweenConfig vector3PathProp( string propertyName, GoSpline path, bool isRelative = false ) - { - var prop = new Vector3PathTweenProperty( propertyName, path, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// generic vector3.x tween - /// - public GoTweenConfig vector3XProp( string propertyName, float endValue, bool isRelative = false ) - { - var prop = new Vector3XTweenProperty( propertyName, endValue, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// generic vector3.y tween - /// - public GoTweenConfig vector3YProp( string propertyName, float endValue, bool isRelative = false ) - { - var prop = new Vector3YTweenProperty( propertyName, endValue, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// generic vector3.z tween - /// - public GoTweenConfig vector3ZProp( string propertyName, float endValue, bool isRelative = false ) - { - var prop = new Vector3ZTweenProperty( propertyName, endValue, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// generic color tween - /// - public GoTweenConfig colorProp( string propertyName, Color endValue, bool isRelative = false ) - { - var prop = new ColorTweenProperty( propertyName, endValue, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// generic integer tween - /// - public GoTweenConfig intProp( string propertyName, int endValue, bool isRelative = false ) - { - var prop = new IntTweenProperty( propertyName, endValue, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - - /// - /// generic float tween - /// - public GoTweenConfig floatProp( string propertyName, float endValue, bool isRelative = false ) - { - var prop = new FloatTweenProperty( propertyName, endValue, isRelative ); - _tweenProperties.Add( prop ); - - return this; - } - - #endregion - - #endregion - - - /// - /// adds a TweenProperty to the list - /// - public GoTweenConfig addTweenProperty( AbstractTweenProperty tweenProp ) - { - _tweenProperties.Add( tweenProp ); - - return this; - } - - - /// - /// clears out all the TweenProperties - /// - public GoTweenConfig clearProperties() - { - _tweenProperties.Clear(); - - return this; - } - - /// - /// clears out all the TweenProperties - /// - public GoTweenConfig clearEvents() - { - onInitHandler = null; - onBeginHandler = null; - onIterationStartHandler = null; - onUpdateHandler = null; - onIterationEndHandler = null; - onCompleteHandler = null; - - return this; - } - - /// - /// sets the delay for the tween - /// - public GoTweenConfig setDelay( float seconds ) - { - delay = seconds; - - return this; - } - - - /// - /// sets the number of iterations. setting to -1 will loop infinitely - /// - public GoTweenConfig setIterations( int iterations ) - { - this.iterations = iterations; - - return this; - } - - - /// - /// sets the number of iterations and the loop type. setting to -1 will loop infinitely - /// - public GoTweenConfig setIterations( int iterations, GoLoopType loopType ) - { - this.iterations = iterations; - this.loopType = loopType; - - return this; - } - - - /// - /// sets the timeScale to be used by the Tween - /// - public GoTweenConfig setTimeScale( int timeScale ) - { - this.timeScale = timeScale; - - return this; - } - - - /// - /// sets the ease type for the Tween - /// - public GoTweenConfig setEaseType( GoEaseType easeType ) - { - this.easeType = easeType; - - return this; - } - - - /// - /// sets whether the Tween should start paused - /// - public GoTweenConfig startPaused() - { - isPaused = true; - - return this; - } - - - /// - /// sets the update type for the Tween - /// - public GoTweenConfig setUpdateType( GoUpdateType setUpdateType ) - { - propertyUpdateType = setUpdateType; - - return this; - } - - - /// - /// sets if this Tween should be a "from" Tween. From Tweens use the current property as the endValue and - /// the endValue as the start value - /// - public GoTweenConfig setIsFrom() - { - isFrom = true; - - return this; - } - - /// - /// sets if this Tween should be a "to" Tween. - /// - public GoTweenConfig setIsTo() - { - isFrom = false; - - return this; - } - - - /// - /// sets the onInit handler for the Tween - /// - public GoTweenConfig onInit( Action onInit ) - { - onInitHandler = onInit; - return this; - } - - - /// - /// sets the onBegin handler for the Tween - /// - public GoTweenConfig onBegin( Action onBegin ) - { - onBeginHandler = onBegin; - - return this; - } - - - /// - /// sets the onIterationStart handler for the Tween - /// - public GoTweenConfig onIterationStart( Action onIterationStart ) - { - onIterationStartHandler = onIterationStart; - - return this; - } - - - /// - /// sets the onUpdate handler for the Tween - /// - public GoTweenConfig onUpdate( Action onUpdate ) - { - onUpdateHandler = onUpdate; - - return this; - } - - - /// - /// sets the onIterationEnd handler for the Tween - /// - public GoTweenConfig onIterationEnd( Action onIterationEnd ) - { - onIterationEndHandler = onIterationEnd; - - return this; - } - - - /// - /// sets the onComplete handler for the Tween - /// - public GoTweenConfig onComplete( Action onComplete ) - { - onCompleteHandler = onComplete; - - return this; - } - - - /// - /// sets the id for the Tween. Multiple Tweens can have the same id and you can retrieve them with the Go class - /// - public GoTweenConfig setId( int id ) - { - this.id = id; - - return this; - } - -} diff --git a/Assets/Plugins/GoKit/GoTweenConfig.cs.meta b/Assets/Plugins/GoKit/GoTweenConfig.cs.meta deleted file mode 100644 index ee0d516..0000000 --- a/Assets/Plugins/GoKit/GoTweenConfig.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 110c83c73e3544e7785938ec38e5361e -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/GoTweenFlow.cs b/Assets/Plugins/GoKit/GoTweenFlow.cs deleted file mode 100644 index c6c946c..0000000 --- a/Assets/Plugins/GoKit/GoTweenFlow.cs +++ /dev/null @@ -1,83 +0,0 @@ -using UnityEngine; -using System.Collections; - - -/// -/// TweenFlows are used for creating a chain of Tweens via the append/prepend methods. You can also get timeline -/// like control by inserting Tweens and setting them to start at a specific time. Note that TweenFlows do not -/// honor the delays set within regular Tweens. Use the append/prependDelay method to add any required delays -/// -public class GoTweenFlow : AbstractGoTweenCollection -{ - public GoTweenFlow() : this( new GoTweenCollectionConfig() ) {} - - public GoTweenFlow( GoTweenCollectionConfig config ) : base( config ) {} - - - #region internal Flow management - - /// - /// the item being added already has a start time so no extra parameter is needed - /// - private void insert( TweenFlowItem item ) - { - // early out for invalid items - if( item.tween != null && !item.tween.isValid() ) - return; - - if( float.IsInfinity( item.duration ) ) - { - Debug.LogError( "adding a Tween with infinite iterations to a TweenFlow is not permitted" ); - return; - } - - if( item.tween != null ) - { - if (item.tween.isReversed != isReversed) - { - Debug.LogError( "adding a Tween that doesn't match the isReversed property of the TweenFlow is not permitted." ); - return; - } - - // ensure the tween isnt already live - Go.removeTween(item.tween); - - // ensure that the item is marked to play. - item.tween.play(); - } - - // add the item then sort based on startTimes - _tweenFlows.Add( item ); - _tweenFlows.Sort( ( x, y ) => - { - return x.startTime.CompareTo( y.startTime ); - } ); - - duration = Mathf.Max( item.startTime + item.duration, duration ); - - if (iterations < 0) - totalDuration = float.PositiveInfinity; - else - totalDuration = duration * iterations; - } - - #endregion - - - #region Flow management - - /// - /// inserts a Tween and sets it to start at the given startTime - /// - public GoTweenFlow insert( float startTime, AbstractGoTween tween ) - { - var item = new TweenFlowItem( startTime, tween ); - insert( item ); - - return this; - } - - #endregion - - -} diff --git a/Assets/Plugins/GoKit/GoTweenFlow.cs.meta b/Assets/Plugins/GoKit/GoTweenFlow.cs.meta deleted file mode 100644 index 5fbe748..0000000 --- a/Assets/Plugins/GoKit/GoTweenFlow.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: fc32096ae2bba43da839e42c553f294c -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/base/AbstractGoTween.cs b/Assets/Plugins/GoKit/base/AbstractGoTween.cs deleted file mode 100644 index 2e03474..0000000 --- a/Assets/Plugins/GoKit/base/AbstractGoTween.cs +++ /dev/null @@ -1,445 +0,0 @@ -using UnityEngine; -using System; -using System.Collections; -using System.Collections.Generic; - - -/// -/// base class shared by the Tween and TweenChain classes to allow a seemless API when controlling -/// either of them -/// -public abstract class AbstractGoTween -{ - public int id = 0; // optional id used for identifying this tween - public GoTweenState state { get; protected set; } // current state of the tween - public float duration { get; protected set; } // duration for a single loop - public float totalDuration { get; protected set; } // duration for all loops of this tween - public float timeScale { get; set; } // time scale to be used by this tween - - public GoUpdateType updateType { get; protected set; } - public GoLoopType loopType { get; protected set; } - public int iterations { get; protected set; } // set to -1 for infinite - - public bool autoRemoveOnComplete { get; set; } // should we automatically remove ourself from the Go's list of tweens when done? - public bool isReversed { get; protected set; } // have we been reversed? this is different than a PingPong loop's backwards section - public bool allowEvents { get; set; } // allow the user to surpress events. - protected bool _didInit; // flag to ensure event only gets fired once - protected bool _didBegin; // flag to ensure event only gets fired once - protected bool _fireIterationStart; - protected bool _fireIterationEnd; - - // internal state for update logic - protected float _elapsedTime; // elapsed time for the current loop iteration - protected float _totalElapsedTime; // total elapsed time of the entire tween - public float totalElapsedTime { get { return _totalElapsedTime; } } - - protected bool _isLoopingBackOnPingPong; - public bool isLoopingBackOnPingPong { get { return _isLoopingBackOnPingPong; } } - - protected bool _didIterateLastFrame; - protected bool _didIterateThisFrame; - protected int _deltaIterations; // change in completed iterations this frame. - protected int _completedIterations; - public int completedIterations { get { return _completedIterations; } } - - // action event handlers - protected Action _onInit; // executes before initial setup. - protected Action _onBegin; // executes when a tween starts. - protected Action _onIterationStart; // executes whenever a tween starts an iteration. - protected Action _onUpdate; // execute whenever a tween updates. - protected Action _onIterationEnd; // executes whenever a tween ends an iteration. - protected Action _onComplete; // exectures whenever a tween completes - - public void setOnInitHandler( Action onInit ) - { - _onInit = onInit; - } - - public void setOnBeginHandler( Action onBegin ) - { - _onBegin = onBegin; - } - - public void setonIterationStartHandler( Action onIterationStart ) - { - _onIterationStart = onIterationStart; - } - - public void setOnUpdateHandler( Action onUpdate ) - { - _onUpdate = onUpdate; - } - - public void setonIterationEndHandler( Action onIterationEnd ) - { - _onIterationEnd = onIterationEnd; - } - - public void setOnCompleteHandler( Action onComplete ) - { - _onComplete = onComplete; - } - - /// - /// called once per tween when it is first updated - /// - protected virtual void onInit() - { - if( !allowEvents ) - return; - - if( _onInit != null ) - _onInit( this ); - - _didInit = true; - } - - /// - /// called whenever the tween is updated and the playhead is at the start (or end, depending on isReversed) of the tween. - /// - protected virtual void onBegin() - { - if( !allowEvents ) - return; - - if( isReversed && _totalElapsedTime != totalDuration ) - return; - else if( !isReversed && _totalElapsedTime != 0f ) - return; - - if( _onBegin != null ) - _onBegin( this ); - - _didBegin = true; - } - - - /// - /// called once per iteration at the start of the iteration. - /// - protected virtual void onIterationStart() - { - if( !allowEvents ) - return; - - if( _onIterationStart != null ) - _onIterationStart( this ); - } - - /// - /// called once per update, after the update has occured. - /// - protected virtual void onUpdate() - { - if( !allowEvents ) - return; - - if( _onUpdate != null ) - _onUpdate( this ); - } - - /// - /// called once per iteration at the end of the iteration. - /// - protected virtual void onIterationEnd() - { - if( !allowEvents ) - return; - - if( _onIterationEnd != null ) - _onIterationEnd( this ); - } - - - /// - /// called when the tween completes playing. - /// - protected virtual void onComplete() - { - if( !allowEvents ) - return; - - if( _onComplete != null ) - _onComplete( this ); - } - - - /// - /// tick method. if it returns true it indicates the tween is complete. - /// note: at it's base, AbstractGoTween does not fire events, it is up to the implementer to - /// do so. see GoTween and AbstractGoTweenCollection for examples. - /// - public virtual bool update( float deltaTime ) - { - // increment or decrement the total elapsed time then clamp from 0 to totalDuration - if( isReversed ) - _totalElapsedTime -= deltaTime; - else - _totalElapsedTime += deltaTime; - - _totalElapsedTime = Mathf.Clamp( _totalElapsedTime, 0, totalDuration ); - - _didIterateLastFrame = _didIterateThisFrame || ( !isReversed && _totalElapsedTime == 0 ) || ( isReversed && _totalElapsedTime == totalDuration ); - - // we flip between ceil and floor based on the direction, because we want the iteration change - // to happen when "duration" seconds has elapsed, not immediately, as was the case if you - // were doing a floor and were going in reverse. - if( isReversed ) - _deltaIterations = Mathf.CeilToInt( _totalElapsedTime / duration ) - _completedIterations; - else - _deltaIterations = Mathf.FloorToInt( _totalElapsedTime / duration ) - _completedIterations; - - // we iterated this frame if we have done a goTo() to an iteration point, or we've passed over - // an iteration threshold. - _didIterateThisFrame = !_didIterateLastFrame && ( _deltaIterations != 0f || _totalElapsedTime % duration == 0f ); - - _completedIterations += _deltaIterations; - - // set the elapsedTime, given what we know. - if( _didIterateLastFrame ) - { - _elapsedTime = isReversed ? duration : 0f; - } - else if( _didIterateThisFrame ) - { - // if we iterated this frame, we force the _elapsedTime to the end of the timeline. - _elapsedTime = isReversed ? 0f : duration; - } - else - { - _elapsedTime = _totalElapsedTime % duration; - - // if you do a goTo(x) where x is a multiple of duration, we assume that you want - // to be at the end of your duration, as this sets you up to have an automatic OnIterationStart fire - // the next updated frame. the only caveat is when you do a goTo(0) when playing forwards, - // or a goTo(totalDuration) when playing in reverse. we assume that at that point, you want to be - // at the start of your tween. - if( _elapsedTime == 0f && ( ( isReversed && _totalElapsedTime == totalDuration ) || ( !isReversed && _totalElapsedTime > 0f ) ) ) - { - _elapsedTime = duration; - } - } - - // we can only be looping back on a PingPong if our loopType is PingPong and we are on an odd numbered iteration - _isLoopingBackOnPingPong = false; - if( loopType == GoLoopType.PingPong ) - { - // due to the way that we count iterations, and force a tween to remain at the end - // of it's timeline for one frame after passing the duration threshold, - // we need to make sure that _isLoopingBackOnPingPong references the current - // iteration, and not the next one. - if( isReversed ) - { - _isLoopingBackOnPingPong = _completedIterations % 2 == 0; - - if( _elapsedTime == 0f ) - _isLoopingBackOnPingPong = !_isLoopingBackOnPingPong; - } - else - { - _isLoopingBackOnPingPong = _completedIterations % 2 != 0; - - if( _elapsedTime == duration ) - _isLoopingBackOnPingPong = !_isLoopingBackOnPingPong; - } - } - - // set a flag whether to fire the onIterationEnd event or not. - _fireIterationStart = _didIterateThisFrame || ( !isReversed && _elapsedTime == duration ) || ( isReversed && _elapsedTime == 0f ); - _fireIterationEnd = _didIterateThisFrame; - - // check for completion - if( ( !isReversed && iterations >= 0 && _completedIterations >= iterations ) || ( isReversed && _totalElapsedTime <= 0 ) ) - state = GoTweenState.Complete; - - if( state == GoTweenState.Complete ) - { - // these variables need to be reset here. if a tween were to complete, - // and then get played again: - // * The onIterationStart event would get fired - // * tweens would flip their elapsedTime between 0 and totalDuration - - _fireIterationStart = false; - _didIterateThisFrame = false; - - return true; // true if complete - } - - return false; // false if not complete - } - - - /// - /// subclasses should return true if they are a valid and ready to be added to the list of running tweens - /// or false if not ready. - /// technically, this should be marked as internal - /// - public abstract bool isValid(); - - - /// - /// attempts to remove the tween property returning true if successful - /// technically, this should be marked as internal - /// - public abstract bool removeTweenProperty( AbstractTweenProperty property ); - - - /// - /// returns true if the tween contains the same type (or propertyName) property in its property list - /// technically, this should be marked as internal - /// - public abstract bool containsTweenProperty( AbstractTweenProperty property ); - - - /// - /// returns a list of all the TweenProperties contained in the tween and all its children (if it is - /// a TweenChain or a TweenFlow) - /// technically, this should be marked as internal - /// - public abstract List allTweenProperties(); - - - /// - /// removes the Tween from action and cleans up its state - /// - public virtual void destroy() - { - state = GoTweenState.Destroyed; - } - - - /// - /// pauses playback - /// - public virtual void pause() - { - state = GoTweenState.Paused; - } - - - /// - /// resumes playback - /// - public virtual void play() - { - state = GoTweenState.Running; - } - - - /// - /// plays the tween forward. if it is already playing forward has no effect - /// - public void playForward() - { - if( isReversed ) - reverse(); - - play(); - } - - - /// - /// plays the tween backwards. if it is already playing backwards has no effect - /// - public void playBackwards() - { - if( !isReversed ) - reverse(); - - play(); - } - - - /// - /// resets the tween to the beginning, taking isReversed into account. - /// - protected virtual void reset( bool skipDelay = true ) - { - goTo( isReversed ? totalDuration : 0, skipDelay ); - - _fireIterationStart = true; - } - - - /// - /// rewinds the tween to the beginning (or end, depending on isReversed) and pauses playback. - /// - public virtual void rewind( bool skipDelay = true ) - { - reset( skipDelay ); - pause(); - } - - - /// - /// rewinds the tween to the beginning (or end, depending on isReversed) and starts playback, - /// optionally skipping delay (only relevant for Tweens). - /// - public void restart( bool skipDelay = true ) - { - reset( skipDelay ); - play(); - } - - - /// - /// reverses playback. if going forward it will be going backward after this and vice versa. - /// - public virtual void reverse() - { - isReversed = !isReversed; - - _completedIterations = isReversed ? Mathf.CeilToInt( _totalElapsedTime / duration ) : Mathf.FloorToInt( _totalElapsedTime / duration ); - - // if we are at the "start" of the timeline, based on isReversed, - // allow the onBegin/onIterationStart callbacks to fire again. - if( ( isReversed && _totalElapsedTime == totalDuration ) || ( !isReversed && _totalElapsedTime == 0f ) ) - { - _didBegin = false; - _fireIterationStart = true; - } - } - - - /// - /// completes the tween. sets the playhead to it's final position as if the tween completed normally. - /// takes into account if the tween was playing forward or reversed. - /// - public virtual void complete() - { - if( iterations < 0 ) - return; - - // set full elapsed time and let the next iteration finish it off - goTo( isReversed ? 0 : totalDuration, true ); - } - - - /// - /// goes to the specified time clamping it from 0 to the total duration of the tween. if the tween is - /// not playing it can optionally be force updated to the time specified. delays are not taken into effect. - /// (must be implemented by inherited classes.) - /// - public abstract void goTo( float time, bool skipDelay = true ); - - /// - /// goes to the time and starts playback skipping any delays - /// - public void goToAndPlay( float time, bool skipDelay = true ) - { - goTo( time, skipDelay ); - play(); - } - - - /// - /// waits for either completion or destruction. call in a Coroutine and yield on the return - /// - public IEnumerator waitForCompletion() - { - while( state != GoTweenState.Complete && state != GoTweenState.Destroyed ) - yield return null; - - yield break; - } -} diff --git a/Assets/Plugins/GoKit/base/AbstractGoTween.cs.meta b/Assets/Plugins/GoKit/base/AbstractGoTween.cs.meta deleted file mode 100644 index f81efa0..0000000 --- a/Assets/Plugins/GoKit/base/AbstractGoTween.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: d8eb47665d5434148a4bd7391644861a -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/base/AbstractGoTweenCollection.cs b/Assets/Plugins/GoKit/base/AbstractGoTweenCollection.cs deleted file mode 100644 index 39e93a0..0000000 --- a/Assets/Plugins/GoKit/base/AbstractGoTweenCollection.cs +++ /dev/null @@ -1,500 +0,0 @@ -using UnityEngine; -using System.Collections; -using System.Collections.Generic; - - -/// -/// base class for TweenChains and TweenFlows -/// -public class AbstractGoTweenCollection : AbstractGoTween -{ - protected List _tweenFlows = new List(); - - - /// - /// data class that wraps an AbstractTween and its start time for the timeline - /// - protected class TweenFlowItem - { - public float startTime; - public float endTime { get { return startTime + duration; } } - public float duration; - public AbstractGoTween tween; - - - public TweenFlowItem( float startTime, AbstractGoTween tween ) - { - this.tween = tween; - this.startTime = startTime; - this.duration = tween.totalDuration; - } - - - public TweenFlowItem( float startTime, float duration ) - { - this.duration = duration; - this.startTime = startTime; - } - } - - - public AbstractGoTweenCollection( GoTweenCollectionConfig config ) - { - // allow events by default - allowEvents = true; - - // setup callback bools - _didInit = false; - _didBegin = false; - - // flag the onIterationStart event to fire. - // as long as goTo is not called on this tween, the onIterationStart event will fire - _fireIterationStart = true; - - // copy the TweenConfig info over - id = config.id; - loopType = config.loopType; - iterations = config.iterations; - updateType = config.propertyUpdateType; - timeScale = 1; - state = GoTweenState.Paused; - - _onInit = config.onInitHandler; - _onBegin = config.onBeginHandler; - _onIterationStart = config.onIterationStartHandler; - _onUpdate = config.onUpdateHandler; - _onIterationEnd = config.onIterationEndHandler; - _onComplete = config.onCompleteHandler; - - Go.addTween( this ); - } - - - #region AbstractTween overrides - - /// - /// returns a list of all Tweens with the given target in the collection - /// technically, this should be marked as internal - /// - public List tweensWithTarget( object target ) - { - List list = new List(); - - foreach( var flowItem in _tweenFlows ) - { - // skip TweenFlowItems with no target - if( flowItem.tween == null ) - continue; - - // check Tweens first - var tween = flowItem.tween as GoTween; - if( tween != null && tween.target == target ) - list.Add( tween ); - - // check for TweenCollections - if( tween == null ) - { - var tweenCollection = flowItem.tween as AbstractGoTweenCollection; - if( tweenCollection != null ) - { - var tweensInCollection = tweenCollection.tweensWithTarget( target ); - if( tweensInCollection.Count > 0 ) - list.AddRange( tweensInCollection ); - } - } - } - - return list; - } - - - public override bool removeTweenProperty( AbstractTweenProperty property ) - { - foreach( var flowItem in _tweenFlows ) - { - // skip delay items which have no tween - if( flowItem.tween == null ) - continue; - - if( flowItem.tween.removeTweenProperty( property ) ) - return true; - } - - return false; - } - - - public override bool containsTweenProperty( AbstractTweenProperty property ) - { - foreach( var flowItem in _tweenFlows ) - { - // skip delay items which have no tween - if( flowItem.tween == null ) - continue; - - if( flowItem.tween.containsTweenProperty( property ) ) - return true; - } - - return false; - } - - - public override List allTweenProperties() - { - var propList = new List(); - - foreach( var flowItem in _tweenFlows ) - { - // skip delay items which have no tween - if( flowItem.tween == null ) - continue; - - propList.AddRange( flowItem.tween.allTweenProperties() ); - } - - return propList; - } - - - /// - /// we are always considered valid because our constructor adds us to Go and we start paused - /// - public override bool isValid() - { - return true; - } - - /// - /// resumes playback - /// - public override void play() - { - base.play(); - - foreach( var flowItem in _tweenFlows ) - { - if( flowItem.tween != null ) - flowItem.tween.play(); - } - } - - /// - /// pauses playback - /// - public override void pause() - { - base.pause(); - - foreach( var flowItem in _tweenFlows ) - { - if( flowItem.tween != null ) - flowItem.tween.pause(); - } - } - - /// - /// tick method. if it returns true it indicates the tween is complete - /// - public override bool update( float deltaTime ) - { - if ( !_didInit ) - onInit(); - - if ( !_didBegin ) - onBegin(); - - if ( _fireIterationStart ) - onIterationStart(); - - // update the timeline and state. - base.update( deltaTime ); - - // get the proper elapsedTime if we're doing a PingPong - var convertedElapsedTime = _isLoopingBackOnPingPong ? duration - _elapsedTime : _elapsedTime; - - // used for iterating over flowItems below. - TweenFlowItem flowItem = null; - - // if we iterated last frame and this flow restarts from the beginning, we now need to reset all - // of the flowItem tweens to either the beginning or the end of their respective timelines - // we also want to do this in the _opposite_ way that we would normally iterate on them - // as the start value of a later flowItem may alter a property of an earlier flowItem. - if ( _didIterateLastFrame && loopType == GoLoopType.RestartFromBeginning ) - { - if ( isReversed || _isLoopingBackOnPingPong ) - { - for ( int i = 0; i < _tweenFlows.Count; ++i ) - { - flowItem = _tweenFlows[i]; - - if ( flowItem.tween == null ) - continue; - - var cacheAllow = flowItem.tween.allowEvents; - flowItem.tween.allowEvents = false; - flowItem.tween.restart(); - flowItem.tween.allowEvents = cacheAllow; - } - } - else - { - for ( int i = _tweenFlows.Count - 1; i >= 0; --i ) - { - flowItem = _tweenFlows[i]; - - if ( flowItem.tween == null ) - continue; - - var cacheAllow = flowItem.tween.allowEvents; - flowItem.tween.allowEvents = false; - flowItem.tween.restart(); - flowItem.tween.allowEvents = cacheAllow; - } - } - } - else - { - if ( ( isReversed && !_isLoopingBackOnPingPong ) || ( !isReversed && _isLoopingBackOnPingPong ) ) - { - // if we are moving the tween in reverse, we should be iterating over the flowItems in reverse - // to help properties behave a bit better. - for ( var i = _tweenFlows.Count - 1; i >= 0; --i ) - { - flowItem = _tweenFlows[i]; - - if ( flowItem.tween == null ) - continue; - - // if there's been an iteration this frame and we're not done yet, we want to make sure - // this tween is set to play in the right direction, and isn't set to complete/paused. - if ( _didIterateLastFrame && state != GoTweenState.Complete ) - { - if ( !flowItem.tween.isReversed ) - flowItem.tween.reverse(); - - flowItem.tween.play(); - } - - if ( flowItem.tween.state == GoTweenState.Running && flowItem.endTime >= convertedElapsedTime ) - { - var convertedDeltaTime = Mathf.Abs( convertedElapsedTime - flowItem.startTime - flowItem.tween.totalElapsedTime ); - flowItem.tween.update( convertedDeltaTime ); - } - } - } - else - { - for ( int i = 0; i < _tweenFlows.Count; ++i ) - { - flowItem = _tweenFlows[i]; - - if ( flowItem.tween == null ) - continue; - - // if there's been an iteration this frame and we're not done yet, we want to make sure - // this tween is set to play in the right direction, and isn't set to complete/paused. - if ( _didIterateLastFrame && state != GoTweenState.Complete ) - { - if ( flowItem.tween.isReversed ) - flowItem.tween.reverse(); - - flowItem.tween.play(); - } - - if ( flowItem.tween.state == GoTweenState.Running && flowItem.startTime <= convertedElapsedTime ) - { - var convertedDeltaTime = convertedElapsedTime - flowItem.startTime - flowItem.tween.totalElapsedTime; - flowItem.tween.update( convertedDeltaTime ); - } - } - } - } - - onUpdate(); - - if ( _fireIterationEnd ) - onIterationEnd(); - - if ( state == GoTweenState.Complete ) - { - onComplete(); - - return true; // true if complete - } - - return false; // false if not complete - } - - /// - /// reverses playback. if going forward it will be going backward after this and vice versa. - /// - public override void reverse() - { - base.reverse(); - - var convertedElapsedTime = _isLoopingBackOnPingPong ? duration - _elapsedTime : _elapsedTime; - - foreach ( var flowItem in _tweenFlows ) - { - if ( flowItem.tween == null ) - continue; - - if ( isReversed != flowItem.tween.isReversed ) - flowItem.tween.reverse(); - - flowItem.tween.pause(); - - // we selectively mark tweens for play if they will be played immediately or in the future. - // update() will filter out more tweens that should not be played yet. - if ( isReversed || _isLoopingBackOnPingPong ) - { - if ( flowItem.startTime <= convertedElapsedTime ) - flowItem.tween.play(); - } - else - { - if ( flowItem.endTime >= convertedElapsedTime ) - flowItem.tween.play(); - } - } - } - - /// - /// goes to the specified time clamping it from 0 to the total duration of the tween. if the tween is - /// not playing it will be force updated to the time specified. - /// - public override void goTo( float time, bool skipDelay = true ) - { - time = Mathf.Clamp( time, 0f, totalDuration ); - - // provide an early out for calling goTo on the same time multiple times. - if ( time == _totalElapsedTime ) - return; - - // we don't simply call base.goTo because that would force an update within AbstractGoTweenCollection, - // which forces an update on all the tweenFlowItems without putting them in the right position. - // it's also possible that people will move around a tween via the goTo method, so we want to - // try to make that as efficient as possible. - - // if we are doing a goTo at the "start" of the timeline, based on the isReversed variable, - // allow the onBegin and onIterationStart callback to fire again. - // we only allow the onIterationStart event callback to fire at the start of the timeline, - // as doing a goTo(x) where x % duration == 0 will trigger the onIterationEnd before we - // go to the start. - if ( ( isReversed && time == totalDuration ) || ( !isReversed && time == 0f ) ) - { - _didBegin = false; - _fireIterationStart = true; - } - else - { - _didBegin = true; - _fireIterationStart = false; - } - - // since we're doing a goTo, we want to stop this tween from remembering that it iterated. - // this could cause issues if you caused the tween to complete an iteration and then goTo somewhere - // else while still paused. - _didIterateThisFrame = false; - - // force a time and completedIterations before we update - _totalElapsedTime = time; - _completedIterations = isReversed ? Mathf.CeilToInt( _totalElapsedTime / duration ) : Mathf.FloorToInt( _totalElapsedTime / duration ); - - // we don't want to use the Collection update function, because we don't have all of our - // child tweenFlowItems setup properly. this will properly setup our iterations, - // totalElapsedTime, and other useful information. - base.update( 0 ); - - var convertedElapsedTime = _isLoopingBackOnPingPong ? duration - _elapsedTime : _elapsedTime; - - // we always want to process items in the future of this tween from last to first. - // and items that have already occured from first to last. - TweenFlowItem flowItem = null; - if ( isReversed || _isLoopingBackOnPingPong ) - { - // flowItems in the future of the timeline - for ( int i = 0; i < _tweenFlows.Count; ++i ) - { - flowItem = _tweenFlows[i]; - - if ( flowItem == null ) - continue; - - if ( flowItem.endTime >= convertedElapsedTime ) - break; - - changeTimeForFlowItem( flowItem, convertedElapsedTime ); - } - - // flowItems in the past & current part of the timeline - for ( int i = _tweenFlows.Count - 1; i >= 0; --i ) - { - flowItem = _tweenFlows[i]; - - if ( flowItem == null ) - continue; - - if ( flowItem.endTime < convertedElapsedTime ) - break; - - changeTimeForFlowItem( flowItem, convertedElapsedTime ); - } - } - else - { - // flowItems in the future of the timeline - for ( int i = _tweenFlows.Count - 1; i >= 0; --i ) - { - flowItem = _tweenFlows[i]; - - if ( flowItem == null ) - continue; - - if ( flowItem.startTime <= convertedElapsedTime ) - break; - - changeTimeForFlowItem( flowItem, convertedElapsedTime ); - } - - // flowItems in the past & current part of the timeline - for ( int i = 0; i < _tweenFlows.Count; ++i ) - { - flowItem = _tweenFlows[i]; - - if ( flowItem == null ) - continue; - - if ( flowItem.startTime > convertedElapsedTime ) - break; - - changeTimeForFlowItem( flowItem, convertedElapsedTime ); - } - } - } - - private void changeTimeForFlowItem( TweenFlowItem flowItem, float time ) - { - if ( flowItem == null || flowItem.tween == null ) - return; - - if ( flowItem.tween.isReversed != ( isReversed || _isLoopingBackOnPingPong ) ) - flowItem.tween.reverse(); - - var convertedTime = Mathf.Clamp( time - flowItem.startTime, 0f, flowItem.endTime ); - - if ( flowItem.startTime <= time && flowItem.endTime >= time ) - { - flowItem.tween.goToAndPlay( convertedTime ); - } - else - { - flowItem.tween.goTo( convertedTime ); - flowItem.tween.pause(); - } - } - - #endregion - -} diff --git a/Assets/Plugins/GoKit/base/AbstractGoTweenCollection.cs.meta b/Assets/Plugins/GoKit/base/AbstractGoTweenCollection.cs.meta deleted file mode 100644 index 89a5779..0000000 --- a/Assets/Plugins/GoKit/base/AbstractGoTweenCollection.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: c011ef2561dca4c2492fdbf1b78d96a8 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/easing/GoEaseBack.cs b/Assets/Plugins/GoKit/easing/GoEaseBack.cs deleted file mode 100644 index 1b32a97..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseBack.cs +++ /dev/null @@ -1,25 +0,0 @@ -public static class GoEaseBack -{ - public static float EaseIn( float t, float b, float c, float d ) - { - return c * ( t /= d ) * t * ( ( 1.70158f + 1 ) * t - 1.70158f ) + b; - } - - - public static float EaseOut( float t, float b, float c, float d ) - { - return c * ( ( t = t / d - 1 ) * t * ( ( 1.70158f + 1 ) * t + 1.70158f ) + 1 ) + b; - } - - - public static float EaseInOut( float t, float b, float c, float d ) - { - float s = 1.70158f; - if( ( t /= d / 2 ) < 1 ) - { - return c / 2 * ( t * t * ( ( ( s *= ( 1.525f ) ) + 1 ) * t - s ) ) + b; - } - return c / 2 * ( ( t -= 2 ) * t * ( ( ( s *= ( 1.525f ) ) + 1 ) * t + s ) + 2 ) + b; - } -} - diff --git a/Assets/Plugins/GoKit/easing/GoEaseBack.cs.meta b/Assets/Plugins/GoKit/easing/GoEaseBack.cs.meta deleted file mode 100644 index 02e2410..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseBack.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: e44fd25dcb7704da0a39cfe042b81293 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/easing/GoEaseBounce.cs b/Assets/Plugins/GoKit/easing/GoEaseBounce.cs deleted file mode 100644 index c74f515..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseBounce.cs +++ /dev/null @@ -1,35 +0,0 @@ -public static class GoEaseBounce -{ - public static float EaseOut( float t, float b, float c, float d ) - { - if( ( t /= d ) < ( 1 / 2.75 ) ) - { - return c * ( 7.5625f * t * t ) + b; - } - else if( t < ( 2 / 2.75 ) ) - { - return c * ( 7.5625f * ( t -= ( 1.5f / 2.75f ) ) * t + .75f ) + b; - } - else if( t < ( 2.5 / 2.75 ) ) - { - return c * ( 7.5625f * ( t -= ( 2.25f / 2.75f ) ) * t + .9375f ) + b; - } - else - { - return c * ( 7.5625f * ( t -= ( 2.625f / 2.75f ) ) * t + .984375f ) + b; - } - } - - public static float EaseIn( float t, float b, float c, float d ) - { - return c - EaseOut( d - t, 0, c, d ) + b; - } - - public static float EaseInOut( float t, float b, float c, float d ) - { - if( t < d / 2 ) - return EaseIn( t * 2, 0, c, d ) * 0.5f + b; - else - return EaseOut( t * 2 - d, 0, c, d ) * .5f + c * 0.5f + b; - } -} \ No newline at end of file diff --git a/Assets/Plugins/GoKit/easing/GoEaseBounce.cs.meta b/Assets/Plugins/GoKit/easing/GoEaseBounce.cs.meta deleted file mode 100644 index 4e6688f..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseBounce.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 95777a3e9f3304c5f87d79f0035e7cce -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/easing/GoEaseCircular.cs b/Assets/Plugins/GoKit/easing/GoEaseCircular.cs deleted file mode 100644 index 9c05c92..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseCircular.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; - - -public static class GoEaseCircular -{ - public static float EaseIn( float t, float b, float c, float d ) - { - return -c * ( (float)Math.Sqrt( 1 - ( t /= d ) * t ) - 1 ) + b; - } - - public static float EaseOut( float t, float b, float c, float d ) - { - return c * (float)Math.Sqrt( 1 - ( t = t / d - 1 ) * t ) + b; - } - - public static float EaseInOut( float t, float b, float c, float d ) - { - if( ( t /= d / 2 ) < 1 ) - { - return -c / 2 * ( (float)Math.Sqrt( 1 - t * t ) - 1 ) + b; - } - return c / 2 * ( (float)Math.Sqrt( 1 - ( t -= 2 ) * t ) + 1 ) + b; - } -} diff --git a/Assets/Plugins/GoKit/easing/GoEaseCircular.cs.meta b/Assets/Plugins/GoKit/easing/GoEaseCircular.cs.meta deleted file mode 100644 index 4d97c64..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseCircular.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 1b7f811e7d59a41bf99d08c646d1725b -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/easing/GoEaseCubic.cs b/Assets/Plugins/GoKit/easing/GoEaseCubic.cs deleted file mode 100644 index 3c8df0a..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseCubic.cs +++ /dev/null @@ -1,21 +0,0 @@ -public static class GoEaseCubic -{ - public static float EaseIn( float t, float b, float c, float d ) - { - return c * ( t /= d ) * t * t + b; - } - - public static float EaseOut( float t, float b, float c, float d ) - { - return c * ( ( t = t / d - 1 ) * t * t + 1 ) + b; - } - - public static float EaseInOut( float t, float b, float c, float d ) - { - if( ( t /= d / 2 ) < 1 ) - { - return c / 2 * t * t * t + b; - } - return c / 2 * ( ( t -= 2 ) * t * t + 2 ) + b; - } -} \ No newline at end of file diff --git a/Assets/Plugins/GoKit/easing/GoEaseCubic.cs.meta b/Assets/Plugins/GoKit/easing/GoEaseCubic.cs.meta deleted file mode 100644 index 56639fb..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseCubic.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 7210f854113854752bdff44a9b562d42 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/easing/GoEaseElastic.cs b/Assets/Plugins/GoKit/easing/GoEaseElastic.cs deleted file mode 100644 index a252b41..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseElastic.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using UnityEngine; - - -public class GoEaseElastic -{ - public static float EaseIn( float t, float b, float c, float d ) - { - if( t == 0 ) - { - return b; - } - if( ( t /= d ) == 1 ) - { - return b + c; - } - float p = d * .3f; - float s = p / 4; - return -(float)( c * Math.Pow( 2, 10 * ( t -= 1 ) ) * Math.Sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) ) + b; - } - - public static float EaseOut( float t, float b, float c, float d ) - { - if( t == 0 ) - { - return b; - } - if( ( t /= d ) == 1 ) - { - return b + c; - } - float p = d * .3f; - float s = p / 4; - return (float)( c * Math.Pow( 2, -10 * t ) * Math.Sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) + c + b ); - } - - public static float EaseInOut( float t, float b, float c, float d ) - { - if( t == 0 ) - { - return b; - } - if( ( t /= d / 2 ) == 2 ) - { - return b + c; - } - float p = d * ( .3f * 1.5f ); - float a = c; - float s = p / 4; - if( t < 1 ) - { - return -.5f * (float)( a * Math.Pow( 2, 10 * ( t -= 1 ) ) * Math.Sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) ) + b; - } - return (float)( a * Math.Pow( 2, -10 * ( t -= 1 ) ) * Math.Sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) * .5 + c + b ); - } - - public static float Punch( float t, float b, float c, float d ) - { - if( t == 0 ) - return 0; - - if( ( t /= d ) == 1 ) - return 0; - - const float p = 0.3f; - return ( c * Mathf.Pow( 2, -10 * t ) * Mathf.Sin( t * ( 2 * Mathf.PI ) / p ) ); - } -} \ No newline at end of file diff --git a/Assets/Plugins/GoKit/easing/GoEaseElastic.cs.meta b/Assets/Plugins/GoKit/easing/GoEaseElastic.cs.meta deleted file mode 100644 index 0207c34..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseElastic.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 2c183f70ddaf54b6caa706e2d7a15837 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/easing/GoEaseExponential.cs b/Assets/Plugins/GoKit/easing/GoEaseExponential.cs deleted file mode 100644 index eaeecd2..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseExponential.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; - - -public static class GoEaseExponential -{ - public static float EaseIn( float t, float b, float c, float d ) - { - return ( t == 0 ) ? b : c * (float)Math.Pow( 2, 10 * ( t / d - 1 ) ) + b; - } - - public static float EaseOut( float t, float b, float c, float d ) - { - return ( t == d ) ? b + c : c * (float)( -Math.Pow( 2, -10 * t / d ) + 1 ) + b; - } - - public static float EaseInOut( float t, float b, float c, float d ) - { - if( t == 0 ) - { - return b; - } - if( t == d ) - { - return b + c; - } - if( ( t /= d / 2 ) < 1 ) - { - return c / 2 * (float)Math.Pow( 2, 10 * ( t - 1 ) ) + b; - } - return c / 2 * (float)( -Math.Pow( 2, -10 * --t ) + 2 ) + b; - } -} diff --git a/Assets/Plugins/GoKit/easing/GoEaseExponential.cs.meta b/Assets/Plugins/GoKit/easing/GoEaseExponential.cs.meta deleted file mode 100644 index 52e8e93..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseExponential.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 9db2ed7f90d404641b604f6db1368fcc -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/easing/GoEaseLinear.cs b/Assets/Plugins/GoKit/easing/GoEaseLinear.cs deleted file mode 100644 index a61643d..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseLinear.cs +++ /dev/null @@ -1,10 +0,0 @@ -using UnityEngine; - - -public static class GoEaseLinear -{ - public static float EaseNone( float t, float b, float c, float d ) - { - return c * t / d + b; - } -} \ No newline at end of file diff --git a/Assets/Plugins/GoKit/easing/GoEaseLinear.cs.meta b/Assets/Plugins/GoKit/easing/GoEaseLinear.cs.meta deleted file mode 100644 index e2a6d0f..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseLinear.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: d2f840d866998449683cf9b8a34c0b8f -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/easing/GoEaseQuadratic.cs b/Assets/Plugins/GoKit/easing/GoEaseQuadratic.cs deleted file mode 100644 index f15e825..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseQuadratic.cs +++ /dev/null @@ -1,21 +0,0 @@ -public static class GoEaseQuadratic -{ - public static float EaseIn( float t, float b, float c, float d ) - { - return c * ( t /= d ) * t + b; - } - - public static float EaseOut( float t, float b, float c, float d ) - { - return -c * ( t /= d ) * ( t - 2 ) + b; - } - - public static float EaseInOut( float t, float b, float c, float d ) - { - if( ( t /= d / 2 ) < 1 ) - { - return c / 2 * t * t + b; - } - return -c / 2 * ( ( --t ) * ( t - 2 ) - 1 ) + b; - } -} diff --git a/Assets/Plugins/GoKit/easing/GoEaseQuadratic.cs.meta b/Assets/Plugins/GoKit/easing/GoEaseQuadratic.cs.meta deleted file mode 100644 index 74ab674..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseQuadratic.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 94e247c3236114f678e9ffffa07bfe09 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/easing/GoEaseQuartic.cs b/Assets/Plugins/GoKit/easing/GoEaseQuartic.cs deleted file mode 100644 index a9631b6..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseQuartic.cs +++ /dev/null @@ -1,21 +0,0 @@ -public static class GoEaseQuartic -{ - public static float EaseIn( float t, float b, float c, float d ) - { - return c * ( t /= d ) * t * t * t + b; - } - - public static float EaseOut( float t, float b, float c, float d ) - { - return -c * ( ( t = t / d - 1 ) * t * t * t - 1 ) + b; - } - - public static float EaseInOut( float t, float b, float c, float d ) - { - if( ( t /= d / 2 ) < 1 ) - { - return c / 2 * t * t * t * t + b; - } - return -c / 2 * ( ( t -= 2 ) * t * t * t - 2 ) + b; - } -} \ No newline at end of file diff --git a/Assets/Plugins/GoKit/easing/GoEaseQuartic.cs.meta b/Assets/Plugins/GoKit/easing/GoEaseQuartic.cs.meta deleted file mode 100644 index 20086a7..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseQuartic.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 178a095287feb40b3b2fb42327529cf3 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/easing/GoEaseQuintic.cs b/Assets/Plugins/GoKit/easing/GoEaseQuintic.cs deleted file mode 100644 index 8275a6c..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseQuintic.cs +++ /dev/null @@ -1,21 +0,0 @@ -public static class GoEaseQuintic -{ - public static float EaseIn( float t, float b, float c, float d ) - { - return c * ( t /= d ) * t * t * t * t + b; - } - - public static float EaseOut( float t, float b, float c, float d ) - { - return c * ( ( t = t / d - 1 ) * t * t * t * t + 1 ) + b; - } - - public static float EaseInOut( float t, float b, float c, float d ) - { - if( ( t /= d / 2 ) < 1 ) - { - return c / 2 * t * t * t * t * t + b; - } - return c / 2 * ( ( t -= 2 ) * t * t * t * t + 2 ) + b; - } -} \ No newline at end of file diff --git a/Assets/Plugins/GoKit/easing/GoEaseQuintic.cs.meta b/Assets/Plugins/GoKit/easing/GoEaseQuintic.cs.meta deleted file mode 100644 index 4d6c1ce..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseQuintic.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: ec4a9f5d98bf04114b5a015db1308a60 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/easing/GoEaseSinusoidal.cs b/Assets/Plugins/GoKit/easing/GoEaseSinusoidal.cs deleted file mode 100644 index 0d93276..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseSinusoidal.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using UnityEngine; - - -public static class GoEaseSinusoidal -{ - public static float EaseIn( float t, float b, float c, float d ) - { - return -c * (float)Math.Cos( t / d * ( Math.PI / 2 ) ) + c + b; - } - - public static float EaseOut( float t, float b, float c, float d ) - { - return c * (float)Math.Sin( t / d * ( Math.PI / 2 ) ) + b; - } - - public static float EaseInOut( float t, float b, float c, float d ) - { - return -c / 2 * ( (float)Math.Cos( Math.PI * t / d ) - 1 ) + b; - } -} \ No newline at end of file diff --git a/Assets/Plugins/GoKit/easing/GoEaseSinusoidal.cs.meta b/Assets/Plugins/GoKit/easing/GoEaseSinusoidal.cs.meta deleted file mode 100644 index 9af39e6..0000000 --- a/Assets/Plugins/GoKit/easing/GoEaseSinusoidal.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 5fa97311d39f04b93b833ca28fac10ae -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/easing/easeEquationsLicense.txt b/Assets/Plugins/GoKit/easing/easeEquationsLicense.txt deleted file mode 100644 index 4b171ff..0000000 --- a/Assets/Plugins/GoKit/easing/easeEquationsLicense.txt +++ /dev/null @@ -1,33 +0,0 @@ -/* -Microsoft Public License (Ms-PL) - -This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software. - -1. Definitions - -The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. - -A "contribution" is the original software, or any additions or changes to the software. - -A "contributor" is any person that distributes its contribution under this license. - -"Licensed patents" are a contributor's patent claims that read directly on its contribution. - -2. Grant of Rights - -(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. - -(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. - -3. Conditions and Limitations - -(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks. - -(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically. - -(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. - -(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. - -(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. -*/ \ No newline at end of file diff --git a/Assets/Plugins/GoKit/enums.meta b/Assets/Plugins/GoKit/enums.meta deleted file mode 100644 index 8733216..0000000 --- a/Assets/Plugins/GoKit/enums.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 3fdf9641baedb40338ca9a110aa99706 -folderAsset: yes -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/enums/GoDuplicatePropertyRuleType.cs b/Assets/Plugins/GoKit/enums/GoDuplicatePropertyRuleType.cs deleted file mode 100644 index 2a23635..0000000 --- a/Assets/Plugins/GoKit/enums/GoDuplicatePropertyRuleType.cs +++ /dev/null @@ -1,15 +0,0 @@ -using UnityEngine; -using System.Collections; - - - -/// -/// defines what should be done in the event that a TweenProperty is being added to Go when an existing TweenProperty -/// of the same type with the same target object is already present -/// -public enum GoDuplicatePropertyRuleType -{ - None, // dont bother checking or doing anything - RemoveRunningProperty, // removes the property from the Tween that was already running - DontAddCurrentProperty // leaves the original property intact and doesnt add the current property -} diff --git a/Assets/Plugins/GoKit/enums/GoDuplicatePropertyRuleType.cs.meta b/Assets/Plugins/GoKit/enums/GoDuplicatePropertyRuleType.cs.meta deleted file mode 100644 index 35c6dc7..0000000 --- a/Assets/Plugins/GoKit/enums/GoDuplicatePropertyRuleType.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 7107639cda4a541a79a05bd60caf35c8 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/enums/GoEaseType.cs b/Assets/Plugins/GoKit/enums/GoEaseType.cs deleted file mode 100644 index 85ece37..0000000 --- a/Assets/Plugins/GoKit/enums/GoEaseType.cs +++ /dev/null @@ -1,50 +0,0 @@ -using UnityEngine; -using System.Collections; - - - -public enum GoEaseType -{ - Linear, - - SineIn, - SineOut, - SineInOut, - - QuadIn, - QuadOut, - QuadInOut, - - CubicIn, - CubicOut, - CubicInOut, - - QuartIn, - QuartOut, - QuartInOut, - - QuintIn, - QuintOut, - QuintInOut, - - ExpoIn, - ExpoOut, - ExpoInOut, - - CircIn, - CircOut, - CircInOut, - - ElasticIn, - ElasticOut, - ElasticInOut, - Punch, - - BackIn, - BackOut, - BackInOut, - - BounceIn, - BounceOut, - BounceInOut -} diff --git a/Assets/Plugins/GoKit/enums/GoEaseType.cs.meta b/Assets/Plugins/GoKit/enums/GoEaseType.cs.meta deleted file mode 100644 index a13b60d..0000000 --- a/Assets/Plugins/GoKit/enums/GoEaseType.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: e53d7306407a34ceaa133d772fa1ec3b -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/enums/GoLogLevel.cs b/Assets/Plugins/GoKit/enums/GoLogLevel.cs deleted file mode 100644 index f85f14f..0000000 --- a/Assets/Plugins/GoKit/enums/GoLogLevel.cs +++ /dev/null @@ -1,11 +0,0 @@ -using UnityEngine; -using System.Collections; - - -public enum GoLogLevel -{ - None, - Info, - Warn, - Error -} diff --git a/Assets/Plugins/GoKit/enums/GoLogLevel.cs.meta b/Assets/Plugins/GoKit/enums/GoLogLevel.cs.meta deleted file mode 100644 index 63cfed1..0000000 --- a/Assets/Plugins/GoKit/enums/GoLogLevel.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 95f2b1a5decae452784d0c332801c1d1 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/enums/GoLookAtType.cs b/Assets/Plugins/GoKit/enums/GoLookAtType.cs deleted file mode 100644 index d6ac54a..0000000 --- a/Assets/Plugins/GoKit/enums/GoLookAtType.cs +++ /dev/null @@ -1,13 +0,0 @@ -using UnityEngine; -using System.Collections; - - -/// -/// used by paths to identify what the object being tweened should look at -/// -public enum GoLookAtType -{ - None, - NextPathNode, - TargetTransform -} diff --git a/Assets/Plugins/GoKit/enums/GoLookAtType.cs.meta b/Assets/Plugins/GoKit/enums/GoLookAtType.cs.meta deleted file mode 100644 index 449f2ee..0000000 --- a/Assets/Plugins/GoKit/enums/GoLookAtType.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 08691283d482e4054b037fc5d4030e48 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/enums/GoLoopType.cs b/Assets/Plugins/GoKit/enums/GoLoopType.cs deleted file mode 100644 index ceaddd9..0000000 --- a/Assets/Plugins/GoKit/enums/GoLoopType.cs +++ /dev/null @@ -1,10 +0,0 @@ -using UnityEngine; -using System.Collections; - - - -public enum GoLoopType -{ - RestartFromBeginning, - PingPong -} \ No newline at end of file diff --git a/Assets/Plugins/GoKit/enums/GoLoopType.cs.meta b/Assets/Plugins/GoKit/enums/GoLoopType.cs.meta deleted file mode 100644 index 2555fc0..0000000 --- a/Assets/Plugins/GoKit/enums/GoLoopType.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 8820e9c24b06041b8ab4157ec84b5f86 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/enums/GoShakeType.cs b/Assets/Plugins/GoKit/enums/GoShakeType.cs deleted file mode 100644 index b9abc80..0000000 --- a/Assets/Plugins/GoKit/enums/GoShakeType.cs +++ /dev/null @@ -1,11 +0,0 @@ -using UnityEngine; -using System.Collections; - - -[System.Flags] -public enum GoShakeType -{ - Position = ( 1 << 0 ), - Scale = ( 1 << 1 ), - Eulers = ( 1 << 2 ) -} \ No newline at end of file diff --git a/Assets/Plugins/GoKit/enums/GoShakeType.cs.meta b/Assets/Plugins/GoKit/enums/GoShakeType.cs.meta deleted file mode 100644 index 22a70b5..0000000 --- a/Assets/Plugins/GoKit/enums/GoShakeType.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 83c69d81ac63f4b789dd05ab1f326517 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/enums/GoSplineType.cs b/Assets/Plugins/GoKit/enums/GoSplineType.cs deleted file mode 100644 index 89651d2..0000000 --- a/Assets/Plugins/GoKit/enums/GoSplineType.cs +++ /dev/null @@ -1,11 +0,0 @@ -using UnityEngine; -using System.Collections; - - -public enum GoSplineType -{ - StraightLine, // 2 points - QuadraticBezier, // 3 points - CubicBezier, // 4 points - CatmullRom // 5+ points -} diff --git a/Assets/Plugins/GoKit/enums/GoSplineType.cs.meta b/Assets/Plugins/GoKit/enums/GoSplineType.cs.meta deleted file mode 100644 index b3409eb..0000000 --- a/Assets/Plugins/GoKit/enums/GoSplineType.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 3b24cf23dec3f4db7869ebfde6112be9 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/enums/GoTweenState.cs b/Assets/Plugins/GoKit/enums/GoTweenState.cs deleted file mode 100644 index 3accbb7..0000000 --- a/Assets/Plugins/GoKit/enums/GoTweenState.cs +++ /dev/null @@ -1,11 +0,0 @@ -using UnityEngine; -using System.Collections; - - -public enum GoTweenState -{ - Running, - Paused, - Complete, - Destroyed -} diff --git a/Assets/Plugins/GoKit/enums/GoTweenState.cs.meta b/Assets/Plugins/GoKit/enums/GoTweenState.cs.meta deleted file mode 100644 index 11e660c..0000000 --- a/Assets/Plugins/GoKit/enums/GoTweenState.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: de15fdc9763ed4873b7021c616d7952d -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/enums/GoUpdateType.cs b/Assets/Plugins/GoKit/enums/GoUpdateType.cs deleted file mode 100644 index ffb1100..0000000 --- a/Assets/Plugins/GoKit/enums/GoUpdateType.cs +++ /dev/null @@ -1,11 +0,0 @@ -using UnityEngine; -using System.Collections; - - -public enum GoUpdateType -{ - Update, - LateUpdate, - FixedUpdate, - TimeScaleIndependentUpdate -} diff --git a/Assets/Plugins/GoKit/enums/GoUpdateType.cs.meta b/Assets/Plugins/GoKit/enums/GoUpdateType.cs.meta deleted file mode 100644 index 2a94338..0000000 --- a/Assets/Plugins/GoKit/enums/GoUpdateType.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 634c22f604be24212ae1f75ddec523f9 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/extensions.meta b/Assets/Plugins/GoKit/extensions.meta deleted file mode 100644 index b6157a6..0000000 --- a/Assets/Plugins/GoKit/extensions.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: cb14c988d1865428599a6a5bc46a79e5 -folderAsset: yes -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/extensions/GoKitTweenExtensions.cs b/Assets/Plugins/GoKit/extensions/GoKitTweenExtensions.cs deleted file mode 100644 index b384fd7..0000000 --- a/Assets/Plugins/GoKit/extensions/GoKitTweenExtensions.cs +++ /dev/null @@ -1,124 +0,0 @@ -using UnityEngine; -using System.Collections; - - -public static class GoKitTweenExtensions -{ - #region Transform extensions - - // to tweens - public static GoTween rotationTo( this Transform self, float duration, Vector3 endValue, bool isRelative = false ) - { - return Go.to( self, duration, new GoTweenConfig().rotation( endValue, isRelative ) ); - } - - - public static GoTween localRotationTo( this Transform self, float duration, Vector3 endValue, bool isRelative = false ) - { - return Go.to( self, duration, new GoTweenConfig().localRotation( endValue, isRelative ) ); - } - - - public static GoTween eulerAnglesTo( this Transform self, float duration, Vector3 endValue, bool isRelative = false ) - { - return Go.to( self, duration, new GoTweenConfig().eulerAngles( endValue, isRelative ) ); - } - - - public static GoTween localEulerAnglesTo( this Transform self, float duration, Vector3 endValue, bool isRelative = false ) - { - return Go.to( self, duration, new GoTweenConfig().localEulerAngles( endValue, isRelative ) ); - } - - - public static GoTween positionTo( this Transform self, float duration, Vector3 endValue, bool isRelative = false ) - { - return Go.to( self, duration, new GoTweenConfig().position( endValue, isRelative ) ); - } - - - public static GoTween localPositionTo( this Transform self, float duration, Vector3 endValue, bool isRelative = false ) - { - return Go.to( self, duration, new GoTweenConfig().localPosition( endValue, isRelative ) ); - } - - - public static GoTween scaleTo( this Transform self, float duration, float endValue, bool isRelative = false ) - { - return self.scaleTo( duration, new Vector3( endValue, endValue, endValue ), isRelative ); - } - - - public static GoTween scaleTo( this Transform self, float duration, Vector3 endValue, bool isRelative = false ) - { - return Go.to( self, duration, new GoTweenConfig().scale( endValue, isRelative ) ); - } - - - public static GoTween shake( this Transform self, float duration, Vector3 shakeMagnitude, GoShakeType shakeType = GoShakeType.Position, int frameMod = 1, bool useLocalProperties = false ) - { - return Go.to( self, duration, new GoTweenConfig().shake( shakeMagnitude, shakeType, frameMod, useLocalProperties ) ); - } - - - // from tweens - public static GoTween rotationFrom( this Transform self, float duration, Vector3 endValue, bool isRelative = false ) - { - return Go.from( self, duration, new GoTweenConfig().rotation( endValue, isRelative ) ); - } - - - public static GoTween localRotationFrom( this Transform self, float duration, Vector3 endValue, bool isRelative = false ) - { - return Go.from( self, duration, new GoTweenConfig().localRotation( endValue, isRelative ) ); - } - - - public static GoTween eulerAnglesFrom( this Transform self, float duration, Vector3 endValue, bool isRelative = false ) - { - return Go.from( self, duration, new GoTweenConfig().eulerAngles( endValue, isRelative ) ); - } - - - public static GoTween localEulerAnglesFrom( this Transform self, float duration, Vector3 endValue, bool isRelative = false ) - { - return Go.from( self, duration, new GoTweenConfig().localEulerAngles( endValue, isRelative ) ); - } - - - public static GoTween positionFrom( this Transform self, float duration, Vector3 endValue, bool isRelative = false ) - { - return Go.from( self, duration, new GoTweenConfig().position( endValue, isRelative ) ); - } - - - public static GoTween localPositionFrom( this Transform self, float duration, Vector3 endValue, bool isRelative = false ) - { - return Go.from( self, duration, new GoTweenConfig().localPosition( endValue, isRelative ) ); - } - - - public static GoTween scaleFrom( this Transform self, float duration, Vector3 endValue, bool isRelative = false ) - { - return Go.from( self, duration, new GoTweenConfig().scale( endValue, isRelative ) ); - } - - #endregion - - - #region Material extensions - - public static GoTween colorTo( this Material self, float duration, Color endValue, string colorName = "_Color" ) - { - return Go.to( self, duration, new GoTweenConfig().materialColor( endValue, colorName ) ); - } - - - public static GoTween colorFrom( this Material self, float duration, Color endValue, string colorName = "_Color" ) - { - return Go.from( self, duration, new GoTweenConfig().materialColor( endValue, colorName ) ); - } - - #endregion - -} diff --git a/Assets/Plugins/GoKit/extensions/GoKitTweenExtensions.cs.meta b/Assets/Plugins/GoKit/extensions/GoKitTweenExtensions.cs.meta deleted file mode 100644 index 41b2eea..0000000 --- a/Assets/Plugins/GoKit/extensions/GoKitTweenExtensions.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 21ffa6d37448541bead4c009180436bd -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties.meta b/Assets/Plugins/GoKit/properties.meta deleted file mode 100644 index c0e084d..0000000 --- a/Assets/Plugins/GoKit/properties.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 4204282772fc1408da934f8775d6da4f -folderAsset: yes -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/GoTweenUtils.cs b/Assets/Plugins/GoKit/properties/GoTweenUtils.cs deleted file mode 100644 index 47d6e98..0000000 --- a/Assets/Plugins/GoKit/properties/GoTweenUtils.cs +++ /dev/null @@ -1,236 +0,0 @@ -using UnityEngine; -using System; -using System.Collections; -using System.Reflection; - - -public static class GoTweenUtils -{ - /// - /// fetches the actual function for the given ease type - /// - public static Func easeFunctionForType( GoEaseType easeType ) - { - switch( easeType ) - { - case GoEaseType.Linear: - return GoEaseLinear.EaseNone; - - case GoEaseType.BackIn: - return GoEaseBack.EaseIn; - case GoEaseType.BackOut: - return GoEaseBack.EaseOut; - case GoEaseType.BackInOut: - return GoEaseBack.EaseInOut; - - case GoEaseType.BounceIn: - return GoEaseBounce.EaseIn; - case GoEaseType.BounceOut: - return GoEaseBounce.EaseOut; - case GoEaseType.BounceInOut: - return GoEaseBounce.EaseInOut; - - case GoEaseType.CircIn: - return GoEaseCircular.EaseIn; - case GoEaseType.CircOut: - return GoEaseCircular.EaseOut; - case GoEaseType.CircInOut: - return GoEaseCircular.EaseInOut; - - case GoEaseType.CubicIn: - return GoEaseCubic.EaseIn; - case GoEaseType.CubicOut: - return GoEaseCubic.EaseOut; - case GoEaseType.CubicInOut: - return GoEaseCubic.EaseInOut; - - case GoEaseType.ElasticIn: - return GoEaseElastic.EaseIn; - case GoEaseType.ElasticOut: - return GoEaseElastic.EaseOut; - case GoEaseType.ElasticInOut: - return GoEaseElastic.EaseInOut; - case GoEaseType.Punch: - return GoEaseElastic.Punch; - - case GoEaseType.ExpoIn: - return GoEaseExponential.EaseIn; - case GoEaseType.ExpoOut: - return GoEaseExponential.EaseOut; - case GoEaseType.ExpoInOut: - return GoEaseExponential.EaseInOut; - - case GoEaseType.QuadIn: - return GoEaseQuadratic.EaseIn; - case GoEaseType.QuadOut: - return GoEaseQuadratic.EaseOut; - case GoEaseType.QuadInOut: - return GoEaseQuadratic.EaseInOut; - - case GoEaseType.QuartIn: - return GoEaseQuartic.EaseIn; - case GoEaseType.QuartOut: - return GoEaseQuartic.EaseOut; - case GoEaseType.QuartInOut: - return GoEaseQuartic.EaseInOut; - - case GoEaseType.QuintIn: - return GoEaseQuintic.EaseIn; - case GoEaseType.QuintOut: - return GoEaseQuintic.EaseOut; - case GoEaseType.QuintInOut: - return GoEaseQuintic.EaseInOut; - - case GoEaseType.SineIn: - return GoEaseSinusoidal.EaseIn; - case GoEaseType.SineOut: - return GoEaseSinusoidal.EaseOut; - case GoEaseType.SineInOut: - return GoEaseSinusoidal.EaseInOut; - } - - return GoEaseLinear.EaseNone; - } - - - /// - /// either returns a super fast Delegate to set the given property or null if it couldn't be found - /// via reflection - /// - public static T setterForProperty( System.Object targetObject, string propertyName ) - { - // first get the property -#if NETFX_CORE - var propInfo = targetObject.GetType().GetRuntimeProperty( propertyName ); -#else - var propInfo = targetObject.GetType().GetProperty( propertyName ); -#endif - - if( propInfo == null ) - { - Debug.Log( "could not find property with name: " + propertyName ); - return default( T ); - } - -#if NETFX_CORE - // Windows Phone/Store new API - return (T)(object)propInfo.SetMethod.CreateDelegate( typeof( T ), targetObject ); -#else - return (T)(object)Delegate.CreateDelegate( typeof( T ), targetObject, propInfo.GetSetMethod() ); -#endif - } - - - /// - /// either returns a super fast Delegate to get the given property or null if it couldn't be found - /// via reflection - /// - public static T getterForProperty( System.Object targetObject, string propertyName ) - { - // first get the property -#if NETFX_CORE - var propInfo = targetObject.GetType().GetRuntimeProperty( propertyName ); -#else - var propInfo = targetObject.GetType().GetProperty( propertyName ); -#endif - - if( propInfo == null ) - { - Debug.Log( "could not find property with name: " + propertyName ); - return default( T ); - } - -#if NETFX_CORE - // Windows Phone/Store new API - return (T)(object)propInfo.GetMethod.CreateDelegate( typeof( T ), targetObject ); -#else - return (T)(object)Delegate.CreateDelegate( typeof( T ), targetObject, propInfo.GetGetMethod() ); -#endif - } - - - #region math functions - - /// - /// note for all lerps: normally a lerp would be something like the following: - /// val1 + ( val2 - val1 ) * t - /// or in more familiar terms: - /// start + ( end - start ) * t - /// - /// when lerping relatively, the formula simplifies to: - /// start + end * t - /// - /// for all the unclamped lerps in this class the diff value is precalculated and cached. that means these arent like normal - /// lerps where you pass in the start and end values. the "diff" paramter in each method should be either the cached - /// ( end - start ) for non-relative tweens or just end for relative tweens (that are not "from" tweens) - /// - - - /// - /// unclamped lerp from c1 to c2. diff should be c2 - c1 (or just c2 for relative lerps) - /// - public static Color unclampedColorLerp( Color c1, Color diff, float value ) - { - return new Color - ( - c1.r + diff.r * value, - c1.g + diff.g * value, - c1.b + diff.b * value, - c1.a + diff.a * value - ); - } - - - /// - /// unclamped lerp from v1 to v2. diff should be v2 - v1 (or just v2 for relative lerps) - /// - public static Vector2 unclampedVector2Lerp( Vector2 v1, Vector2 diff, float value ) - { - return new Vector2 - ( - v1.x + diff.x * value, - v1.y + diff.y * value - ); - } - - - /// - /// unclamped lerp from v1 to v2. diff should be v2 - v1 (or just v2 for relative lerps) - /// - public static Vector3 unclampedVector3Lerp( Vector3 v1, Vector3 diff, float value ) - { - return new Vector3 - ( - v1.x + diff.x * value, - v1.y + diff.y * value, - v1.z + diff.z * value - ); - - /* - return new Vector3 - ( - v1.x + ( v2.x - v1.x ) * value, - v1.y + ( v2.y - v1.y ) * value, - v1.z + ( v2.z - v1.z ) * value - ); - */ - } - - - /// - /// unclamped lerp from v1 to v2. diff should be v2 - v1 (or just v2 for relative lerps) - /// - public static Vector4 unclampedVector4Lerp( Vector4 v1, Vector4 diff, float value ) - { - return new Vector4 - ( - v1.x + diff.x * value, - v1.y + diff.y * value, - v1.z + diff.z * value, - v1.w + diff.w * value - ); - } - - #endregion - -} diff --git a/Assets/Plugins/GoKit/properties/GoTweenUtils.cs.meta b/Assets/Plugins/GoKit/properties/GoTweenUtils.cs.meta deleted file mode 100644 index 39a39a4..0000000 --- a/Assets/Plugins/GoKit/properties/GoTweenUtils.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: a79611b258ffd496990f232247eefc3a -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/abstracts.meta b/Assets/Plugins/GoKit/properties/abstracts.meta deleted file mode 100644 index 2598f8c..0000000 --- a/Assets/Plugins/GoKit/properties/abstracts.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: b015a50b4ac6b4515bd5116d6da7ff5d -folderAsset: yes -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/abstracts/AbstractColorTweenProperty.cs b/Assets/Plugins/GoKit/properties/abstracts/AbstractColorTweenProperty.cs deleted file mode 100644 index 8f0df3f..0000000 --- a/Assets/Plugins/GoKit/properties/abstracts/AbstractColorTweenProperty.cs +++ /dev/null @@ -1,54 +0,0 @@ -using UnityEngine; -using System.Collections; - - -/// -/// base class for any color tweens (MaterialColor and ColorTween) -/// -public abstract class AbstractColorTweenProperty : AbstractTweenProperty -{ - protected Material _target; - - protected Color _originalEndValue; - protected Color _startValue; - protected Color _endValue; - protected Color _diffValue; - - - public AbstractColorTweenProperty( Color endValue, bool isRelative ) : base( isRelative ) - { - _originalEndValue = endValue; - } - - - public override bool validateTarget( object target ) - { - return ( target is Material || target is GameObject || target is Transform || target is Renderer ); - } - - - public override void init( GoTween owner ) - { - // setup our target before initting - if( owner.target is Material ) - _target = (Material)owner.target; - else if( owner.target is GameObject ) - _target = ((GameObject)owner.target).GetComponent().material; - else if( owner.target is Transform ) - _target = ((Transform)owner.target).GetComponent().material; - else if( owner.target is Renderer ) - _target = ((Renderer)owner.target).material; - - base.init( owner ); - } - - - public override void prepareForUse() - { - if( _isRelative && !_ownerTween.isFrom ) - _diffValue = _endValue; - else - _diffValue = _endValue - _startValue; - } - -} diff --git a/Assets/Plugins/GoKit/properties/abstracts/AbstractColorTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/abstracts/AbstractColorTweenProperty.cs.meta deleted file mode 100644 index 2e46bfe..0000000 --- a/Assets/Plugins/GoKit/properties/abstracts/AbstractColorTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 06d1e7d9b36ea4b9fb70c40298d959ec -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/abstracts/AbstractQuaternionTweenProperty.cs b/Assets/Plugins/GoKit/properties/abstracts/AbstractQuaternionTweenProperty.cs deleted file mode 100644 index 0b5639a..0000000 --- a/Assets/Plugins/GoKit/properties/abstracts/AbstractQuaternionTweenProperty.cs +++ /dev/null @@ -1,38 +0,0 @@ -using UnityEngine; -using System.Collections; - - -/// -/// base class for generic Quaternion props -/// -public abstract class AbstractQuaternionTweenProperty : AbstractTweenProperty -{ - protected Transform _target; - - protected Quaternion _originalEndValue; - protected Quaternion _startValue; - protected Quaternion _endValue; - - public AbstractQuaternionTweenProperty() - {} - - - public AbstractQuaternionTweenProperty( Quaternion endValue, bool isRelative = false ) : base( isRelative ) - { - _originalEndValue = endValue; - } - - - public override bool validateTarget( object target ) - { - return target is Transform; - } - - - public override void prepareForUse() - { - if (_isRelative && !_ownerTween.isFrom) - _endValue = _startValue * _endValue; - } - -} diff --git a/Assets/Plugins/GoKit/properties/abstracts/AbstractQuaternionTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/abstracts/AbstractQuaternionTweenProperty.cs.meta deleted file mode 100644 index 7289680..0000000 --- a/Assets/Plugins/GoKit/properties/abstracts/AbstractQuaternionTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 91d9cba1487704697be079449afdefbb -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/abstracts/AbstractTweenProperty.cs b/Assets/Plugins/GoKit/properties/abstracts/AbstractTweenProperty.cs deleted file mode 100644 index ce1f3fe..0000000 --- a/Assets/Plugins/GoKit/properties/abstracts/AbstractTweenProperty.cs +++ /dev/null @@ -1,112 +0,0 @@ -using UnityEngine; -using System; -using System.Collections; - - -public abstract class AbstractTweenProperty -{ - protected bool _isInitialized; - public bool isInitialized { get { return _isInitialized; } } - - protected bool _isRelative; - protected GoTween _ownerTween; - - protected Func _easeFunction; - - - - public AbstractTweenProperty( bool isRelative = false ) - { - _isRelative = isRelative; - } - - - public override int GetHashCode() - { - return base.GetHashCode(); - } - - - /// - /// checks to see if a TweenProperty matches another. checks propertyNames of IGenericPropertys first then - /// resorts to direct type checking - /// - public override bool Equals( object obj ) - { - // null check first - if( obj == null ) - return false; - - // handle IGenericProperty comparisons which just have the property name checked - if( this is IGenericProperty && obj is IGenericProperty ) - return ((IGenericProperty)this).propertyName == ((IGenericProperty)obj).propertyName; - - // check for the same types - if( obj.GetType() == this.GetType() ) - return true; - - return base.Equals( obj ); - } - - - /// - /// called by a Tween just after this property is validated and added to the Tweens property list - /// - public virtual void init( GoTween owner ) - { - _isInitialized = true; - _ownerTween = owner; - - // if we dont have an easeFunction use the owners type - if( _easeFunction == null ) - setEaseType( owner.easeType ); - } - - - /// - /// clones the instance - /// - public AbstractTweenProperty clone() - { - var clone = MemberwiseClone() as AbstractTweenProperty; - clone._ownerTween = null; - clone._isInitialized = false; - clone._easeFunction = null; - - return clone; - } - - - /// - /// sets the ease type for this tween property - /// technically, this should be an internal method - /// - public void setEaseType( GoEaseType easeType ) - { - _easeFunction = GoTweenUtils.easeFunctionForType( easeType ); - } - - - /// - /// each TweenProperty should override this to ensure the object is the correct type - /// - public virtual bool validateTarget( object target ) - { - return true; - } - - - /// - /// subclasses should get the eased time then set the new value on the object - /// - public abstract void tick( float totalElapsedTime ); - - - /// - /// called when a Tween is initially started. - /// subclasses should strongly type the start/end/target and handle isFrom with - /// regard to setting the proper start/end values - /// - public abstract void prepareForUse(); - -} diff --git a/Assets/Plugins/GoKit/properties/abstracts/AbstractTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/abstracts/AbstractTweenProperty.cs.meta deleted file mode 100644 index 95a3cf0..0000000 --- a/Assets/Plugins/GoKit/properties/abstracts/AbstractTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: cf8a9f19ff8c84f3d9b75558baec7117 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/abstracts/AbstractVector3TweenProperty.cs b/Assets/Plugins/GoKit/properties/abstracts/AbstractVector3TweenProperty.cs deleted file mode 100644 index 9910255..0000000 --- a/Assets/Plugins/GoKit/properties/abstracts/AbstractVector3TweenProperty.cs +++ /dev/null @@ -1,49 +0,0 @@ -using UnityEngine; -using System.Collections; - - -/// -/// base class for position, scale, eulers and the generic Vector3 props -/// -public abstract class AbstractVector3TweenProperty : AbstractTweenProperty -{ - protected Transform _target; - - protected Vector3 _originalEndValue; - protected Vector3 _startValue; - protected Vector3 _endValue; - protected Vector3 _diffValue; - - - public AbstractVector3TweenProperty() - {} - - - public AbstractVector3TweenProperty( Vector3 endValue, bool isRelative = false ) : base( isRelative ) - { - _originalEndValue = endValue; - } - - - public override bool validateTarget( object target ) - { - return target is Transform; - } - - - public override void prepareForUse() - { - if( _isRelative && !_ownerTween.isFrom ) - _diffValue = _endValue; - else - _diffValue = _endValue - _startValue; - } - - - public void resetWithNewEndValue( Vector3 endValue ) - { - _originalEndValue = endValue; - prepareForUse(); - } - -} diff --git a/Assets/Plugins/GoKit/properties/abstracts/AbstractVector3TweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/abstracts/AbstractVector3TweenProperty.cs.meta deleted file mode 100644 index d417a71..0000000 --- a/Assets/Plugins/GoKit/properties/abstracts/AbstractVector3TweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 7f73ba6304fca4593ac3756c9c01864e -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/genericTypes.meta b/Assets/Plugins/GoKit/properties/genericTypes.meta deleted file mode 100644 index f49903d..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 568b4e56e499a47b6b1edebd41563940 -folderAsset: yes -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/genericTypes/ColorTweenProperty.cs b/Assets/Plugins/GoKit/properties/genericTypes/ColorTweenProperty.cs deleted file mode 100644 index 2190267..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/ColorTweenProperty.cs +++ /dev/null @@ -1,59 +0,0 @@ -using UnityEngine; -using System; -using System.Collections; - - -public class ColorTweenProperty : AbstractColorTweenProperty, IGenericProperty -{ - public string propertyName { get; private set; } - private Action _setter; - - - public ColorTweenProperty( string propertyName, Color endValue, bool isRelative = false ) : base( endValue, isRelative ) - { - this.propertyName = propertyName; - } - - - /// - /// validation checks to make sure the target has a valid property with an accessible setter - /// - public override bool validateTarget( object target ) - { - // cache the setter - _setter = GoTweenUtils.setterForProperty>( target, propertyName ); - return _setter != null; - } - - - public override void prepareForUse() - { - // retrieve the getter - var getter = GoTweenUtils.getterForProperty>( _ownerTween.target, propertyName ); - - _endValue = _originalEndValue; - - // if this is a from tween we need to swap the start and end values - if( _ownerTween.isFrom ) - { - _startValue = _endValue; - _endValue = getter(); - } - else - { - _startValue = getter(); - } - - base.prepareForUse(); - } - - - public override void tick( float totalElapsedTime ) - { - var easedTime = _easeFunction( totalElapsedTime, 0, 1, _ownerTween.duration ); - var newColor = GoTweenUtils.unclampedColorLerp( _startValue, _diffValue, easedTime ); - - _setter( newColor ); - } - -} diff --git a/Assets/Plugins/GoKit/properties/genericTypes/ColorTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/genericTypes/ColorTweenProperty.cs.meta deleted file mode 100644 index 1d86f45..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/ColorTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 8feba848df2ec4a0cb2b5c4b11d09fde -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/genericTypes/FloatTweenProperty.cs b/Assets/Plugins/GoKit/properties/genericTypes/FloatTweenProperty.cs deleted file mode 100644 index aff23cd..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/FloatTweenProperty.cs +++ /dev/null @@ -1,66 +0,0 @@ -using UnityEngine; -using System; -using System.Collections; - - -public class FloatTweenProperty : AbstractTweenProperty, IGenericProperty -{ - public string propertyName { get; private set; } - private Action _setter; - - protected float _originalEndValue; - protected float _startValue; - protected float _endValue; - protected float _diffValue; - - - public FloatTweenProperty( string propertyName, float endValue, bool isRelative = false ) : base( isRelative ) - { - this.propertyName = propertyName; - _originalEndValue = endValue; - } - - - /// - /// validation checks to make sure the target has a valid property with an accessible setter - /// - public override bool validateTarget( object target ) - { - // cache the setter - _setter = GoTweenUtils.setterForProperty>( target, propertyName ); - return _setter != null; - } - - - public override void prepareForUse() - { - // retrieve the getter - var getter = GoTweenUtils.getterForProperty>( _ownerTween.target, propertyName ); - - _endValue = _originalEndValue; - - // if this is a from tween we need to swap the start and end values - if( _ownerTween.isFrom ) - { - _startValue = _endValue; - _endValue = getter(); - } - else - { - _startValue = getter(); - } - - // setup the diff value - if( _isRelative && !_ownerTween.isFrom ) - _diffValue = _endValue; - else - _diffValue = _endValue - _startValue; - } - - - public override void tick( float totalElapsedTime ) - { - var easedValue = _easeFunction( totalElapsedTime, _startValue, _diffValue, _ownerTween.duration ); - _setter( easedValue ); - } -} diff --git a/Assets/Plugins/GoKit/properties/genericTypes/FloatTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/genericTypes/FloatTweenProperty.cs.meta deleted file mode 100644 index ad48241..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/FloatTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 69fddc80fa08840df95aeb0cc5631b3b -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/genericTypes/IGenericProperty.cs b/Assets/Plugins/GoKit/properties/genericTypes/IGenericProperty.cs deleted file mode 100644 index 5877656..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/IGenericProperty.cs +++ /dev/null @@ -1,12 +0,0 @@ -using UnityEngine; -using System.Collections; - - -/// -/// interface that simply defines that a generic property tween must have a propertyName. this has the side effect -/// of letting us easily compare generic property tweens vs stongly typed tweens -/// -public interface IGenericProperty -{ - string propertyName { get; } -} diff --git a/Assets/Plugins/GoKit/properties/genericTypes/IGenericProperty.cs.meta b/Assets/Plugins/GoKit/properties/genericTypes/IGenericProperty.cs.meta deleted file mode 100644 index 53164c1..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/IGenericProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 21e55e5f9ed3e437ba9c943917440083 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/genericTypes/IntTweenProperty.cs b/Assets/Plugins/GoKit/properties/genericTypes/IntTweenProperty.cs deleted file mode 100644 index d5086d4..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/IntTweenProperty.cs +++ /dev/null @@ -1,68 +0,0 @@ -using UnityEngine; -using System; -using System.Collections; - - -public class IntTweenProperty : AbstractTweenProperty, IGenericProperty -{ - public string propertyName { get; private set; } - - private Action _setter; - - protected int _originalEndValue; - protected int _startValue; - protected int _endValue; - protected int _diffValue; - - - public IntTweenProperty( string propertyName, int endValue, bool isRelative = false ) : base( isRelative ) - { - this.propertyName = propertyName; - _originalEndValue = endValue; - } - - - /// - /// validation checks to make sure the target has a valid property with an accessible setter - /// - public override bool validateTarget( object target ) - { - // cache the setter - _setter = GoTweenUtils.setterForProperty>( target, propertyName ); - return _setter != null; - } - - - public override void prepareForUse() - { - // retrieve the getter - var getter = GoTweenUtils.getterForProperty>( _ownerTween.target, propertyName ); - - _endValue = _originalEndValue; - - // if this is a from tween we need to swap the start and end values - if( _ownerTween.isFrom ) - { - _startValue = _endValue; - _endValue = getter(); - } - else - { - _startValue = getter(); - } - - // prep the diff value - if( _isRelative && !_ownerTween.isFrom ) - _diffValue = _endValue; - else - _diffValue = _endValue - _startValue; - } - - - public override void tick( float totalElapsedTime ) - { - var easedValue = _easeFunction( totalElapsedTime, _startValue, _diffValue, _ownerTween.duration ); - _setter( (int)Math.Round( easedValue ) ); - } - -} diff --git a/Assets/Plugins/GoKit/properties/genericTypes/IntTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/genericTypes/IntTweenProperty.cs.meta deleted file mode 100644 index 116723f..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/IntTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 26ecf98b31f464c3eab865287ed4f9b2 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/genericTypes/Vector2TweenProperty.cs b/Assets/Plugins/GoKit/properties/genericTypes/Vector2TweenProperty.cs deleted file mode 100644 index 083449e..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/Vector2TweenProperty.cs +++ /dev/null @@ -1,69 +0,0 @@ -using UnityEngine; -using System; -using System.Collections; - - -public class Vector2TweenProperty : AbstractTweenProperty, IGenericProperty -{ - public string propertyName { get; private set; } - private Action _setter; - - protected Vector2 _originalEndValue; - protected Vector2 _startValue; - protected Vector2 _endValue; - protected Vector2 _diffValue; - - - public Vector2TweenProperty( string propertyName, Vector2 endValue, bool isRelative = false ) : base( isRelative ) - { - this.propertyName = propertyName; - _originalEndValue = endValue; - } - - - /// - /// validation checks to make sure the target has a valid property with an accessible setter - /// - public override bool validateTarget( object target ) - { - // cache the setter - _setter = GoTweenUtils.setterForProperty>( target, propertyName ); - return _setter != null; - } - - - public override void prepareForUse() - { - // retrieve the getter - var getter = GoTweenUtils.getterForProperty>( _ownerTween.target, propertyName ); - - _endValue = _originalEndValue; - - // if this is a from tween we need to swap the start and end values - if( _ownerTween.isFrom ) - { - _startValue = _endValue; - _endValue = getter(); - } - else - { - _startValue = getter(); - } - - // prep the diff value - if( _isRelative && !_ownerTween.isFrom ) - _diffValue = _endValue; - else - _diffValue = _endValue - _startValue; - } - - - public override void tick( float totalElapsedTime ) - { - var easedTime = _easeFunction( totalElapsedTime, 0, 1, _ownerTween.duration ); - var vec = GoTweenUtils.unclampedVector2Lerp( _startValue, _diffValue, easedTime ); - - _setter( vec ); - } - -} diff --git a/Assets/Plugins/GoKit/properties/genericTypes/Vector2TweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/genericTypes/Vector2TweenProperty.cs.meta deleted file mode 100644 index 4567e08..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/Vector2TweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 22a05f02b0d2d4c579d00c2db33555b1 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/genericTypes/Vector3PathTweenProperty.cs b/Assets/Plugins/GoKit/properties/genericTypes/Vector3PathTweenProperty.cs deleted file mode 100644 index 78d039b..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/Vector3PathTweenProperty.cs +++ /dev/null @@ -1,69 +0,0 @@ -using UnityEngine; -using System; -using System.Collections; - - -public class Vector3PathTweenProperty : AbstractTweenProperty, IGenericProperty -{ - public string propertyName { get; private set; } - - private Action _setter; - private GoSpline _path; - private Vector3 _startValue; - - - public Vector3PathTweenProperty( string propertyName, GoSpline path, bool isRelative = false ) : base( isRelative ) - { - this.propertyName = propertyName; - _path = path; - } - - - /// - /// validation checks to make sure the target has a valid property with an accessible setter - /// - public override bool validateTarget( object target ) - { - // cache the setter - _setter = GoTweenUtils.setterForProperty>( target, propertyName ); - return _setter != null; - } - - - public override void prepareForUse() - { - // if this is a from tween first reverse the path then build it. we unreverse in case we were copied - if( _ownerTween.isFrom ) - _path.reverseNodes(); - else - _path.unreverseNodes(); - - _path.buildPath(); - - // a from tween means the start value is the last node - if( _ownerTween.isFrom ) - { - _startValue = _path.getLastNode(); - } - else - { - // retrieve the getter only when needed - var getter = GoTweenUtils.getterForProperty>( _ownerTween.target, propertyName ); - _startValue = getter(); - } - } - - - public override void tick( float totalElapsedTime ) - { - var easedTime = _easeFunction( totalElapsedTime, 0, 1, _ownerTween.duration ); - var vec = _path.getPointOnPath( easedTime ); - - // if we are relative, add the vec to our startValue - if( _isRelative ) - vec += _startValue; - - _setter( vec ); - } - -} diff --git a/Assets/Plugins/GoKit/properties/genericTypes/Vector3PathTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/genericTypes/Vector3PathTweenProperty.cs.meta deleted file mode 100644 index 0cfe502..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/Vector3PathTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 0bf2fb33fe8d04ad2a177ab6038c1965 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/genericTypes/Vector3TweenProperty.cs b/Assets/Plugins/GoKit/properties/genericTypes/Vector3TweenProperty.cs deleted file mode 100644 index bd79c8b..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/Vector3TweenProperty.cs +++ /dev/null @@ -1,59 +0,0 @@ -using UnityEngine; -using System; -using System.Collections; - - -public class Vector3TweenProperty : AbstractVector3TweenProperty, IGenericProperty -{ - public string propertyName { get; private set; } - private Action _setter; - - - public Vector3TweenProperty( string propertyName, Vector3 endValue, bool isRelative = false ) : base( endValue, isRelative ) - { - this.propertyName = propertyName; - } - - - /// - /// validation checks to make sure the target has a valid property with an accessible setter - /// - public override bool validateTarget( object target ) - { - // cache the setter - _setter = GoTweenUtils.setterForProperty>( target, propertyName ); - return _setter != null; - } - - - public override void prepareForUse() - { - // retrieve the getter - var getter = GoTweenUtils.getterForProperty>( _ownerTween.target, propertyName ); - - _endValue = _originalEndValue; - - // if this is a from tween we need to swap the start and end values - if( _ownerTween.isFrom ) - { - _startValue = _endValue; - _endValue = getter(); - } - else - { - _startValue = getter(); - } - - base.prepareForUse(); - } - - - public override void tick( float totalElapsedTime ) - { - var easedTime = _easeFunction( totalElapsedTime, 0, 1, _ownerTween.duration ); - var vec = GoTweenUtils.unclampedVector3Lerp( _startValue, _diffValue, easedTime ); - - _setter( vec ); - } - -} diff --git a/Assets/Plugins/GoKit/properties/genericTypes/Vector3TweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/genericTypes/Vector3TweenProperty.cs.meta deleted file mode 100644 index 7c78747..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/Vector3TweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 0ccd327e369c14fac909ab0b6d1d0da5 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/genericTypes/Vector3XTweenProperty.cs b/Assets/Plugins/GoKit/properties/genericTypes/Vector3XTweenProperty.cs deleted file mode 100644 index 477bef6..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/Vector3XTweenProperty.cs +++ /dev/null @@ -1,71 +0,0 @@ -using UnityEngine; -using System; -using System.Collections; - - -public class Vector3XTweenProperty : AbstractVector3TweenProperty, IGenericProperty -{ - public string propertyName { get; private set; } - protected Action _setter; - protected Func _getter; - - protected new float _originalEndValue; - protected new float _startValue; - protected new float _endValue; - protected new float _diffValue; - - - public Vector3XTweenProperty( string propertyName, float endValue, bool isRelative = false ) - { - this.propertyName = propertyName; - _isRelative = isRelative; - _originalEndValue = endValue; - } - - - /// - /// validation checks to make sure the target has a valid property with an accessible setter - /// - public override bool validateTarget( object target ) - { - // cache the setter - _setter = GoTweenUtils.setterForProperty>( target, propertyName ); - return _setter != null; - } - - - public override void prepareForUse() - { - // retrieve the getter - _getter = GoTweenUtils.getterForProperty>( _ownerTween.target, propertyName ); - - _endValue = _originalEndValue; - - // if this is a from tween we need to swap the start and end values - if( _ownerTween.isFrom ) - { - _startValue = _endValue; - _endValue = _getter().x; - } - else - { - _startValue = _getter().x; - } - - // prep the diff value - if( _isRelative && !_ownerTween.isFrom ) - _diffValue = _endValue; - else - _diffValue = _endValue - _startValue; - } - - - public override void tick( float totalElapsedTime ) - { - var currentValue = _getter(); - currentValue.x = _easeFunction( totalElapsedTime, _startValue, _diffValue, _ownerTween.duration ); - - _setter( currentValue ); - } - -} diff --git a/Assets/Plugins/GoKit/properties/genericTypes/Vector3XTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/genericTypes/Vector3XTweenProperty.cs.meta deleted file mode 100644 index ba65cc2..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/Vector3XTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 1e4e4541e602d4fbcba6aa19d256cf94 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/genericTypes/Vector3YTweenProperty.cs b/Assets/Plugins/GoKit/properties/genericTypes/Vector3YTweenProperty.cs deleted file mode 100644 index 3096140..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/Vector3YTweenProperty.cs +++ /dev/null @@ -1,46 +0,0 @@ -using UnityEngine; -using System; -using System.Collections; - - -public class Vector3YTweenProperty : Vector3XTweenProperty -{ - public Vector3YTweenProperty( string propertyName, float endValue, bool isRelative = false ) : base( propertyName, endValue, isRelative ) - {} - - - public override void prepareForUse() - { - // retrieve the getter - _getter = GoTweenUtils.getterForProperty>( _ownerTween.target, propertyName ); - - _endValue = _originalEndValue; - - // if this is a from tween we need to swap the start and end values - if( _ownerTween.isFrom ) - { - _startValue = _endValue; - _endValue = _getter().y; - } - else - { - _startValue = _getter().y; - } - - // prep the diff value - if( _isRelative && !_ownerTween.isFrom ) - _diffValue = _endValue; - else - _diffValue = _endValue - _startValue; - } - - - public override void tick( float totalElapsedTime ) - { - var currentValue = _getter(); - currentValue.y = _easeFunction( totalElapsedTime, _startValue, _diffValue, _ownerTween.duration ); - - _setter( currentValue ); - } - -} diff --git a/Assets/Plugins/GoKit/properties/genericTypes/Vector3YTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/genericTypes/Vector3YTweenProperty.cs.meta deleted file mode 100644 index 372431d..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/Vector3YTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 576b35d4282a84f26b445f338480bd4d -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/genericTypes/Vector3ZTweenProperty.cs b/Assets/Plugins/GoKit/properties/genericTypes/Vector3ZTweenProperty.cs deleted file mode 100644 index 50eff0c..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/Vector3ZTweenProperty.cs +++ /dev/null @@ -1,46 +0,0 @@ -using UnityEngine; -using System; -using System.Collections; - - -public class Vector3ZTweenProperty : Vector3XTweenProperty -{ - public Vector3ZTweenProperty( string propertyName, float endValue, bool isRelative = false ) : base( propertyName, endValue, isRelative ) - {} - - - public override void prepareForUse() - { - // retrieve the getter - _getter = GoTweenUtils.getterForProperty>( _ownerTween.target, propertyName ); - - _endValue = _originalEndValue; - - // if this is a from tween we need to swap the start and end values - if( _ownerTween.isFrom ) - { - _startValue = _endValue; - _endValue = _getter().z; - } - else - { - _startValue = _getter().z; - } - - // prep the diff value - if( _isRelative && !_ownerTween.isFrom ) - _diffValue = _endValue; - else - _diffValue = _endValue - _startValue; - } - - - public override void tick( float totalElapsedTime ) - { - var currentValue = _getter(); - currentValue.z = _easeFunction( totalElapsedTime, _startValue, _diffValue, _ownerTween.duration ); - - _setter( currentValue ); - } - -} diff --git a/Assets/Plugins/GoKit/properties/genericTypes/Vector3ZTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/genericTypes/Vector3ZTweenProperty.cs.meta deleted file mode 100644 index af64432..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/Vector3ZTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 31797a4f425d143babbdfd3ab73f8189 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/genericTypes/Vector4TweenProperty.cs b/Assets/Plugins/GoKit/properties/genericTypes/Vector4TweenProperty.cs deleted file mode 100644 index bac5b0d..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/Vector4TweenProperty.cs +++ /dev/null @@ -1,69 +0,0 @@ -using UnityEngine; -using System; -using System.Collections; - - -public class Vector4TweenProperty : AbstractTweenProperty, IGenericProperty -{ - public string propertyName { get; private set; } - private Action _setter; - - protected Vector4 _originalEndValue; - protected Vector4 _startValue; - protected Vector4 _endValue; - protected Vector4 _diffValue; - - - public Vector4TweenProperty( string propertyName, Vector4 endValue, bool isRelative = false ) : base( isRelative ) - { - this.propertyName = propertyName; - _originalEndValue = endValue; - } - - - /// - /// validation checks to make sure the target has a valid property with an accessible setter - /// - public override bool validateTarget( object target ) - { - // cache the setter - _setter = GoTweenUtils.setterForProperty>( target, propertyName ); - return _setter != null; - } - - - public override void prepareForUse() - { - // retrieve the getter - var getter = GoTweenUtils.getterForProperty>( _ownerTween.target, propertyName ); - - _endValue = _originalEndValue; - - // if this is a from tween we need to swap the start and end values - if( _ownerTween.isFrom ) - { - _endValue = _startValue; - _endValue = getter(); - } - else - { - _startValue = getter(); - } - - // prep the diff value - if( _isRelative && !_ownerTween.isFrom ) - _diffValue = _endValue; - else - _diffValue = _endValue - _startValue; - } - - - public override void tick( float totalElapsedTime ) - { - var easedTime = _easeFunction( totalElapsedTime, 0, 1, _ownerTween.duration ); - var vec = GoTweenUtils.unclampedVector4Lerp( _startValue, _diffValue, easedTime ); - - _setter( vec ); - } - -} diff --git a/Assets/Plugins/GoKit/properties/genericTypes/Vector4TweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/genericTypes/Vector4TweenProperty.cs.meta deleted file mode 100644 index 63b96bf..0000000 --- a/Assets/Plugins/GoKit/properties/genericTypes/Vector4TweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: cb950a7d0cdd24204ac8d2be1336b0ea -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/smoothing.meta b/Assets/Plugins/GoKit/properties/smoothing.meta deleted file mode 100644 index 7b5eb26..0000000 --- a/Assets/Plugins/GoKit/properties/smoothing.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 8c076f7b25e9c4c27b52cc7847d14056 -folderAsset: yes -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/smoothing/GoSmoothedQuaternion.cs b/Assets/Plugins/GoKit/properties/smoothing/GoSmoothedQuaternion.cs deleted file mode 100644 index 18617ac..0000000 --- a/Assets/Plugins/GoKit/properties/smoothing/GoSmoothedQuaternion.cs +++ /dev/null @@ -1,123 +0,0 @@ -using UnityEngine; -using System.Collections; - - -/// -/// based on the idea by Mike Talbot here http://whydoidoit.com/2012/04/01/smoothed-vector3-quaternions-and-floats-in-unity/ -/// -/// lerps or slerps a Quaternion over time. usage is like so: -/// -/// mySmoothedQuat = target.rotation; // creates the GoSmoothedQuaternion -/// mySmoothedQuat.smoothValue = someNewQuaternion; // update the smoothValue whenever you would normally set the value on your object -/// target.rotation = mySmoothedQuat.smoothValue; // use the smoothValue property in an Update method to lerp/slerp it -/// -/// -public struct GoSmoothedQuaternion -{ - public GoSmoothingType smoothingType; - public float duration; - - private Quaternion _currentValue; - private Quaternion _target; - private Quaternion _start; - private float _startTime; - - - public GoSmoothedQuaternion( Quaternion quat ) - { - _currentValue = quat; - _start = quat; - _target = quat; - _startTime = Time.time; - - // set sensible defaults - duration = 0.2f; - smoothingType = GoSmoothingType.Lerp; - } - - - public Quaternion smoothValue - { - get - { - // how far along are we? - var t = ( Time.time - _startTime ) / duration; - - switch( smoothingType ) - { - case GoSmoothingType.Lerp: - _currentValue = Quaternion.Lerp( _start, _target, t ); - break; - case GoSmoothingType.Slerp: - _currentValue = Quaternion.Slerp( _start, _target, t ); - break; - } - - return _currentValue; - } - set - { - _start = smoothValue; - _startTime = Time.time; - _target = value; - } - } - - - public float x - { - get - { - return _currentValue.x; - } - set - { - smoothValue = new Quaternion( value, _target.y, _target.z, _target.w ); - } - } - - public float y - { - get - { - return _currentValue.y; - } - set - { - smoothValue = new Quaternion( _target.x, value, _target.y, _target.w ); - } - } - - public float z - { - get - { - return _currentValue.z; - } - set - { - smoothValue = new Quaternion( _target.x, _target.y, value, _target.w ); - } - - } - - public float w - { - get - { - return _currentValue.w; - } - set - { - - smoothValue = new Quaternion( _target.x, _target.y, _target.z, value ); - } - } - - - public static implicit operator GoSmoothedQuaternion( Quaternion q ) - { - return new GoSmoothedQuaternion( q ); - } - -} diff --git a/Assets/Plugins/GoKit/properties/smoothing/GoSmoothedQuaternion.cs.meta b/Assets/Plugins/GoKit/properties/smoothing/GoSmoothedQuaternion.cs.meta deleted file mode 100644 index 0ed34e8..0000000 --- a/Assets/Plugins/GoKit/properties/smoothing/GoSmoothedQuaternion.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 806c433a2491044ec8c3f50375392041 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/smoothing/GoSmoothedVector3.cs b/Assets/Plugins/GoKit/properties/smoothing/GoSmoothedVector3.cs deleted file mode 100644 index 32bfc79..0000000 --- a/Assets/Plugins/GoKit/properties/smoothing/GoSmoothedVector3.cs +++ /dev/null @@ -1,101 +0,0 @@ -using UnityEngine; -using System.Collections; - - - -public struct GoSmoothedVector3 -{ - public GoSmoothingType smoothingType; - public float duration; - - private Vector3 _currentValue; - private Vector3 _target; - private Vector3 _start; - private float _startTime; - - - public GoSmoothedVector3( Vector3 vector ) - { - _currentValue = vector; - _start = vector; - _target = vector; - _startTime = Time.time; - - // set sensible defaults - duration = 0.2f; - smoothingType = GoSmoothingType.Lerp; - } - - - public Vector3 smoothValue - { - get - { - // how far along are we? - var t = ( Time.time - _startTime ) / duration; - - switch( smoothingType ) - { - case GoSmoothingType.Lerp: - _currentValue = Vector3.Lerp( _start, _target, t ); - break; - case GoSmoothingType.Slerp: - _currentValue = Vector3.Slerp( _start, _target, t ); - break; - } - - return _currentValue; - } - private set - { - _start = smoothValue; - _startTime = Time.time; - _target = value; - } - } - - - public float x - { - get - { - return _currentValue.x; - } - set - { - smoothValue = new Vector3( value, _target.y, _target.z ); - } - } - - public float y - { - get - { - return _currentValue.y; - } - set - { - smoothValue = new Vector3( _target.x, value, _target.y ); - } - } - - public float z - { - get - { - return _currentValue.z; - } - set - { - smoothValue = new Vector3( _target.x, _target.y, value ); - } - - } - - - public static implicit operator GoSmoothedVector3( Vector3 v ) - { - return new GoSmoothedVector3( v ); - } - -} diff --git a/Assets/Plugins/GoKit/properties/smoothing/GoSmoothedVector3.cs.meta b/Assets/Plugins/GoKit/properties/smoothing/GoSmoothedVector3.cs.meta deleted file mode 100644 index afb1d7f..0000000 --- a/Assets/Plugins/GoKit/properties/smoothing/GoSmoothedVector3.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: b796c056272a04cfea12f664f35c98e5 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/smoothing/GoSmoothingType.cs b/Assets/Plugins/GoKit/properties/smoothing/GoSmoothingType.cs deleted file mode 100644 index 6e7a779..0000000 --- a/Assets/Plugins/GoKit/properties/smoothing/GoSmoothingType.cs +++ /dev/null @@ -1,9 +0,0 @@ -using UnityEngine; -using System.Collections; - - -public enum GoSmoothingType -{ - Lerp, - Slerp -} diff --git a/Assets/Plugins/GoKit/properties/smoothing/GoSmoothingType.cs.meta b/Assets/Plugins/GoKit/properties/smoothing/GoSmoothingType.cs.meta deleted file mode 100644 index be9ed3a..0000000 --- a/Assets/Plugins/GoKit/properties/smoothing/GoSmoothingType.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: b85c904ec09ed418abbdc697bdd916fc -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/specificTypes.meta b/Assets/Plugins/GoKit/properties/specificTypes.meta deleted file mode 100644 index cb7f3a7..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 5ad9b033696fb463ea98ab0fb95a3deb -folderAsset: yes -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/specificTypes/EulerAnglesTweenProperty.cs b/Assets/Plugins/GoKit/properties/specificTypes/EulerAnglesTweenProperty.cs deleted file mode 100644 index 966f7d8..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/EulerAnglesTweenProperty.cs +++ /dev/null @@ -1,80 +0,0 @@ -using UnityEngine; -using System.Collections; - - -public class EulerAnglesTweenProperty : AbstractVector3TweenProperty -{ - private bool _useLocalEulers; - public bool useLocalEulers { get { return _useLocalEulers; } } - - public EulerAnglesTweenProperty( Vector3 endValue, bool isRelative = false, bool useLocalEulers = false ) : base( endValue, isRelative ) - { - _useLocalEulers = useLocalEulers; - } - - - #region Object overrides - - public override int GetHashCode() - { - return base.GetHashCode(); - } - - - public override bool Equals( object obj ) - { - // start with a base check and then compare if we are both using local values - if( base.Equals( obj ) ) - return this._useLocalEulers == ((EulerAnglesTweenProperty)obj)._useLocalEulers; - - // if we get here, we need to see if the other object is a rotation tween of the same kind - var otherAsRotation = obj as RotationTweenProperty; - if( otherAsRotation != null ) - return this._useLocalEulers == otherAsRotation.useLocalRotation; - - return false; - } - - #endregion - - - public override void prepareForUse() - { - _target = _ownerTween.target as Transform; - - _endValue = _originalEndValue; - - // swap the start and end if this is a from tween - if( _ownerTween.isFrom ) - { - _startValue = _endValue; - - if( _useLocalEulers ) - _endValue = _target.localEulerAngles; - else - _endValue = _target.eulerAngles; - } - else - { - if( _useLocalEulers ) - _startValue = _target.localEulerAngles; - else - _startValue = _target.eulerAngles; - } - - base.prepareForUse(); - } - - - public override void tick( float totalElapsedTime ) - { - var easedTime = _easeFunction( totalElapsedTime, 0, 1, _ownerTween.duration ); - var vec = GoTweenUtils.unclampedVector3Lerp( _startValue, _diffValue, easedTime ); - - if( _useLocalEulers ) - _target.localEulerAngles = vec; - else - _target.eulerAngles = vec; - } - -} diff --git a/Assets/Plugins/GoKit/properties/specificTypes/EulerAnglesTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/specificTypes/EulerAnglesTweenProperty.cs.meta deleted file mode 100644 index fe0c343..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/EulerAnglesTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 5bbfcb772b13641e1afec2d91d2940f7 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/specificTypes/MaterialColorTweenProperty.cs b/Assets/Plugins/GoKit/properties/specificTypes/MaterialColorTweenProperty.cs deleted file mode 100644 index d9f3427..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/MaterialColorTweenProperty.cs +++ /dev/null @@ -1,63 +0,0 @@ -using UnityEngine; -using System.Collections; - - -public class MaterialColorTweenProperty : AbstractColorTweenProperty -{ - private string _materialColorName; - - - public MaterialColorTweenProperty( Color endValue, string colorName = "_Color", bool isRelative = false ) : base( endValue, isRelative ) - { - _materialColorName = colorName; - } - - - #region Object overrides - - public override int GetHashCode() - { - return base.GetHashCode(); - } - - - public override bool Equals( object obj ) - { - // start with a base check and then compare our material names - if( base.Equals( obj ) ) - return this._materialColorName == ((MaterialColorTweenProperty)obj)._materialColorName; - - return false; - } - - #endregion - - - public override void prepareForUse() - { - _endValue = _originalEndValue; - - // if this is a from tween we need to swap the start and end values - if( _ownerTween.isFrom ) - { - _startValue = _endValue; - _endValue = _target.GetColor( _materialColorName ); - } - else - { - _startValue = _target.GetColor( _materialColorName ); - } - - base.prepareForUse(); - } - - - public override void tick( float totalElapsedTime ) - { - var easedTime = _easeFunction( totalElapsedTime, 0, 1, _ownerTween.duration ); - var color = GoTweenUtils.unclampedColorLerp( _startValue, _diffValue, easedTime ); - - _target.SetColor( _materialColorName, color ); - } - -} diff --git a/Assets/Plugins/GoKit/properties/specificTypes/MaterialColorTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/specificTypes/MaterialColorTweenProperty.cs.meta deleted file mode 100644 index 8e92a82..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/MaterialColorTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 74b57762d8d034ccc9b9f37bb8c70019 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/specificTypes/PositionPathTweenProperty.cs b/Assets/Plugins/GoKit/properties/specificTypes/PositionPathTweenProperty.cs deleted file mode 100644 index fd4f425..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/PositionPathTweenProperty.cs +++ /dev/null @@ -1,131 +0,0 @@ -using UnityEngine; -using System.Collections; - - -/// -/// tweens position along a path at constant speed between nodes. isRelative makes the path movement -/// relative to the start position of the object. a "from" tween will reverse the path and make the start -/// position be the last node in the path. -/// -public class PositionPathTweenProperty : AbstractTweenProperty -{ - protected bool _useLocalPosition; - public bool useLocalPosition { get { return _useLocalPosition; } } - - protected Transform _target; - protected Vector3 _startValue; - - private GoSpline _path; - private GoLookAtType _lookAtType = GoLookAtType.None; - private Transform _lookTarget; - private GoSmoothedQuaternion _smoothedRotation; - - - public PositionPathTweenProperty( GoSpline path, bool isRelative = false, bool useLocalPosition = false, GoLookAtType lookAtType = GoLookAtType.None, Transform lookTarget = null ) : base( isRelative ) - { - _path = path; - _useLocalPosition = useLocalPosition; - _lookAtType = lookAtType; - _lookTarget = lookTarget; - } - - - #region Object overrides - - public override int GetHashCode() - { - return base.GetHashCode(); - } - - - public override bool Equals( object obj ) - { - // start with a base check and then compare if we are both using local values - if( base.Equals( obj ) ) - return this._useLocalPosition == ((PositionPathTweenProperty)obj)._useLocalPosition; - - // if we get here, we need to see if the other object is a position tween of the same kind - var otherAsPosition = obj as PositionTweenProperty; - if( otherAsPosition != null ) - return this._useLocalPosition == otherAsPosition.useLocalPosition; - - return false; - } - - #endregion - - - public override void prepareForUse() - { - _target = _ownerTween.target as Transform; - - // if this is a from tween first reverse the path then build it - if( _ownerTween.isFrom ) - _path.reverseNodes(); - else - _path.unreverseNodes(); - - _path.buildPath(); - - // a from tween means the start value is the last node - if( _ownerTween.isFrom ) - { - _startValue = _path.getLastNode(); - } - else - { - if( _useLocalPosition ) - _startValue = _target.localPosition; - else - _startValue = _target.position; - } - - // validate the lookTarget if we are set to look at it - if( _lookAtType == GoLookAtType.TargetTransform ) - { - if( _lookTarget == null ) - _lookAtType = GoLookAtType.None; - } - - // prep our smoothed rotation - _smoothedRotation = _target.rotation; - } - - - public override void tick( float totalElapsedTime ) - { - var easedTime = _easeFunction( totalElapsedTime, 0, 1, _ownerTween.duration ); - var vec = _path.getPointOnPath( easedTime ); - - // if we are relative, add the vec to our startValue - if( _isRelative ) - vec += _startValue; - - - // handle look types - switch( _lookAtType ) - { - case GoLookAtType.NextPathNode: - { - _smoothedRotation.smoothValue = vec.Equals( _target.position ) ? Quaternion.identity : Quaternion.LookRotation( vec - _target.position ); - _target.rotation = _smoothedRotation.smoothValue; - //var lookAtNode = ( _ownerTween.isReversed || _ownerTween.isLoopoingBackOnPingPong ) ? _path.getPreviousNode() : _path.getNextNode(); - //_target.LookAt( lookAtNode, Vector3.up ); - break; - } - case GoLookAtType.TargetTransform: - { - _target.LookAt( _lookTarget, Vector3.up ); - break; - } - } - - - // assign the position - if( _useLocalPosition ) - _target.localPosition = vec; - else - _target.position = vec; - } - -} diff --git a/Assets/Plugins/GoKit/properties/specificTypes/PositionPathTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/specificTypes/PositionPathTweenProperty.cs.meta deleted file mode 100644 index 5d3f300..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/PositionPathTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 3c9f58caa7cd847519c748a7132b4e9c -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/specificTypes/PositionTweenProperty.cs b/Assets/Plugins/GoKit/properties/specificTypes/PositionTweenProperty.cs deleted file mode 100644 index ae458f1..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/PositionTweenProperty.cs +++ /dev/null @@ -1,92 +0,0 @@ -using UnityEngine; -using System.Collections; - - -public class PositionTweenProperty : AbstractVector3TweenProperty -{ - protected bool _useLocalPosition; - public bool useLocalPosition { get { return _useLocalPosition; } } - - public PositionTweenProperty( Vector3 endValue, bool isRelative = false, bool useLocalPosition = false ) : base( endValue, isRelative ) - { - _useLocalPosition = useLocalPosition; - } - - - #region Object overrides - - public override int GetHashCode() - { - return base.GetHashCode(); - } - - - public override bool Equals( object obj ) - { - // start with a base check and then compare if we are both using local values - if( base.Equals( obj ) ) - return this._useLocalPosition == ((PositionTweenProperty)obj)._useLocalPosition; - - // if we get here, we need to see if the other object is a position path tween of the same kind - var otherAsPositionPath = obj as PositionPathTweenProperty; - if( otherAsPositionPath != null ) - return this._useLocalPosition == otherAsPositionPath.useLocalPosition; - - return false; - } - - #endregion - - - public override void prepareForUse() - { - _target = _ownerTween.target as Transform; - - _endValue = _originalEndValue; - - // if this is a from tween we need to swap the start and end values - if( _ownerTween.isFrom ) - { - if( _useLocalPosition ) - { - if (_isRelative) - _startValue = _target.localPosition + _endValue; - else - _startValue = _endValue; - - _endValue = _target.localPosition; - } - else - { - if (_isRelative) - _startValue = _target.position + _endValue; - else - _startValue = _endValue; - - _endValue = _target.position; - } - } - else - { - if( _useLocalPosition ) - _startValue = _target.localPosition; - else - _startValue = _target.position; - } - - base.prepareForUse(); - } - - - public override void tick( float totalElapsedTime ) - { - var easedTime = _easeFunction( totalElapsedTime, 0, 1, _ownerTween.duration ); - var vec = GoTweenUtils.unclampedVector3Lerp( _startValue, _diffValue, easedTime ); - - if( _useLocalPosition ) - _target.localPosition = vec; - else - _target.position = vec; - } - -} diff --git a/Assets/Plugins/GoKit/properties/specificTypes/PositionTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/specificTypes/PositionTweenProperty.cs.meta deleted file mode 100644 index f32b77c..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/PositionTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: f372333393a1a4501a09d64bc262d2e4 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/specificTypes/RotationQuaternionTweenProperty.cs b/Assets/Plugins/GoKit/properties/specificTypes/RotationQuaternionTweenProperty.cs deleted file mode 100644 index 606d3cb..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/RotationQuaternionTweenProperty.cs +++ /dev/null @@ -1,76 +0,0 @@ -using UnityEngine; -using System.Collections; - - -public class RotationQuaternionTweenProperty : AbstractQuaternionTweenProperty -{ - private bool _useLocalRotation; - public bool useLocalRotation { get { return _useLocalRotation; } } - - - public RotationQuaternionTweenProperty( Quaternion endValue, bool isRelative = false, bool useLocalRotation = false ) : base( endValue, isRelative ) - { - _useLocalRotation = useLocalRotation; - } - - - #region Object overrides - - public override int GetHashCode() - { - return base.GetHashCode(); - } - - - public override bool Equals( object obj ) - { - // start with a base check and then compare if we are both using local values - if( base.Equals( obj ) ) - return this._useLocalRotation == ((RotationQuaternionTweenProperty)obj)._useLocalRotation; - - return false; - } - - #endregion - - - public override void prepareForUse() - { - _target = _ownerTween.target as Transform; - - _endValue = _originalEndValue; - - // if this is a from tween we need to swap the start and end values - if( _ownerTween.isFrom ) - { - _startValue = _endValue; - - if( _useLocalRotation ) - _endValue = _target.localRotation; - else - _endValue = _target.rotation; - } - else - { - if( _useLocalRotation ) - _startValue = _target.localRotation; - else - _startValue = _target.rotation; - } - - base.prepareForUse(); - } - - - public override void tick( float totalElapsedTime ) - { - var easedTime = _easeFunction( totalElapsedTime, 0, 1, _ownerTween.duration ); - Quaternion newOrientation = Quaternion.Slerp (_startValue, _endValue, easedTime); - - if( _useLocalRotation ) - _target.localRotation = newOrientation; - else - _target.rotation = newOrientation; - } - -} diff --git a/Assets/Plugins/GoKit/properties/specificTypes/RotationQuaternionTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/specificTypes/RotationQuaternionTweenProperty.cs.meta deleted file mode 100644 index d4591d3..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/RotationQuaternionTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 5a476a934239a4681b4241f6cce8aa62 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/specificTypes/RotationTweenProperty.cs b/Assets/Plugins/GoKit/properties/specificTypes/RotationTweenProperty.cs deleted file mode 100644 index b858a0b..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/RotationTweenProperty.cs +++ /dev/null @@ -1,85 +0,0 @@ -using UnityEngine; -using System.Collections; - - -public class RotationTweenProperty : AbstractVector3TweenProperty -{ - private bool _useLocalRotation; - public bool useLocalRotation { get { return _useLocalRotation; } } - - - public RotationTweenProperty( Vector3 endValue, bool isRelative = false, bool useLocalRotation = false ) : base( endValue, isRelative ) - { - _useLocalRotation = useLocalRotation; - } - - - #region Object overrides - - public override int GetHashCode() - { - return base.GetHashCode(); - } - - - public override bool Equals( object obj ) - { - // start with a base check and then compare if we are both using local values - if( base.Equals( obj ) ) - return this._useLocalRotation == ((RotationTweenProperty)obj)._useLocalRotation; - - // if we get here, we need to see if the other object is a eulerAngles tween of the same kind - var otherAsEuler = obj as EulerAnglesTweenProperty; - if( otherAsEuler != null ) - return this._useLocalRotation == otherAsEuler.useLocalEulers; - - return false; - } - - #endregion - - - public override void prepareForUse() - { - _target = _ownerTween.target as Transform; - - _endValue = _originalEndValue; - - // if this is a from tween we need to swap the start and end values - if( _ownerTween.isFrom ) - { - _startValue = _endValue; - - if( _useLocalRotation ) - _endValue = _target.localRotation.eulerAngles; - else - _endValue = _target.rotation.eulerAngles; - } - else - { - if( _useLocalRotation ) - _startValue = _target.localRotation.eulerAngles; - else - _startValue = _target.rotation.eulerAngles; - } - - // handle rotation carefully: when not relative, we always want to go the shortest possible distance to the new angle - if( _isRelative && !_ownerTween.isFrom ) - _diffValue = _startValue + _endValue; - else - _diffValue = new Vector3( Mathf.DeltaAngle( _startValue.x, _endValue.x ), Mathf.DeltaAngle( _startValue.y, _endValue.y ), Mathf.DeltaAngle( _startValue.z, _endValue.z ) ); - } - - - public override void tick( float totalElapsedTime ) - { - var easedTime = _easeFunction( totalElapsedTime, 0, 1, _ownerTween.duration ); - var vec = GoTweenUtils.unclampedVector3Lerp( _startValue, _diffValue, easedTime ); - - if( _useLocalRotation ) - _target.localRotation = Quaternion.Euler( vec ); - else - _target.rotation = Quaternion.Euler( vec ); - } - -} diff --git a/Assets/Plugins/GoKit/properties/specificTypes/RotationTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/specificTypes/RotationTweenProperty.cs.meta deleted file mode 100644 index 6d14ff0..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/RotationTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: e783a8e5c400d4037be1e46fe3c33ee0 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/specificTypes/ScalePathTweenProperty.cs b/Assets/Plugins/GoKit/properties/specificTypes/ScalePathTweenProperty.cs deleted file mode 100644 index dbc3a58..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/ScalePathTweenProperty.cs +++ /dev/null @@ -1,77 +0,0 @@ -using UnityEngine; -using System.Collections; - - -/// -/// tweens scale along a path at constant speed between nodes. isRelative makes the path scale -/// relative to the start scale of the object. a "from" tween will reverse the path and make the start -/// scale be the last node in the path. -/// -public class ScalePathTweenProperty : AbstractTweenProperty -{ - protected Transform _target; - protected Vector3 _startValue; - - private GoSpline _path; - - - public ScalePathTweenProperty( GoSpline path, bool isRelative = false ) : base( isRelative ) - { - _path = path; - } - - - #region Object overrides - - public override int GetHashCode() - { - return base.GetHashCode(); - } - - - public override bool Equals( object obj ) - { - // if base already determined that we are equal no need to check further - if( base.Equals( obj ) ) - return true; - - // we can be equal if the other object is a ScaleTweenProperty - return obj.GetType() == typeof( ScaleTweenProperty ); - } - - #endregion - - - public override void prepareForUse() - { - _target = _ownerTween.target as Transform; - - // if this is a from tween first reverse the path then build it - if( _ownerTween.isFrom ) - _path.reverseNodes(); - else - _path.unreverseNodes(); - - _path.buildPath(); - - // a from tween means the start value is the last node - if( _ownerTween.isFrom ) - _startValue = _path.getLastNode(); - else - _startValue = _target.localScale; - } - - - public override void tick( float totalElapsedTime ) - { - var easedTime = _easeFunction( totalElapsedTime, 0, 1, _ownerTween.duration ); - var vec = _path.getPointOnPath( easedTime ); - - // if we are relative, add the vec to our startValue - if( _isRelative ) - vec += _startValue; - - _target.localScale = vec; - } - -} diff --git a/Assets/Plugins/GoKit/properties/specificTypes/ScalePathTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/specificTypes/ScalePathTweenProperty.cs.meta deleted file mode 100644 index a1a998b..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/ScalePathTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: ed2a9c26628f648cd812a55c3cc09572 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/specificTypes/ScaleTweenProperty.cs b/Assets/Plugins/GoKit/properties/specificTypes/ScaleTweenProperty.cs deleted file mode 100644 index ee6fe66..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/ScaleTweenProperty.cs +++ /dev/null @@ -1,59 +0,0 @@ -using UnityEngine; -using System.Collections; - - -public class ScaleTweenProperty : AbstractVector3TweenProperty -{ - public ScaleTweenProperty( Vector3 endValue, bool isRelative = false ) : base( endValue, isRelative ) - {} - - - #region Object overrides - - public override int GetHashCode() - { - return base.GetHashCode(); - } - - - public override bool Equals( object obj ) - { - // if base already determined that we are equal no need to check further - if( base.Equals( obj ) ) - return true; - - // we can be equal if the other object is a ScalePathTweenProperty - return obj.GetType() == typeof( ScalePathTweenProperty ); - } - - #endregion - - - public override void prepareForUse() - { - _target = _ownerTween.target as Transform; - - _endValue = _originalEndValue; - - // if this is a from tween we need to swap the start and end values - if( _ownerTween.isFrom ) - { - _startValue = _endValue; - _endValue = _target.localScale; - } - else - { - _startValue = _target.localScale; - } - - base.prepareForUse(); - } - - - public override void tick( float totalElapsedTime ) - { - var easedTime = _easeFunction( totalElapsedTime, 0, 1, _ownerTween.duration ); - _target.localScale = GoTweenUtils.unclampedVector3Lerp( _startValue, _diffValue, easedTime ); - } - -} diff --git a/Assets/Plugins/GoKit/properties/specificTypes/ScaleTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/specificTypes/ScaleTweenProperty.cs.meta deleted file mode 100644 index 887d9be..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/ScaleTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: af4196a114d624232b278034ec06ce24 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/specificTypes/ShakeTweenProperty.cs b/Assets/Plugins/GoKit/properties/specificTypes/ShakeTweenProperty.cs deleted file mode 100644 index ed25968..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/ShakeTweenProperty.cs +++ /dev/null @@ -1,135 +0,0 @@ -using UnityEngine; -using System.Collections; - - -public class ShakeTweenProperty : AbstractTweenProperty -{ - private Transform _target; - private Vector3 _shakeMagnitude; - - private Vector3 _originalEndValue; - private Vector3 _startPosition; - private Vector3 _startScale; - private Vector3 _startEulers; - - private GoShakeType _shakeType; - private int _frameCount; - private int _frameMod; - private bool _useLocalProperties; - public bool useLocalProperties { get { return _useLocalProperties; } } - - - /// - /// you can shake any combination of position, scale and eulers by passing in a bitmask of the types you want to shake. frameMod - /// allows you to specify what frame count the shakes should occur on. for example, a frameMod of 3 would mean that only when - /// frameCount % 3 == 0 will the shake occur - /// - public ShakeTweenProperty( Vector3 shakeMagnitude, GoShakeType shakeType, int frameMod = 1, bool useLocalProperties = false ) : base( true ) - { - _shakeMagnitude = shakeMagnitude; - _shakeType = shakeType; - _frameMod = frameMod; - _useLocalProperties = useLocalProperties; - } - - - #region Object overrides - - public override int GetHashCode() - { - return base.GetHashCode(); - } - - - public override bool Equals( object obj ) - { - // start with a base check and then compare our material names - if( base.Equals( obj ) ) - return this._shakeType == ((ShakeTweenProperty)obj)._shakeType; - - return false; - } - - #endregion - - - public override bool validateTarget( object target ) - { - return target is Transform; - } - - - public override void prepareForUse() - { - _target = _ownerTween.target as Transform; - _frameCount = 0; - - // store off any properties we will be shaking - if( ( _shakeType & GoShakeType.Position ) != 0 ) - { - if( _useLocalProperties ) - _startPosition = _target.localPosition; - else - _startPosition = _target.position; - } - - if( ( _shakeType & GoShakeType.Eulers ) != 0 ) - { - if( _useLocalProperties ) - _startEulers = _target.eulerAngles; - else - _startEulers = _target.eulerAngles; - } - - if( ( _shakeType & GoShakeType.Scale ) != 0 ) - _startScale = _target.localScale; - } - - - private Vector3 randomDiminishingTarget( float falloffValue ) - { - return new Vector3 - ( - Random.Range( -_shakeMagnitude.x, _shakeMagnitude.x ) * falloffValue, - Random.Range( -_shakeMagnitude.y, _shakeMagnitude.y ) * falloffValue, - Random.Range( -_shakeMagnitude.z, _shakeMagnitude.z ) * falloffValue - ); - } - - - public override void tick( float totalElapsedTime ) - { - // should we skip any frames? - if( _frameMod > 1 && ++_frameCount % _frameMod != 0 ) - return; - - // we want 1 minus the eased time so that we go from 1 - 0 for a shake - var easedTime = 1 - _easeFunction( totalElapsedTime, 0, 1, _ownerTween.duration ); - - - // shake any properties required - if( ( _shakeType & GoShakeType.Position ) != 0 ) - { - var val = _startPosition + randomDiminishingTarget( easedTime ); - if( _useLocalProperties ) - _target.localPosition = val; - else - _target.position = val; - } - - if( ( _shakeType & GoShakeType.Eulers ) != 0 ) - { - var val = _startEulers + randomDiminishingTarget( easedTime ); - if( _useLocalProperties ) - _target.localEulerAngles = val; - else - _target.eulerAngles = val; - } - - if( ( _shakeType & GoShakeType.Scale ) != 0 ) - { - _target.localScale = _startScale + randomDiminishingTarget( easedTime ); - } - } - -} diff --git a/Assets/Plugins/GoKit/properties/specificTypes/ShakeTweenProperty.cs.meta b/Assets/Plugins/GoKit/properties/specificTypes/ShakeTweenProperty.cs.meta deleted file mode 100644 index c3c4f29..0000000 --- a/Assets/Plugins/GoKit/properties/specificTypes/ShakeTweenProperty.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 6cf366ef096364042b041e422af86bbc -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/splines.meta b/Assets/Plugins/GoKit/properties/splines.meta deleted file mode 100644 index 4840245..0000000 --- a/Assets/Plugins/GoKit/properties/splines.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 82ff7a332193a46a0aed718a4d6af4ba -folderAsset: yes -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/splines/AbstractGoSplineSolver.cs b/Assets/Plugins/GoKit/properties/splines/AbstractGoSplineSolver.cs deleted file mode 100644 index 055e0eb..0000000 --- a/Assets/Plugins/GoKit/properties/splines/AbstractGoSplineSolver.cs +++ /dev/null @@ -1,105 +0,0 @@ -using UnityEngine; -using System.Collections; -using System.Collections.Generic; - - -public abstract class AbstractGoSplineSolver -{ - protected List _nodes; - public List nodes { get { return _nodes; } } - protected float _pathLength; - - // how many subdivisions should we divide each segment into? higher values take longer to build and lookup but - // result in closer to actual constant velocity - protected int totalSubdivisionsPerNodeForLookupTable = 5; - protected Dictionary _segmentTimeForDistance; // holds data in the form [time:distance] as a lookup table - - - - // the default implementation breaks the spline down into segments and approximates distance by adding up - // the length of each segment - public virtual void buildPath() - { - var totalSudivisions = _nodes.Count * totalSubdivisionsPerNodeForLookupTable; - _pathLength = 0; - float timePerSlice = 1f / totalSudivisions; - - // we dont care about the first node for distances because they are always t:0 and len:0 - _segmentTimeForDistance = new Dictionary( totalSudivisions ); - - - var lastPoint = getPoint( 0 ); - - // skip the first node and wrap 1 extra node - for( var i = 1; i < totalSudivisions + 1; i++ ) - { - // what is the current time along the path? - float currentTime = timePerSlice * i; - - var currentPoint = getPoint( currentTime ); - _pathLength += Vector3.Distance( currentPoint, lastPoint ); - lastPoint = currentPoint; - - _segmentTimeForDistance.Add( currentTime, _pathLength ); - } - } - - - public abstract void closePath(); - - - // gets the raw point not taking into account constant speed. used for drawing gizmos - public abstract Vector3 getPoint( float t ); - - - // gets the point taking in to account constant speed. the default implementation approximates the length of the spline - // by walking it and calculating the distance between each node - public virtual Vector3 getPointOnPath( float t ) - { - // we know exactly how far along the path we want to be from the passed in t - var targetDistance = _pathLength * t; - - // store the previous and next nodes in our lookup table - var previousNodeTime = 0f; - var previousNodeLength = 0f; - var nextNodeTime = 0f; - var nextNodeLength = 0f; - - // loop through all the values in our lookup table and find the two nodes our targetDistance falls between - foreach( var item in _segmentTimeForDistance ) - { - // have we passed our targetDistance yet? - if( item.Value >= targetDistance ) - { - nextNodeTime = item.Key; - nextNodeLength = item.Value; - - if( previousNodeTime > 0 ) - previousNodeLength = _segmentTimeForDistance[previousNodeTime]; - - break; - } - previousNodeTime = item.Key; - } - - // translate the values from the lookup table estimating the arc length between our known nodes from the lookup table - var segmentTime = nextNodeTime - previousNodeTime; - var segmentLength = nextNodeLength - previousNodeLength; - var distanceIntoSegment = targetDistance - previousNodeLength; - - t = previousNodeTime + ( distanceIntoSegment / segmentLength ) * segmentTime; - - return getPoint( t ); - } - - - public void reverseNodes() - { - _nodes.Reverse(); - } - - - public virtual void drawGizmos() - {} - -} diff --git a/Assets/Plugins/GoKit/properties/splines/AbstractGoSplineSolver.cs.meta b/Assets/Plugins/GoKit/properties/splines/AbstractGoSplineSolver.cs.meta deleted file mode 100644 index 07f29d4..0000000 --- a/Assets/Plugins/GoKit/properties/splines/AbstractGoSplineSolver.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: f87ecb9f470844d2abef8dbbd08a0102 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/splines/GoSpline.cs b/Assets/Plugins/GoKit/properties/splines/GoSpline.cs deleted file mode 100644 index 3a3ddca..0000000 --- a/Assets/Plugins/GoKit/properties/splines/GoSpline.cs +++ /dev/null @@ -1,240 +0,0 @@ -// spline equation courtesy Andeeee's CRSpline (http://forum.unity3d.com/threads/32954-Waypoints-and-constant-variable-speed-problems?p=213942&viewfull=1#post213942) - -using UnityEngine; -using System.IO; -using System.Collections; -using System.Collections.Generic; - - -public class GoSpline -{ - public int currentSegment { get; private set; } - public bool isClosed { get; private set; } - public GoSplineType splineType { get; private set; } - - // used by the visual path editor - public List nodes { get { return _solver.nodes; } } - - private bool _isReversed; // internal flag that lets us know if our nodes are reversed or not - private AbstractGoSplineSolver _solver; - - - // default constructor - public GoSpline( List nodes, bool useStraightLines = false ) - { - // determine spline type and solver based on number of nodes - if( useStraightLines || nodes.Count == 2 ) - { - splineType = GoSplineType.StraightLine; - _solver = new GoSplineStraightLineSolver( nodes ); - } - else if( nodes.Count == 3 ) - { - splineType = GoSplineType.QuadraticBezier; - _solver = new GoSplineQuadraticBezierSolver( nodes ); - } - else if( nodes.Count == 4 ) - { - splineType = GoSplineType.CubicBezier; - _solver = new GoSplineCubicBezierSolver( nodes ); - } - else - { - splineType = GoSplineType.CatmullRom; - _solver = new GoSplineCatmullRomSolver( nodes ); - } - } - - - public GoSpline( Vector3[] nodes, bool useStraightLines = false ) : this( new List( nodes ), useStraightLines ) - {} - - - public GoSpline( string pathAssetName, bool useStraightLines = false ) : this( nodeListFromAsset( pathAssetName ), useStraightLines ) - {} - - - /// - /// helper to get a node list from an asset created with the visual editor - /// - private static List nodeListFromAsset( string pathAssetName ) - { - /*if( Application.platform == RuntimePlatform.OSXWebPlayer || Application.platform == RuntimePlatform.WindowsWebPlayer ) - { - Debug.LogError( "The Web Player does not support loading files from disk." ); - return null; - }*/ - - - var path = string.Empty; - if( !pathAssetName.EndsWith( ".asset" ) ) - pathAssetName += ".asset"; - - - if( Application.platform == RuntimePlatform.Android ) - { - path = Path.Combine( "jar:file://" + Application.dataPath + "!/assets/", pathAssetName ); - - WWW loadAsset = new WWW( path ); - while( !loadAsset.isDone ) { } // maybe make a safety check here - - return bytesToVector3List( loadAsset.bytes ); - } - else if( Application.platform == RuntimePlatform.IPhonePlayer ) - { - // at runtime on iOS, we load from the dataPath - path = Path.Combine( Path.Combine( Application.dataPath, "Raw" ), pathAssetName ); - } - else - { - // in the editor we default to looking in the StreamingAssets folder - path = Path.Combine( Path.Combine( Application.dataPath, "StreamingAssets" ), pathAssetName ); - } - -#if UNITY_WEBPLAYER || NETFX_CORE || UNITY_WINRT - // it isnt possible to get here but the compiler needs it to be here anyway - return null; -#else - var bytes = File.ReadAllBytes( path ); - return bytesToVector3List( bytes ); -#endif - } - - - /// - /// helper to get a node list from an asset created with the visual editor - /// - public static List bytesToVector3List( byte[] bytes ) - { - var vecs = new List(); - for( var i = 0; i < bytes.Length; i += 12 ) - { - var newVec = new Vector3( System.BitConverter.ToSingle( bytes, i ), System.BitConverter.ToSingle( bytes, i + 4 ), System.BitConverter.ToSingle( bytes, i + 8 ) ); - vecs.Add( newVec ); - } - - return vecs; - } - - - /// - /// gets the last node. used to setup relative tweens - /// - public Vector3 getLastNode() - { - return _solver.nodes[_solver.nodes.Count]; - } - - - /// - /// responsible for calculating total length, segmentStartLocations and segmentDistances - /// - public void buildPath() - { - _solver.buildPath(); - } - - - /// - /// directly gets the point for the current spline type with no lookup table to adjust for constant speed - /// - private Vector3 getPoint( float t ) - { - return _solver.getPoint( t ); - } - - - /// - /// returns the point that corresponds to the given t where t >= 0 and t <= 1 making sure that the - /// path is traversed at a constant speed. - /// - public Vector3 getPointOnPath( float t ) - { - // if the path is closed, we will allow t to wrap. if is not we need to clamp t - if( t < 0 || t > 1 ) - { - if( isClosed ) - { - if( t < 0 ) - t += 1; - else - t -= 1; - } - else - { - t = Mathf.Clamp01( t ); - } - } - - return _solver.getPointOnPath( t ); - } - - - /// - /// closes the path adding a new node at the end that is equal to the start node if it isn't already equal - /// - public void closePath() - { - // dont let this get closed twice! - if( isClosed ) - return; - - isClosed = true; - _solver.closePath(); - } - - - /// - /// reverses the order of the nodes - /// - public void reverseNodes() - { - if( !_isReversed ) - { - _solver.reverseNodes(); - _isReversed = true; - } - } - - - /// - /// unreverses the order of the nodes if they were reversed - /// - public void unreverseNodes() - { - if( _isReversed ) - { - _solver.reverseNodes(); - _isReversed = false; - } - } - - - public void drawGizmos( float resolution ) - { - _solver.drawGizmos(); - - var previousPoint = _solver.getPoint( 0 ); - - resolution *= _solver.nodes.Count; - for( var i = 1; i <= resolution; i++ ) - { - var t = (float)i / resolution; - var currentPoint = _solver.getPoint( t ); - Gizmos.DrawLine( currentPoint, previousPoint ); - previousPoint = currentPoint; - } - } - - - /// - /// helper for drawing gizmos in the editor - /// - public static void drawGizmos( Vector3[] path, float resolution = 50 ) - { - // horribly inefficient but it only runs in the editor - var spline = new GoSpline( path ); - spline.drawGizmos( resolution ); - } - -} diff --git a/Assets/Plugins/GoKit/properties/splines/GoSpline.cs.meta b/Assets/Plugins/GoKit/properties/splines/GoSpline.cs.meta deleted file mode 100644 index e06bfe4..0000000 --- a/Assets/Plugins/GoKit/properties/splines/GoSpline.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 4ed66155442f6467bae99f410e969cc3 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/splines/GoSplineCatmullRomSolver.cs b/Assets/Plugins/GoKit/properties/splines/GoSplineCatmullRomSolver.cs deleted file mode 100644 index d846b06..0000000 --- a/Assets/Plugins/GoKit/properties/splines/GoSplineCatmullRomSolver.cs +++ /dev/null @@ -1,87 +0,0 @@ -using UnityEngine; -using System.Collections; -using System.Collections.Generic; - - -public class GoSplineCatmullRomSolver : AbstractGoSplineSolver -{ - public GoSplineCatmullRomSolver( List nodes ) - { - _nodes = nodes; - } - - - #region AbstractGoSplineSolver - - // closing a Catmull-Rom spline: http://cl.ly/GOZv - public override void closePath() - { - // first, remove the control points - _nodes.RemoveAt( 0 ); - _nodes.RemoveAt( _nodes.Count - 1 ); - - // if the first and last node are not the same add one - if( _nodes[0] != _nodes[_nodes.Count - 1] ) - _nodes.Add( _nodes[0] ); - - - // figure out the distances from node 0 to the first node and the second to last node (remember above - // we made the last node equal to the first so node 0 and _nodes.Count - 1 are identical) - var distanceToFirstNode = Vector3.Distance( _nodes[0], _nodes[1] ); - var distanceToLastNode = Vector3.Distance( _nodes[0], _nodes[_nodes.Count - 2] ); - - - // handle the first node. we want to use the distance to the LAST (opposite segment) node to figure out where this control point should be - var distanceToFirstTarget = distanceToLastNode / Vector3.Distance( _nodes[1], _nodes[0] ); - var lastControlNode = ( _nodes[0] + ( _nodes[1] - _nodes[0] ) * distanceToFirstTarget ); - - - // handle the last node. for this one, we want the distance to the first node for the control point but it should - // be along the vector to the last node - var distanceToLastTarget = distanceToFirstNode / Vector3.Distance( _nodes[_nodes.Count - 2], _nodes[0] ); - var firstControlNode = ( _nodes[0] + ( _nodes[_nodes.Count - 2] - _nodes[0] ) * distanceToLastTarget ); - - _nodes.Insert( 0, firstControlNode ); - _nodes.Add( lastControlNode ); - } - - - public override Vector3 getPoint( float t ) - { - int numSections = _nodes.Count - 3; - int currentNode = Mathf.Min( Mathf.FloorToInt( t * (float)numSections ), numSections - 1 ); - float u = t * (float)numSections - (float)currentNode; - - Vector3 a = _nodes[currentNode]; - Vector3 b = _nodes[currentNode + 1]; - Vector3 c = _nodes[currentNode + 2]; - Vector3 d = _nodes[currentNode + 3]; - - return .5f * - ( - ( -a + 3f * b - 3f * c + d ) * ( u * u * u ) - + ( 2f * a - 5f * b + 4f * c - d ) * ( u * u ) - + ( -a + c ) * u - + 2f * b - ); - } - - - public override void drawGizmos() - { - if( _nodes.Count < 2 ) - return; - - // draw the control points - var originalColor = Gizmos.color; - Gizmos.color = new Color( 1, 1, 1, 0.3f ); - - Gizmos.DrawLine( _nodes[0], _nodes[1] ); - Gizmos.DrawLine( _nodes[_nodes.Count - 1], _nodes[_nodes.Count - 2] ); - - Gizmos.color = originalColor; - } - - #endregion - -} diff --git a/Assets/Plugins/GoKit/properties/splines/GoSplineCatmullRomSolver.cs.meta b/Assets/Plugins/GoKit/properties/splines/GoSplineCatmullRomSolver.cs.meta deleted file mode 100644 index e7517f9..0000000 --- a/Assets/Plugins/GoKit/properties/splines/GoSplineCatmullRomSolver.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: d4e3d83fc59fd47d3a469ac52b3955ec -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/splines/GoSplineCubicBezierSolver.cs b/Assets/Plugins/GoKit/properties/splines/GoSplineCubicBezierSolver.cs deleted file mode 100644 index c36505c..0000000 --- a/Assets/Plugins/GoKit/properties/splines/GoSplineCubicBezierSolver.cs +++ /dev/null @@ -1,46 +0,0 @@ -using UnityEngine; -using System.Collections; -using System.Collections.Generic; - - -/// -/// nodes should be in the order start, end, control1, control2 -/// -public class GoSplineCubicBezierSolver : AbstractGoSplineSolver -{ - public GoSplineCubicBezierSolver( List nodes ) - { - _nodes = nodes; - } - - - #region AbstractGoSplineSolver - - public override void closePath() - { - - } - - - public override Vector3 getPoint( float t ) - { - float d = 1f - t; - return d * d * d * _nodes[0] + 3f * d * d * t * _nodes[1] + 3f * d * t * t * _nodes[2] + t * t * t * _nodes[3]; - } - - - public override void drawGizmos() - { - // draw the control points - var originalColor = Gizmos.color; - Gizmos.color = Color.red; - - Gizmos.DrawLine( _nodes[0], _nodes[1] ); - Gizmos.DrawLine( _nodes[2], _nodes[3] ); - - Gizmos.color = originalColor; - } - - #endregion - -} diff --git a/Assets/Plugins/GoKit/properties/splines/GoSplineCubicBezierSolver.cs.meta b/Assets/Plugins/GoKit/properties/splines/GoSplineCubicBezierSolver.cs.meta deleted file mode 100644 index 298a954..0000000 --- a/Assets/Plugins/GoKit/properties/splines/GoSplineCubicBezierSolver.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 0465a564e2fcd462eb4b5b4bdfd1532c -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/splines/GoSplineQuadraticBezierSolver.cs b/Assets/Plugins/GoKit/properties/splines/GoSplineQuadraticBezierSolver.cs deleted file mode 100644 index 152ab7b..0000000 --- a/Assets/Plugins/GoKit/properties/splines/GoSplineQuadraticBezierSolver.cs +++ /dev/null @@ -1,80 +0,0 @@ -using UnityEngine; -using System.Collections; -using System.Collections.Generic; - - -/// -/// nodes should be in the order start, control, end -/// -public class GoSplineQuadraticBezierSolver : AbstractGoSplineSolver -{ - public GoSplineQuadraticBezierSolver( List nodes ) - { - _nodes = nodes; - } - - - // http://www.gamedev.net/topic/551455-length-of-a-generalized-quadratic-bezier-curve-in-3d/ - protected float quadBezierLength( Vector3 startPoint, Vector3 controlPoint, Vector3 endPoint ) - { - // ASSERT: all inputs are distinct points. - var A = new Vector3[2]; - A[0] = controlPoint - startPoint; - A[1] = startPoint - 2f * controlPoint + endPoint; - - float length; - - if( A[1] != Vector3.zero ) - { - // Coefficients of f(t) = c*t^2 + b*t + a. - float c = 4.0f * Vector3.Dot( A[1], A[1] ); // A[1].Dot(A[1]); // c > 0 to be in this block of code - float b = 8.0f * Vector3.Dot( A[0], A[1] ); // A[0].Dot(A[1]); - float a = 4.0f * Vector3.Dot( A[0], A[0] ); // A[0].Dot(A[0]); // a > 0 by assumption - float q = 4.0f * a * c - b * b; // = 16*|Cross(A0,A1)| >= 0 - - float twoCpB = 2.0f * c + b; - float sumCBA = c + b + a; - float mult0 = 0.25f / c; - float mult1 = q / ( 8.0f * Mathf.Pow( c, 1.5f ) ); - length = mult0 * ( twoCpB * Mathf.Sqrt( sumCBA ) - b * Mathf.Sqrt( a ) ) + - mult1 * ( Mathf.Log( 2.0f * Mathf.Sqrt( c * sumCBA ) + twoCpB ) - Mathf.Log( 2.0f * Mathf.Sqrt( c * a ) + b ) ); - } - else - { - length = 2.0f * A[0].magnitude; - } - - return length; - } - - - #region AbstractGoSplineSolver - - public override void closePath() - { - - } - - - public override Vector3 getPoint( float t ) - { - float d = 1f - t; - return d * d * _nodes[0] + 2f * d * t * _nodes[1] + t * t * _nodes[2]; - } - - - public override void drawGizmos() - { - // draw the control points - var originalColor = Gizmos.color; - Gizmos.color = Color.red; - - Gizmos.DrawLine( _nodes[0], _nodes[1] ); - Gizmos.DrawLine( _nodes[1], _nodes[2] ); - - Gizmos.color = originalColor; - } - - #endregion - -} diff --git a/Assets/Plugins/GoKit/properties/splines/GoSplineQuadraticBezierSolver.cs.meta b/Assets/Plugins/GoKit/properties/splines/GoSplineQuadraticBezierSolver.cs.meta deleted file mode 100644 index 7bc4b4b..0000000 --- a/Assets/Plugins/GoKit/properties/splines/GoSplineQuadraticBezierSolver.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 474c1029fc1d848998185b77129ed5c0 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/properties/splines/GoSplineStraightLineSolver.cs b/Assets/Plugins/GoKit/properties/splines/GoSplineStraightLineSolver.cs deleted file mode 100644 index 3729ad6..0000000 --- a/Assets/Plugins/GoKit/properties/splines/GoSplineStraightLineSolver.cs +++ /dev/null @@ -1,100 +0,0 @@ -using UnityEngine; -using System.Collections; -using System.Collections.Generic; - - -public class GoSplineStraightLineSolver : AbstractGoSplineSolver -{ - private Dictionary _segmentStartLocations; - private Dictionary _segmentDistances; - private int _currentSegment; - - - public GoSplineStraightLineSolver( List nodes ) - { - _nodes = nodes; - } - - - #region AbstractGoSplineSolver - - public override void buildPath() - { - // we need at least 3 nodes (more than 1 segment) to bother with building - if( _nodes.Count < 3 ) - return; - - // we dont care about the first node for distances because they are always t:0 and len:0 and we dont need the first or last for locations - _segmentStartLocations = new Dictionary( _nodes.Count - 2 ); - _segmentDistances = new Dictionary( _nodes.Count - 1 ); - - for( var i = 0; i < _nodes.Count - 1; i++ ) - { - // calculate the distance to the next node - var distance = Vector3.Distance( _nodes[i], _nodes[i + 1] ); - _segmentDistances.Add( i, distance ); - _pathLength += distance; - } - - - // now that we have the total length we can loop back through and calculate the segmentStartLocations - var accruedRouteLength = 0f; - for( var i = 0; i < _segmentDistances.Count - 1; i++ ) - { - accruedRouteLength += _segmentDistances[i]; - _segmentStartLocations.Add( i + 1, accruedRouteLength / _pathLength ); - } - } - - - public override void closePath() - { - // add a node to close the route if necessary - if( _nodes[0] != _nodes[_nodes.Count - 1] ) - _nodes.Add( _nodes[0] ); - } - - - public override Vector3 getPoint( float t ) - { - return getPointOnPath( t ); - } - - - public override Vector3 getPointOnPath( float t ) - { - // we need at least 3 nodes (more than 1 segment) to bother using the look up tables. else we just lerp directly from - // node 1 to node 2 - if( _nodes.Count < 3 ) - return Vector3.Lerp( _nodes[0], _nodes[1], t ); - - - // which segment are we on? - _currentSegment = 0; - foreach( var info in _segmentStartLocations ) - { - if( info.Value < t ) - { - _currentSegment = info.Key; - continue; - } - - break; - } - - // now we need to know the total distance travelled in all previous segments so we can subtract it from the total - // travelled to get exactly how far along the current segment we are - var totalDistanceTravelled = t * _pathLength; - var i = _currentSegment - 1; // we want all the previous segment lengths - while( i >= 0 ) - { - totalDistanceTravelled -= _segmentDistances[i]; - --i; - } - - return Vector3.Lerp( _nodes[_currentSegment], _nodes[_currentSegment + 1], totalDistanceTravelled / _segmentDistances[_currentSegment] ); - } - - #endregion - -} diff --git a/Assets/Plugins/GoKit/properties/splines/GoSplineStraightLineSolver.cs.meta b/Assets/Plugins/GoKit/properties/splines/GoSplineStraightLineSolver.cs.meta deleted file mode 100644 index b82b652..0000000 --- a/Assets/Plugins/GoKit/properties/splines/GoSplineStraightLineSolver.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 86af7ded131634ccfa3962417a095e05 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/GoKit/easing.meta b/Assets/Resources.meta similarity index 64% rename from Assets/Plugins/GoKit/easing.meta rename to Assets/Resources.meta index 46fa7b3..5f585d7 100644 --- a/Assets/Plugins/GoKit/easing.meta +++ b/Assets/Resources.meta @@ -1,7 +1,8 @@ fileFormatVersion: 2 -guid: 34b16834b4ced4d9a9b03c6d00303ad5 +guid: a2d418163a723ad49a89dd9f971c7cb2 folderAsset: yes DefaultImporter: + externalObjects: {} userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Resources/BillingMode.json b/Assets/Resources/BillingMode.json new file mode 100644 index 0000000..6f4bfb7 --- /dev/null +++ b/Assets/Resources/BillingMode.json @@ -0,0 +1 @@ +{"androidStore":"GooglePlay"} \ No newline at end of file diff --git a/Assets/Plugins/GoKit/easing/easeEquationsLicense.txt.meta b/Assets/Resources/BillingMode.json.meta similarity index 61% rename from Assets/Plugins/GoKit/easing/easeEquationsLicense.txt.meta rename to Assets/Resources/BillingMode.json.meta index 8564b95..352c2fd 100644 --- a/Assets/Plugins/GoKit/easing/easeEquationsLicense.txt.meta +++ b/Assets/Resources/BillingMode.json.meta @@ -1,6 +1,7 @@ fileFormatVersion: 2 -guid: 098d0b0599d2b4fcc8c8f24379e8bf90 +guid: f05eb5de18f3cc44290dc20b465b104d TextScriptImporter: + externalObjects: {} userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs index f25f94a..ada3a27 100644 --- a/Assets/Scripts/GameManager.cs +++ b/Assets/Scripts/GameManager.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using Assets.Scripts; using System.Linq; +using DG.Tweening; public class GameManager : MonoBehaviour { @@ -95,10 +96,8 @@ private void AnimateCameraToStartPosition() float duration = Vector2.Distance(Camera.main.transform.position, cameraFollow.StartingPosition) / 10f; if (duration == 0.0f) duration = 0.1f; //animate the camera to start - Camera.main.transform.positionTo - (duration, - cameraFollow.StartingPosition). //end position - setOnCompleteHandler((x) => + Camera.main.transform.DOMove(cameraFollow.StartingPosition, duration). //end position + OnComplete(() => { cameraFollow.IsFollowing = false; if (AllPigsDestroyed()) @@ -127,15 +126,12 @@ private void AnimateCameraToStartPosition() void AnimateBirdToSlingshot() { CurrentGameState = GameState.BirdMovingToSlingshot; - Birds[currentBirdIndex].transform.positionTo - (Vector2.Distance(Birds[currentBirdIndex].transform.position / 10, - slingshot.BirdWaitPosition.transform.position) / 10, //duration - slingshot.BirdWaitPosition.transform.position). //final position - setOnCompleteHandler((x) => - { - x.complete(); - x.destroy(); //destroy the animation - CurrentGameState = GameState.Playing; + Birds[currentBirdIndex].transform.DOMove + (slingshot.BirdWaitPosition.transform.position, //final position + Vector2.Distance(Birds[currentBirdIndex].transform.position / 10, + slingshot.BirdWaitPosition.transform.position) / 10). //position + OnComplete(() => + { CurrentGameState = GameState.Playing; slingshot.enabled = true; //enable slingshot //current bird is the current in the list slingshot.BirdToThrow = Birds[currentBirdIndex]; diff --git a/Assets/Scripts/SlingShot.cs b/Assets/Scripts/SlingShot.cs index 5ce6276..07c0eca 100644 --- a/Assets/Scripts/SlingShot.cs +++ b/Assets/Scripts/SlingShot.cs @@ -2,6 +2,7 @@ using System.Collections; using Assets.Scripts; using System; +using DG.Tweening; public class SlingShot : MonoBehaviour { @@ -114,12 +115,10 @@ void Update() { //distance/10 was found with trial and error :) //animate the bird to the wait position - BirdToThrow.transform.positionTo(distance / 10, //duration - BirdWaitPosition.transform.position). //final position - setOnCompleteHandler((x) => + BirdToThrow.transform.DOMove(BirdWaitPosition.transform.position, //final position + distance / 10). //duration + OnComplete(() => { - x.complete(); - x.destroy(); InitializeBird(); }); diff --git a/Assets/Sprites/Blocks/INGAME_BLOCKS_WOOD_1.png.meta b/Assets/Sprites/Blocks/INGAME_BLOCKS_WOOD_1.png.meta index 811bc90..48d77a3 100644 --- a/Assets/Sprites/Blocks/INGAME_BLOCKS_WOOD_1.png.meta +++ b/Assets/Sprites/Blocks/INGAME_BLOCKS_WOOD_1.png.meta @@ -1,38 +1,99 @@ fileFormatVersion: 2 guid: 661fe1e67fba6a142bdac97a379ce414 TextureImporter: - fileIDToRecycleName: - 21300000: INGAME_BLOCKS_WOOD_1_0 - 21300002: INGAME_BLOCKS_WOOD_1_1 - 21300004: INGAME_BLOCKS_WOOD_1_2 - 21300006: INGAME_BLOCKS_WOOD_1_3 - 21300008: INGAME_BLOCKS_WOOD_1_4 - 21300010: INGAME_BLOCKS_WOOD_1_5 - 21300012: INGAME_BLOCKS_WOOD_1_6 - 21300014: INGAME_BLOCKS_WOOD_1_7 - 21300016: INGAME_BLOCKS_WOOD_1_8 - 21300018: INGAME_BLOCKS_WOOD_1_9 - 21300020: INGAME_BLOCKS_WOOD_1_10 - 21300022: INGAME_BLOCKS_WOOD_1_11 - 21300024: INGAME_BLOCKS_WOOD_1_12 - 21300026: INGAME_BLOCKS_WOOD_1_13 - 21300028: INGAME_BLOCKS_WOOD_1_14 - 21300030: INGAME_BLOCKS_WOOD_1_15 - 21300032: INGAME_BLOCKS_WOOD_1_16 - 21300034: INGAME_BLOCKS_WOOD_1_17 - 21300036: INGAME_BLOCKS_WOOD_1_18 - 21300038: INGAME_BLOCKS_WOOD_1_19 - 21300040: INGAME_BLOCKS_WOOD_1_20 - 21300042: INGAME_BLOCKS_WOOD_1_21 - 21300044: INGAME_BLOCKS_WOOD_1_22 - 21300046: INGAME_BLOCKS_WOOD_1_23 - 21300048: INGAME_BLOCKS_WOOD_1_24 - 21300050: INGAME_BLOCKS_WOOD_1_25 - 21300052: INGAME_BLOCKS_WOOD_1_26 - 21300054: INGAME_BLOCKS_WOOD_1_27 - 21300056: INGAME_BLOCKS_WOOD_1_28 - 21300058: INGAME_BLOCKS_WOOD_1_29 - serializedVersion: 4 + internalIDToNameTable: + - first: + 213: 21300000 + second: INGAME_BLOCKS_WOOD_1_0 + - first: + 213: 21300002 + second: INGAME_BLOCKS_WOOD_1_1 + - first: + 213: 21300004 + second: INGAME_BLOCKS_WOOD_1_2 + - first: + 213: 21300006 + second: INGAME_BLOCKS_WOOD_1_3 + - first: + 213: 21300008 + second: INGAME_BLOCKS_WOOD_1_4 + - first: + 213: 21300010 + second: INGAME_BLOCKS_WOOD_1_5 + - first: + 213: 21300012 + second: INGAME_BLOCKS_WOOD_1_6 + - first: + 213: 21300014 + second: INGAME_BLOCKS_WOOD_1_7 + - first: + 213: 21300016 + second: INGAME_BLOCKS_WOOD_1_8 + - first: + 213: 21300018 + second: INGAME_BLOCKS_WOOD_1_9 + - first: + 213: 21300020 + second: INGAME_BLOCKS_WOOD_1_10 + - first: + 213: 21300022 + second: INGAME_BLOCKS_WOOD_1_11 + - first: + 213: 21300024 + second: INGAME_BLOCKS_WOOD_1_12 + - first: + 213: 21300026 + second: INGAME_BLOCKS_WOOD_1_13 + - first: + 213: 21300028 + second: INGAME_BLOCKS_WOOD_1_14 + - first: + 213: 21300030 + second: INGAME_BLOCKS_WOOD_1_15 + - first: + 213: 21300032 + second: INGAME_BLOCKS_WOOD_1_16 + - first: + 213: 21300034 + second: INGAME_BLOCKS_WOOD_1_17 + - first: + 213: 21300036 + second: INGAME_BLOCKS_WOOD_1_18 + - first: + 213: 21300038 + second: INGAME_BLOCKS_WOOD_1_19 + - first: + 213: 21300040 + second: INGAME_BLOCKS_WOOD_1_20 + - first: + 213: 21300042 + second: INGAME_BLOCKS_WOOD_1_21 + - first: + 213: 21300044 + second: INGAME_BLOCKS_WOOD_1_22 + - first: + 213: 21300046 + second: INGAME_BLOCKS_WOOD_1_23 + - first: + 213: 21300048 + second: INGAME_BLOCKS_WOOD_1_24 + - first: + 213: 21300050 + second: INGAME_BLOCKS_WOOD_1_25 + - first: + 213: 21300052 + second: INGAME_BLOCKS_WOOD_1_26 + - first: + 213: 21300054 + second: INGAME_BLOCKS_WOOD_1_27 + - first: + 213: 21300056 + second: INGAME_BLOCKS_WOOD_1_28 + - first: + 213: 21300058 + second: INGAME_BLOCKS_WOOD_1_29 + externalObjects: {} + serializedVersion: 12 mipmaps: mipMapMode: 0 enableMipMap: 0 @@ -40,6 +101,8 @@ TextureImporter: linearTexture: 0 fadeOut: 0 borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: @@ -48,6 +111,10 @@ TextureImporter: heightScale: 0.25 normalMapFilter: 0 isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -55,10 +122,13 @@ TextureImporter: textureFormat: -3 maxTextureSize: 4096 textureSettings: - filterMode: -1 + serializedVersion: 2 + filterMode: 1 aniso: 1 - mipBias: -1 - wrapMode: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 nPOTScale: 0 lightmap: 0 compressionQuality: 50 @@ -67,25 +137,60 @@ TextureImporter: spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spriteBorder: {x: 0, y: 0, z: 0, w: 0} spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 8 textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + cookieLightType: 1 platformSettings: - - buildTarget: DefaultTexturePlatform + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 4096 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 4096 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Server maxTextureSize: 4096 + resizeAlgorithm: 0 textureFormat: -1 textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 spriteSheet: serializedVersion: 2 sprites: @@ -101,7 +206,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 02305410000000000800000000000000 + internalID: 21300000 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_1 rect: @@ -114,7 +227,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 22305410000000000800000000000000 + internalID: 21300002 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_2 rect: @@ -127,7 +248,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 42305410000000000800000000000000 + internalID: 21300004 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_3 rect: @@ -140,7 +269,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 62305410000000000800000000000000 + internalID: 21300006 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_4 rect: @@ -153,7 +290,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 82305410000000000800000000000000 + internalID: 21300008 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_5 rect: @@ -166,7 +311,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: a2305410000000000800000000000000 + internalID: 21300010 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_6 rect: @@ -179,7 +332,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: c2305410000000000800000000000000 + internalID: 21300012 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_7 rect: @@ -192,7 +353,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: e2305410000000000800000000000000 + internalID: 21300014 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_8 rect: @@ -205,7 +374,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 03305410000000000800000000000000 + internalID: 21300016 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_9 rect: @@ -218,7 +395,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 23305410000000000800000000000000 + internalID: 21300018 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_10 rect: @@ -231,7 +416,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 43305410000000000800000000000000 + internalID: 21300020 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_11 rect: @@ -244,7 +437,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 63305410000000000800000000000000 + internalID: 21300022 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_12 rect: @@ -257,7 +458,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 83305410000000000800000000000000 + internalID: 21300024 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_13 rect: @@ -270,7 +479,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: a3305410000000000800000000000000 + internalID: 21300026 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_14 rect: @@ -283,7 +500,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: c3305410000000000800000000000000 + internalID: 21300028 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_15 rect: @@ -296,7 +521,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: e3305410000000000800000000000000 + internalID: 21300030 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_16 rect: @@ -309,7 +542,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 04305410000000000800000000000000 + internalID: 21300032 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_17 rect: @@ -322,7 +563,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 24305410000000000800000000000000 + internalID: 21300034 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_18 rect: @@ -335,7 +584,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 44305410000000000800000000000000 + internalID: 21300036 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_19 rect: @@ -348,7 +605,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 64305410000000000800000000000000 + internalID: 21300038 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_20 rect: @@ -361,7 +626,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 84305410000000000800000000000000 + internalID: 21300040 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_21 rect: @@ -374,7 +647,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: a4305410000000000800000000000000 + internalID: 21300042 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_22 rect: @@ -387,7 +668,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: c4305410000000000800000000000000 + internalID: 21300044 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_23 rect: @@ -400,7 +689,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: e4305410000000000800000000000000 + internalID: 21300046 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_24 rect: @@ -413,7 +710,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 05305410000000000800000000000000 + internalID: 21300048 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_25 rect: @@ -426,7 +731,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 25305410000000000800000000000000 + internalID: 21300050 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_26 rect: @@ -439,7 +752,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 45305410000000000800000000000000 + internalID: 21300052 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_27 rect: @@ -452,7 +773,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 65305410000000000800000000000000 + internalID: 21300054 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_28 rect: @@ -465,7 +794,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 85305410000000000800000000000000 + internalID: 21300056 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: INGAME_BLOCKS_WOOD_1_29 rect: @@ -478,9 +815,59 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: a5305410000000000800000000000000 + internalID: 21300058 + vertices: [] + indices: + edges: [] + weights: [] outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: + INGAME_BLOCKS_WOOD_1_0: 21300000 + INGAME_BLOCKS_WOOD_1_1: 21300002 + INGAME_BLOCKS_WOOD_1_10: 21300020 + INGAME_BLOCKS_WOOD_1_11: 21300022 + INGAME_BLOCKS_WOOD_1_12: 21300024 + INGAME_BLOCKS_WOOD_1_13: 21300026 + INGAME_BLOCKS_WOOD_1_14: 21300028 + INGAME_BLOCKS_WOOD_1_15: 21300030 + INGAME_BLOCKS_WOOD_1_16: 21300032 + INGAME_BLOCKS_WOOD_1_17: 21300034 + INGAME_BLOCKS_WOOD_1_18: 21300036 + INGAME_BLOCKS_WOOD_1_19: 21300038 + INGAME_BLOCKS_WOOD_1_2: 21300004 + INGAME_BLOCKS_WOOD_1_20: 21300040 + INGAME_BLOCKS_WOOD_1_21: 21300042 + INGAME_BLOCKS_WOOD_1_22: 21300044 + INGAME_BLOCKS_WOOD_1_23: 21300046 + INGAME_BLOCKS_WOOD_1_24: 21300048 + INGAME_BLOCKS_WOOD_1_25: 21300050 + INGAME_BLOCKS_WOOD_1_26: 21300052 + INGAME_BLOCKS_WOOD_1_27: 21300054 + INGAME_BLOCKS_WOOD_1_28: 21300056 + INGAME_BLOCKS_WOOD_1_29: 21300058 + INGAME_BLOCKS_WOOD_1_3: 21300006 + INGAME_BLOCKS_WOOD_1_4: 21300008 + INGAME_BLOCKS_WOOD_1_5: 21300010 + INGAME_BLOCKS_WOOD_1_6: 21300012 + INGAME_BLOCKS_WOOD_1_7: 21300014 + INGAME_BLOCKS_WOOD_1_8: 21300016 + INGAME_BLOCKS_WOOD_1_9: 21300018 spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Sprites/angry_birds_ocs_sprites__update__by_jared33-d5mg197.png.meta b/Assets/Sprites/angry_birds_ocs_sprites__update__by_jared33-d5mg197.png.meta index 6cfb505..d33bf3f 100644 --- a/Assets/Sprites/angry_birds_ocs_sprites__update__by_jared33-d5mg197.png.meta +++ b/Assets/Sprites/angry_birds_ocs_sprites__update__by_jared33-d5mg197.png.meta @@ -1,11 +1,12 @@ fileFormatVersion: 2 guid: 85aec2e11da99d141a70371bdb05d889 -timeCreated: 1434728642 -licenseType: Free TextureImporter: - fileIDToRecycleName: - 21300000: angry_birds_ocs_sprites__update__by_jared33-d5mg197_0 - serializedVersion: 4 + internalIDToNameTable: + - first: + 213: 21300000 + second: angry_birds_ocs_sprites__update__by_jared33-d5mg197_0 + externalObjects: {} + serializedVersion: 12 mipmaps: mipMapMode: 0 enableMipMap: 1 @@ -13,6 +14,8 @@ TextureImporter: linearTexture: 0 fadeOut: 0 borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: @@ -21,6 +24,10 @@ TextureImporter: heightScale: 0.25 normalMapFilter: 0 isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -28,10 +35,13 @@ TextureImporter: textureFormat: -3 maxTextureSize: 8192 textureSettings: - filterMode: -1 + serializedVersion: 2 + filterMode: 1 aniso: 16 - mipBias: -1 - wrapMode: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 nPOTScale: 0 lightmap: 0 compressionQuality: 50 @@ -40,25 +50,60 @@ TextureImporter: spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spriteBorder: {x: 0, y: 0, z: 0, w: 0} spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 8 textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + cookieLightType: 1 platformSettings: - - buildTarget: DefaultTexturePlatform + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Server maxTextureSize: 8192 + resizeAlgorithm: 0 textureFormat: -1 textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 spriteSheet: serializedVersion: 2 sprites: @@ -74,9 +119,30 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 3, y: 3, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 02305410000000000800000000000000 + internalID: 21300000 + vertices: [] + indices: + edges: [] + weights: [] outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: + angry_birds_ocs_sprites__update__by_jared33-d5mg197_0: 21300000 spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Sprites/backgrounds/bg_1 (z -1).png.meta b/Assets/Sprites/backgrounds/bg_1 (z -1).png.meta index 70c5f83..ad16b99 100644 --- a/Assets/Sprites/backgrounds/bg_1 (z -1).png.meta +++ b/Assets/Sprites/backgrounds/bg_1 (z -1).png.meta @@ -1,9 +1,12 @@ fileFormatVersion: 2 guid: ead9f96d7c15196469b34d7ce40eb2f9 TextureImporter: - fileIDToRecycleName: - 21300000: bg_1 (z -1) - serializedVersion: 4 + internalIDToNameTable: + - first: + 213: 21300000 + second: bg_1 (z -1) + externalObjects: {} + serializedVersion: 12 mipmaps: mipMapMode: 0 enableMipMap: 0 @@ -11,6 +14,8 @@ TextureImporter: linearTexture: 0 fadeOut: 0 borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: @@ -19,6 +24,10 @@ TextureImporter: heightScale: 0.25 normalMapFilter: 0 isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -26,10 +35,13 @@ TextureImporter: textureFormat: -1 maxTextureSize: 1024 textureSettings: - filterMode: -1 - aniso: -1 - mipBias: -1 - wrapMode: 1 + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 nPOTScale: 0 lightmap: 0 compressionQuality: 50 @@ -38,30 +50,77 @@ TextureImporter: spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spriteBorder: {x: 0, y: 0, z: 0, w: 0} spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 8 textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + cookieLightType: 1 platformSettings: - - buildTarget: DefaultTexturePlatform + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Server maxTextureSize: 1024 + resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 spriteSheet: serializedVersion: 2 sprites: [] outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Sprites/backgrounds/middleground (z 0).png.meta b/Assets/Sprites/backgrounds/middleground (z 0).png.meta index 3ba63a6..2848061 100644 --- a/Assets/Sprites/backgrounds/middleground (z 0).png.meta +++ b/Assets/Sprites/backgrounds/middleground (z 0).png.meta @@ -1,9 +1,12 @@ fileFormatVersion: 2 guid: 5c7dfc88de15b384ebdb2f6ec5fb3b2d TextureImporter: - fileIDToRecycleName: - 21300000: middleground (z 0) - serializedVersion: 4 + internalIDToNameTable: + - first: + 213: 21300000 + second: middleground (z 0) + externalObjects: {} + serializedVersion: 12 mipmaps: mipMapMode: 0 enableMipMap: 0 @@ -11,6 +14,8 @@ TextureImporter: linearTexture: 0 fadeOut: 0 borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: @@ -19,6 +24,10 @@ TextureImporter: heightScale: 0.25 normalMapFilter: 0 isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -26,10 +35,13 @@ TextureImporter: textureFormat: -1 maxTextureSize: 1024 textureSettings: - filterMode: -1 - aniso: -1 - mipBias: -1 - wrapMode: 1 + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 nPOTScale: 0 lightmap: 0 compressionQuality: 50 @@ -38,30 +50,77 @@ TextureImporter: spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spriteBorder: {x: 0, y: 0, z: 0, w: 0} spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 8 textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + cookieLightType: 1 platformSettings: - - buildTarget: DefaultTexturePlatform + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Server maxTextureSize: 1024 + resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 spriteSheet: serializedVersion: 2 sprites: [] outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Sprites/backgrounds/sky (z -3).png.meta b/Assets/Sprites/backgrounds/sky (z -3).png.meta index 1d3667c..a910f03 100644 --- a/Assets/Sprites/backgrounds/sky (z -3).png.meta +++ b/Assets/Sprites/backgrounds/sky (z -3).png.meta @@ -1,9 +1,12 @@ fileFormatVersion: 2 guid: 256bec8399ecebb4db1c854d537f7d86 TextureImporter: - fileIDToRecycleName: - 21300000: sky (z -3) - serializedVersion: 4 + internalIDToNameTable: + - first: + 213: 21300000 + second: sky (z -3) + externalObjects: {} + serializedVersion: 12 mipmaps: mipMapMode: 0 enableMipMap: 0 @@ -11,6 +14,8 @@ TextureImporter: linearTexture: 0 fadeOut: 0 borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: @@ -19,6 +24,10 @@ TextureImporter: heightScale: 0.25 normalMapFilter: 0 isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -26,10 +35,13 @@ TextureImporter: textureFormat: -1 maxTextureSize: 1024 textureSettings: - filterMode: -1 - aniso: -1 - mipBias: -1 - wrapMode: 1 + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 nPOTScale: 0 lightmap: 0 compressionQuality: 50 @@ -38,30 +50,77 @@ TextureImporter: spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spriteBorder: {x: 0, y: 0, z: 0, w: 0} spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 8 textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + cookieLightType: 1 platformSettings: - - buildTarget: DefaultTexturePlatform + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Server maxTextureSize: 1024 + resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 spriteSheet: serializedVersion: 2 sprites: [] outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Sprites/forest/forest-1.png.meta b/Assets/Sprites/forest/forest-1.png.meta index 9ed2f51..0a3a539 100644 --- a/Assets/Sprites/forest/forest-1.png.meta +++ b/Assets/Sprites/forest/forest-1.png.meta @@ -1,26 +1,63 @@ fileFormatVersion: 2 guid: 01d568cef5ea30f4185185b4739f17ac TextureImporter: - fileIDToRecycleName: - 21300000: forest-1_0 - 21300002: forest-1_1 - 21300004: forest-1_2 - 21300006: forest-1_3 - 21300008: forest-1_4 - 21300010: forest-1_5 - 21300012: forest-1_6 - 21300014: forest-1_7 - 21300016: forest-1_8 - 21300018: forest-1_9 - 21300020: forest-1_10 - 21300022: forest-1_11 - 21300024: forest-1_12 - 21300026: forest-1_13 - 21300028: forest-1_14 - 21300030: forest-1_15 - 21300032: forest-1_16 - 21300034: forest-1_17 - serializedVersion: 4 + internalIDToNameTable: + - first: + 213: 21300000 + second: forest-1_0 + - first: + 213: 21300002 + second: forest-1_1 + - first: + 213: 21300004 + second: forest-1_2 + - first: + 213: 21300006 + second: forest-1_3 + - first: + 213: 21300008 + second: forest-1_4 + - first: + 213: 21300010 + second: forest-1_5 + - first: + 213: 21300012 + second: forest-1_6 + - first: + 213: 21300014 + second: forest-1_7 + - first: + 213: 21300016 + second: forest-1_8 + - first: + 213: 21300018 + second: forest-1_9 + - first: + 213: 21300020 + second: forest-1_10 + - first: + 213: 21300022 + second: forest-1_11 + - first: + 213: 21300024 + second: forest-1_12 + - first: + 213: 21300026 + second: forest-1_13 + - first: + 213: 21300028 + second: forest-1_14 + - first: + 213: 21300030 + second: forest-1_15 + - first: + 213: 21300032 + second: forest-1_16 + - first: + 213: 21300034 + second: forest-1_17 + externalObjects: {} + serializedVersion: 12 mipmaps: mipMapMode: 0 enableMipMap: 0 @@ -28,6 +65,8 @@ TextureImporter: linearTexture: 0 fadeOut: 0 borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: @@ -36,6 +75,10 @@ TextureImporter: heightScale: 0.25 normalMapFilter: 0 isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -43,10 +86,13 @@ TextureImporter: textureFormat: -1 maxTextureSize: 1024 textureSettings: - filterMode: -1 + serializedVersion: 2 + filterMode: 1 aniso: 1 - mipBias: -1 - wrapMode: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 nPOTScale: 0 lightmap: 0 compressionQuality: 50 @@ -55,25 +101,60 @@ TextureImporter: spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spriteBorder: {x: 0, y: 0, z: 0, w: 0} spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 8 textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + cookieLightType: 1 platformSettings: - - buildTarget: DefaultTexturePlatform + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Server maxTextureSize: 1024 + resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 spriteSheet: serializedVersion: 2 sprites: @@ -89,7 +170,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 02305410000000000800000000000000 + internalID: 21300000 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_1 rect: @@ -102,7 +191,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 22305410000000000800000000000000 + internalID: 21300002 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_2 rect: @@ -115,7 +212,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 42305410000000000800000000000000 + internalID: 21300004 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_3 rect: @@ -128,7 +233,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 62305410000000000800000000000000 + internalID: 21300006 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_4 rect: @@ -141,7 +254,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 82305410000000000800000000000000 + internalID: 21300008 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_5 rect: @@ -154,7 +275,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: a2305410000000000800000000000000 + internalID: 21300010 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_6 rect: @@ -167,7 +296,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: c2305410000000000800000000000000 + internalID: 21300012 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_7 rect: @@ -180,7 +317,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: e2305410000000000800000000000000 + internalID: 21300014 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_8 rect: @@ -193,7 +338,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 03305410000000000800000000000000 + internalID: 21300016 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_9 rect: @@ -206,7 +359,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 23305410000000000800000000000000 + internalID: 21300018 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_10 rect: @@ -219,7 +380,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 43305410000000000800000000000000 + internalID: 21300020 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_11 rect: @@ -232,7 +401,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 63305410000000000800000000000000 + internalID: 21300022 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_12 rect: @@ -245,7 +422,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 83305410000000000800000000000000 + internalID: 21300024 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_13 rect: @@ -258,7 +443,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: a3305410000000000800000000000000 + internalID: 21300026 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_14 rect: @@ -271,7 +464,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: c3305410000000000800000000000000 + internalID: 21300028 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_15 rect: @@ -284,7 +485,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: e3305410000000000800000000000000 + internalID: 21300030 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_16 rect: @@ -297,7 +506,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 04305410000000000800000000000000 + internalID: 21300032 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-1_17 rect: @@ -310,9 +527,47 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 24305410000000000800000000000000 + internalID: 21300034 + vertices: [] + indices: + edges: [] + weights: [] outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: + forest-1_0: 21300000 + forest-1_1: 21300002 + forest-1_10: 21300020 + forest-1_11: 21300022 + forest-1_12: 21300024 + forest-1_13: 21300026 + forest-1_14: 21300028 + forest-1_15: 21300030 + forest-1_16: 21300032 + forest-1_17: 21300034 + forest-1_2: 21300004 + forest-1_3: 21300006 + forest-1_4: 21300008 + forest-1_5: 21300010 + forest-1_6: 21300012 + forest-1_7: 21300014 + forest-1_8: 21300016 + forest-1_9: 21300018 spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Sprites/forest/forest-2.png.meta b/Assets/Sprites/forest/forest-2.png.meta index 7c0833a..61ff5e3 100644 --- a/Assets/Sprites/forest/forest-2.png.meta +++ b/Assets/Sprites/forest/forest-2.png.meta @@ -1,25 +1,60 @@ fileFormatVersion: 2 guid: 468d6561c26710d4ea53e543c4fd3164 TextureImporter: - fileIDToRecycleName: - 21300000: forest-2_0 - 21300002: forest-2_1 - 21300004: forest-2_2 - 21300006: forest-2_3 - 21300008: forest-2_4 - 21300010: forest-2_5 - 21300012: forest-2_6 - 21300014: forest-2_7 - 21300016: forest-2_8 - 21300018: forest-2_9 - 21300020: forest-2_10 - 21300022: forest-2_11 - 21300024: forest-2_12 - 21300026: forest-2_13 - 21300028: forest-2_14 - 21300030: forest-2_15 - 21300032: forest-2_16 - serializedVersion: 4 + internalIDToNameTable: + - first: + 213: 21300000 + second: forest-2_0 + - first: + 213: 21300002 + second: forest-2_1 + - first: + 213: 21300004 + second: forest-2_2 + - first: + 213: 21300006 + second: forest-2_3 + - first: + 213: 21300008 + second: forest-2_4 + - first: + 213: 21300010 + second: forest-2_5 + - first: + 213: 21300012 + second: forest-2_6 + - first: + 213: 21300014 + second: forest-2_7 + - first: + 213: 21300016 + second: forest-2_8 + - first: + 213: 21300018 + second: forest-2_9 + - first: + 213: 21300020 + second: forest-2_10 + - first: + 213: 21300022 + second: forest-2_11 + - first: + 213: 21300024 + second: forest-2_12 + - first: + 213: 21300026 + second: forest-2_13 + - first: + 213: 21300028 + second: forest-2_14 + - first: + 213: 21300030 + second: forest-2_15 + - first: + 213: 21300032 + second: forest-2_16 + externalObjects: {} + serializedVersion: 12 mipmaps: mipMapMode: 0 enableMipMap: 0 @@ -27,6 +62,8 @@ TextureImporter: linearTexture: 0 fadeOut: 0 borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: @@ -35,6 +72,10 @@ TextureImporter: heightScale: 0.25 normalMapFilter: 0 isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -42,10 +83,13 @@ TextureImporter: textureFormat: -1 maxTextureSize: 1024 textureSettings: - filterMode: -1 + serializedVersion: 2 + filterMode: 1 aniso: 1 - mipBias: -1 - wrapMode: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 nPOTScale: 0 lightmap: 0 compressionQuality: 50 @@ -54,25 +98,60 @@ TextureImporter: spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spriteBorder: {x: 0, y: 0, z: 0, w: 0} spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 8 textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + cookieLightType: 1 platformSettings: - - buildTarget: DefaultTexturePlatform + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Server maxTextureSize: 1024 + resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 spriteSheet: serializedVersion: 2 sprites: @@ -88,7 +167,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 02305410000000000800000000000000 + internalID: 21300000 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-2_1 rect: @@ -101,7 +188,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 22305410000000000800000000000000 + internalID: 21300002 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-2_2 rect: @@ -114,7 +209,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 42305410000000000800000000000000 + internalID: 21300004 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-2_3 rect: @@ -127,7 +230,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 62305410000000000800000000000000 + internalID: 21300006 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-2_4 rect: @@ -140,7 +251,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 82305410000000000800000000000000 + internalID: 21300008 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-2_5 rect: @@ -153,7 +272,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: a2305410000000000800000000000000 + internalID: 21300010 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-2_6 rect: @@ -166,7 +293,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: c2305410000000000800000000000000 + internalID: 21300012 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-2_7 rect: @@ -179,7 +314,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: e2305410000000000800000000000000 + internalID: 21300014 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-2_8 rect: @@ -192,7 +335,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 03305410000000000800000000000000 + internalID: 21300016 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-2_9 rect: @@ -205,7 +356,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 23305410000000000800000000000000 + internalID: 21300018 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-2_10 rect: @@ -218,7 +377,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 43305410000000000800000000000000 + internalID: 21300020 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-2_11 rect: @@ -231,7 +398,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 63305410000000000800000000000000 + internalID: 21300022 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-2_12 rect: @@ -244,7 +419,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 83305410000000000800000000000000 + internalID: 21300024 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-2_13 rect: @@ -257,7 +440,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: a3305410000000000800000000000000 + internalID: 21300026 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-2_14 rect: @@ -270,7 +461,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: c3305410000000000800000000000000 + internalID: 21300028 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-2_15 rect: @@ -283,7 +482,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: e3305410000000000800000000000000 + internalID: 21300030 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: forest-2_16 rect: @@ -296,9 +503,46 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 04305410000000000800000000000000 + internalID: 21300032 + vertices: [] + indices: + edges: [] + weights: [] outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: + forest-2_0: 21300000 + forest-2_1: 21300002 + forest-2_10: 21300020 + forest-2_11: 21300022 + forest-2_12: 21300024 + forest-2_13: 21300026 + forest-2_14: 21300028 + forest-2_15: 21300030 + forest-2_16: 21300032 + forest-2_2: 21300004 + forest-2_3: 21300006 + forest-2_4: 21300008 + forest-2_5: 21300010 + forest-2_6: 21300012 + forest-2_7: 21300014 + forest-2_8: 21300016 + forest-2_9: 21300018 spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Sprites/slingshot.png.meta b/Assets/Sprites/slingshot.png.meta index a7d5e0c..f3eef47 100644 --- a/Assets/Sprites/slingshot.png.meta +++ b/Assets/Sprites/slingshot.png.meta @@ -1,12 +1,15 @@ fileFormatVersion: 2 guid: fc9f4d28cb364644bbf7a65e876a25d4 -timeCreated: 1434730943 -licenseType: Free TextureImporter: - fileIDToRecycleName: - 21300000: slingshot_0 - 21300002: slingshot_1 - serializedVersion: 4 + internalIDToNameTable: + - first: + 213: 21300000 + second: slingshot_0 + - first: + 213: 21300002 + second: slingshot_1 + externalObjects: {} + serializedVersion: 12 mipmaps: mipMapMode: 0 enableMipMap: 1 @@ -14,6 +17,8 @@ TextureImporter: linearTexture: 0 fadeOut: 0 borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: @@ -22,6 +27,10 @@ TextureImporter: heightScale: 0.25 normalMapFilter: 0 isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -29,10 +38,13 @@ TextureImporter: textureFormat: -1 maxTextureSize: 2048 textureSettings: - filterMode: -1 + serializedVersion: 2 + filterMode: 1 aniso: 16 - mipBias: -1 - wrapMode: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 nPOTScale: 0 lightmap: 0 compressionQuality: 50 @@ -41,25 +53,60 @@ TextureImporter: spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spriteBorder: {x: 0, y: 0, z: 0, w: 0} spritePixelsToUnits: 150 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 8 textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + cookieLightType: 1 platformSettings: - - buildTarget: DefaultTexturePlatform + - 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: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Server maxTextureSize: 2048 + resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 spriteSheet: serializedVersion: 2 sprites: @@ -75,7 +122,15 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 02305410000000000800000000000000 + internalID: 21300000 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: slingshot_1 rect: @@ -88,9 +143,31 @@ TextureImporter: pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 22305410000000000800000000000000 + internalID: 21300002 + vertices: [] + indices: + edges: [] + weights: [] outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: + slingshot_0: 21300000 + slingshot_1: 21300002 spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Sprites/small_helmet_pig_sprites_by_chinzapep-d57z4bs.png.meta b/Assets/Sprites/small_helmet_pig_sprites_by_chinzapep-d57z4bs.png.meta index 13769e7..0333a38 100644 --- a/Assets/Sprites/small_helmet_pig_sprites_by_chinzapep-d57z4bs.png.meta +++ b/Assets/Sprites/small_helmet_pig_sprites_by_chinzapep-d57z4bs.png.meta @@ -1,19 +1,36 @@ fileFormatVersion: 2 guid: 48b9a7d0cd9d52247a469bfd3e3e3c0a -timeCreated: 1434729966 -licenseType: Free TextureImporter: - fileIDToRecycleName: - 21300000: small_helmet_pig_sprites_by_chinzapep-d57z4bs_0 - 21300002: small_helmet_pig_sprites_by_chinzapep-d57z4bs_1 - 21300004: small_helmet_pig_sprites_by_chinzapep-d57z4bs_2 - 21300006: small_helmet_pig_sprites_by_chinzapep-d57z4bs_3 - 21300008: small_helmet_pig_sprites_by_chinzapep-d57z4bs_4 - 21300010: small_helmet_pig_sprites_by_chinzapep-d57z4bs_5 - 21300012: small_helmet_pig_sprites_by_chinzapep-d57z4bs_6 - 21300014: small_helmet_pig_sprites_by_chinzapep-d57z4bs_7 - 21300016: small_helmet_pig_sprites_by_chinzapep-d57z4bs_8 - serializedVersion: 4 + internalIDToNameTable: + - first: + 213: 21300000 + second: small_helmet_pig_sprites_by_chinzapep-d57z4bs_0 + - first: + 213: 21300002 + second: small_helmet_pig_sprites_by_chinzapep-d57z4bs_1 + - first: + 213: 21300004 + second: small_helmet_pig_sprites_by_chinzapep-d57z4bs_2 + - first: + 213: 21300006 + second: small_helmet_pig_sprites_by_chinzapep-d57z4bs_3 + - first: + 213: 21300008 + second: small_helmet_pig_sprites_by_chinzapep-d57z4bs_4 + - first: + 213: 21300010 + second: small_helmet_pig_sprites_by_chinzapep-d57z4bs_5 + - first: + 213: 21300012 + second: small_helmet_pig_sprites_by_chinzapep-d57z4bs_6 + - first: + 213: 21300014 + second: small_helmet_pig_sprites_by_chinzapep-d57z4bs_7 + - first: + 213: 21300016 + second: small_helmet_pig_sprites_by_chinzapep-d57z4bs_8 + externalObjects: {} + serializedVersion: 12 mipmaps: mipMapMode: 0 enableMipMap: 1 @@ -21,6 +38,8 @@ TextureImporter: linearTexture: 0 fadeOut: 0 borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: @@ -29,6 +48,10 @@ TextureImporter: heightScale: 0.25 normalMapFilter: 0 isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -36,10 +59,13 @@ TextureImporter: textureFormat: -3 maxTextureSize: 2048 textureSettings: - filterMode: -1 + serializedVersion: 2 + filterMode: 1 aniso: 16 - mipBias: -1 - wrapMode: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 nPOTScale: 0 lightmap: 0 compressionQuality: 50 @@ -48,25 +74,60 @@ TextureImporter: spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spriteBorder: {x: 0, y: 0, z: 0, w: 0} spritePixelsToUnits: 60 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 8 textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + cookieLightType: 1 platformSettings: - - buildTarget: DefaultTexturePlatform + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Server maxTextureSize: 2048 + resizeAlgorithm: 0 textureFormat: -1 textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 spriteSheet: serializedVersion: 2 sprites: @@ -82,7 +143,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 02305410000000000800000000000000 + internalID: 21300000 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: small_helmet_pig_sprites_by_chinzapep-d57z4bs_1 rect: @@ -95,7 +164,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 22305410000000000800000000000000 + internalID: 21300002 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: small_helmet_pig_sprites_by_chinzapep-d57z4bs_2 rect: @@ -108,7 +185,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 42305410000000000800000000000000 + internalID: 21300004 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: small_helmet_pig_sprites_by_chinzapep-d57z4bs_3 rect: @@ -121,7 +206,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 62305410000000000800000000000000 + internalID: 21300006 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: small_helmet_pig_sprites_by_chinzapep-d57z4bs_4 rect: @@ -134,7 +227,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 82305410000000000800000000000000 + internalID: 21300008 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: small_helmet_pig_sprites_by_chinzapep-d57z4bs_5 rect: @@ -147,7 +248,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: a2305410000000000800000000000000 + internalID: 21300010 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: small_helmet_pig_sprites_by_chinzapep-d57z4bs_6 rect: @@ -160,7 +269,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: c2305410000000000800000000000000 + internalID: 21300012 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: small_helmet_pig_sprites_by_chinzapep-d57z4bs_7 rect: @@ -173,7 +290,15 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: e2305410000000000800000000000000 + internalID: 21300014 + vertices: [] + indices: + edges: [] + weights: [] - serializedVersion: 2 name: small_helmet_pig_sprites_by_chinzapep-d57z4bs_8 rect: @@ -186,9 +311,38 @@ TextureImporter: pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] + physicsShape: [] tessellationDetail: -1 + bones: [] + spriteID: 03305410000000000800000000000000 + internalID: 21300016 + vertices: [] + indices: + edges: [] + weights: [] outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: + small_helmet_pig_sprites_by_chinzapep-d57z4bs_0: 21300000 + small_helmet_pig_sprites_by_chinzapep-d57z4bs_1: 21300002 + small_helmet_pig_sprites_by_chinzapep-d57z4bs_2: 21300004 + small_helmet_pig_sprites_by_chinzapep-d57z4bs_3: 21300006 + small_helmet_pig_sprites_by_chinzapep-d57z4bs_4: 21300008 + small_helmet_pig_sprites_by_chinzapep-d57z4bs_5: 21300010 + small_helmet_pig_sprites_by_chinzapep-d57z4bs_6: 21300012 + small_helmet_pig_sprites_by_chinzapep-d57z4bs_7: 21300014 + small_helmet_pig_sprites_by_chinzapep-d57z4bs_8: 21300016 spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Logs/AssetImportWorker0.log b/Logs/AssetImportWorker0.log new file mode 100644 index 0000000..0eb0d36 --- /dev/null +++ b/Logs/AssetImportWorker0.log @@ -0,0 +1,227 @@ +Using pre-set license +Built from '2021.3/release' branch; Version is '2021.3.27f1 (ca3ffb99bcc6) revision 13254651'; Using compiler version '192829333'; Build Type 'Release' +OS: 'Windows 11 (10.0.26100) 64bit Enterprise' Language: 'en' Physical Memory: 65208 MB +BatchMode: 1, IsHumanControllingUs: 0, StartBugReporterOnCrash: 0, Is64bit: 1, IsPro: 1 + +COMMAND LINE ARGUMENTS: +C:\Program Files\Unity\Hub\Editor\2021.3.27f1\Editor\Unity.exe +-adb2 +-batchMode +-noUpm +-name +AssetImportWorker0 +-projectPath +C:/projects/AngryBirdsStyleGame +-logFile +Logs/AssetImportWorker0.log +-srvPort +55983 +Successfully changed project path to: C:/projects/AngryBirdsStyleGame +C:/projects/AngryBirdsStyleGame +[UnityMemory] Configuration Parameters - Can be set up in boot.config + "memorysetup-bucket-allocator-granularity=16" + "memorysetup-bucket-allocator-bucket-count=8" + "memorysetup-bucket-allocator-block-size=33554432" + "memorysetup-bucket-allocator-block-count=8" + "memorysetup-main-allocator-block-size=16777216" + "memorysetup-thread-allocator-block-size=16777216" + "memorysetup-gfx-main-allocator-block-size=16777216" + "memorysetup-gfx-thread-allocator-block-size=16777216" + "memorysetup-cache-allocator-block-size=4194304" + "memorysetup-typetree-allocator-block-size=2097152" + "memorysetup-profiler-bucket-allocator-granularity=16" + "memorysetup-profiler-bucket-allocator-bucket-count=8" + "memorysetup-profiler-bucket-allocator-block-size=33554432" + "memorysetup-profiler-bucket-allocator-block-count=8" + "memorysetup-profiler-allocator-block-size=16777216" + "memorysetup-profiler-editor-allocator-block-size=1048576" + "memorysetup-temp-allocator-size-main=16777216" + "memorysetup-job-temp-allocator-block-size=2097152" + "memorysetup-job-temp-allocator-block-size-background=1048576" + "memorysetup-job-temp-allocator-reduction-small-platforms=262144" + "memorysetup-temp-allocator-size-background-worker=32768" + "memorysetup-temp-allocator-size-job-worker=262144" + "memorysetup-temp-allocator-size-preload-manager=33554432" + "memorysetup-temp-allocator-size-nav-mesh-worker=65536" + "memorysetup-temp-allocator-size-audio-worker=65536" + "memorysetup-temp-allocator-size-cloud-worker=32768" + "memorysetup-temp-allocator-size-gi-baking-worker=262144" + "memorysetup-temp-allocator-size-gfx=262144" +Player connection [28976] Host "[IP] 10.159.26.240 [Port] 0 [Flags] 2 [Guid] 1307178359 [EditorId] 1307178359 [Version] 1048832 [Id] WindowsEditor(7,digkanatdesktop) [Debug] 1 [PackageName] WindowsEditor [ProjectName] Editor" joined multi-casting on [225.0.0.222:54997]... + +Player connection [28976] Host "[IP] 10.159.26.240 [Port] 0 [Flags] 2 [Guid] 1307178359 [EditorId] 1307178359 [Version] 1048832 [Id] WindowsEditor(7,digkanatdesktop) [Debug] 1 [PackageName] WindowsEditor [ProjectName] Editor" joined alternative multi-casting on [225.0.0.222:34997]... + +Refreshing native plugins compatible for Editor in 78.54 ms, found 2 plugins. +Preloading 0 native plugins for Editor in 0.00 ms. +Initialize engine version: 2021.3.27f1 (ca3ffb99bcc6) +[Subsystems] Discovering subsystems at path C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/Resources/UnitySubsystems +[Subsystems] Discovering subsystems at path C:/projects/AngryBirdsStyleGame/Assets +GfxDevice: creating device client; threaded=0; jobified=0 +Direct3D: + Version: Direct3D 11.0 [level 11.1] + Renderer: NVIDIA Quadro P620 (ID=0x1cb6) + Vendor: NVIDIA + VRAM: 1962 MB + Driver: 32.0.15.5612 +Initialize mono +Mono path[0] = 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/Managed' +Mono path[1] = 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/MonoBleedingEdge/lib/mono/unityjit-win32' +Mono config path = 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/MonoBleedingEdge/etc' +Using monoOptions --debugger-agent=transport=dt_socket,embedding=1,server=y,suspend=n,address=127.0.0.1:56768 +Begin MonoManager ReloadAssembly +Registering precompiled unity dll's ... +Register platform support module: C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines/WindowsStandaloneSupport/UnityEditor.WindowsStandalone.Extensions.dll +Register platform support module: C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines/LinuxStandaloneSupport/UnityEditor.LinuxStandalone.Extensions.dll +Registered in 0.007698 seconds. +Native extension for LinuxStandalone target not found +Native extension for WindowsStandalone target not found +Refreshing native plugins compatible for Editor in 37.90 ms, found 2 plugins. +Preloading 0 native plugins for Editor in 0.00 ms. +Mono: successfully reloaded assembly +- Completed reload, in 1.133 seconds +Domain Reload Profiling: + ReloadAssembly (1134ms) + BeginReloadAssembly (147ms) + ExecutionOrderSort (0ms) + DisableScriptedObjects (0ms) + BackupInstance (0ms) + ReleaseScriptingObjects (0ms) + CreateAndSetChildDomain (1ms) + EndReloadAssembly (695ms) + LoadAssemblies (140ms) + RebuildTransferFunctionScriptingTraits (0ms) + SetupTypeCache (336ms) + ReleaseScriptCaches (0ms) + RebuildScriptCaches (32ms) + SetupLoadedEditorAssemblies (266ms) + LogAssemblyErrors (0ms) + InitializePlatformSupportModulesInManaged (13ms) + SetLoadedEditorAssemblies (0ms) + RefreshPlugins (38ms) + BeforeProcessingInitializeOnLoad (1ms) + ProcessInitializeOnLoadAttributes (138ms) + ProcessInitializeOnLoadMethodAttributes (75ms) + AfterProcessingInitializeOnLoad (0ms) + EditorAssembliesLoaded (0ms) + ExecutionOrderSort2 (0ms) + AwakeInstancesAfterBackupRestoration (0ms) +Platform modules already initialized, skipping +Registering precompiled user dll's ... +Registered in 0.007594 seconds. +Begin MonoManager ReloadAssembly +Symbol file LoadedFromMemory is not a mono symbol file +Native extension for LinuxStandalone target not found +Native extension for WindowsStandalone target not found +Refreshing native plugins compatible for Editor in 0.67 ms, found 2 plugins. +Preloading 0 native plugins for Editor in 0.00 ms. +Mono: successfully reloaded assembly +- Completed reload, in 1.377 seconds +Domain Reload Profiling: + ReloadAssembly (1379ms) + BeginReloadAssembly (184ms) + ExecutionOrderSort (0ms) + DisableScriptedObjects (6ms) + BackupInstance (0ms) + ReleaseScriptingObjects (0ms) + CreateAndSetChildDomain (42ms) + EndReloadAssembly (1074ms) + LoadAssemblies (141ms) + RebuildTransferFunctionScriptingTraits (0ms) + SetupTypeCache (264ms) + ReleaseScriptCaches (1ms) + RebuildScriptCaches (47ms) + SetupLoadedEditorAssemblies (576ms) + LogAssemblyErrors (0ms) + InitializePlatformSupportModulesInManaged (10ms) + SetLoadedEditorAssemblies (0ms) + RefreshPlugins (1ms) + BeforeProcessingInitializeOnLoad (81ms) + ProcessInitializeOnLoadAttributes (265ms) + ProcessInitializeOnLoadMethodAttributes (208ms) + AfterProcessingInitializeOnLoad (10ms) + EditorAssembliesLoaded (0ms) + ExecutionOrderSort2 (0ms) + AwakeInstancesAfterBackupRestoration (8ms) +Platform modules already initialized, skipping +======================================================================== +Worker process is ready to serve import requests +Launched and connected shader compiler UnityShaderCompiler.exe after 0.07 seconds +Refreshing native plugins compatible for Editor in 0.94 ms, found 2 plugins. +Preloading 0 native plugins for Editor in 0.00 ms. +Unloading 2290 Unused Serialized files (Serialized files now loaded: 0) +Unloading 52 unused Assets / (46.3 KB). Loaded Objects now: 2736. +Memory consumption went from 87.9 MB to 87.9 MB. +Total: 7.715000 ms (FindLiveObjects: 0.284500 ms CreateObjectMapping: 0.224600 ms MarkObjects: 7.110100 ms DeleteObjects: 0.094500 ms) + +AssetImportParameters requested are different than current active one (requested -> active): + custom:video-decoder-ogg-theora: a1e56fd34408186e4bbccfd4996cb3dc -> + custom:container-muxer-webm: aa71ff27fc2769a1b78a27578f13a17b -> + custom:container-demuxer-webm: 4f35f7cbe854078d1ac9338744f61a02 -> + custom:video-encoder-webm-vp8: eb34c28f22e8b96e1ab97ce403110664 -> + custom:audio-encoder-webm-vorbis: bf7c407c2cedff20999df2af8eb42d56 -> + custom:framework-win-MediaFoundation: 216162199b28c13a410421893ffa2e32 -> + custom:container-demuxer-ogg: 62fdf1f143b41e24485cea50d1cbac27 -> + custom:video-decoder-webm-vp8: 9c59270c3fd7afecdb556c50c9e8de78 -> + custom:audio-decoder-ogg-vorbis: bf7c407c2cedff20999df2af8eb42d56 -> +======================================================================== +Received Prepare +Registering precompiled user dll's ... +Registered in 0.014648 seconds. +Begin MonoManager ReloadAssembly +Symbol file LoadedFromMemory is not a mono symbol file +Native extension for LinuxStandalone target not found +Native extension for WindowsStandalone target not found +Refreshing native plugins compatible for Editor in 0.71 ms, found 2 plugins. +Preloading 0 native plugins for Editor in 0.00 ms. +Mono: successfully reloaded assembly +- Completed reload, in 1.149 seconds +Domain Reload Profiling: + ReloadAssembly (1149ms) + BeginReloadAssembly (198ms) + ExecutionOrderSort (0ms) + DisableScriptedObjects (12ms) + BackupInstance (0ms) + ReleaseScriptingObjects (0ms) + CreateAndSetChildDomain (57ms) + EndReloadAssembly (847ms) + LoadAssemblies (132ms) + RebuildTransferFunctionScriptingTraits (0ms) + SetupTypeCache (186ms) + ReleaseScriptCaches (1ms) + RebuildScriptCaches (39ms) + SetupLoadedEditorAssemblies (466ms) + LogAssemblyErrors (0ms) + InitializePlatformSupportModulesInManaged (18ms) + SetLoadedEditorAssemblies (1ms) + RefreshPlugins (1ms) + BeforeProcessingInitializeOnLoad (66ms) + ProcessInitializeOnLoadAttributes (219ms) + ProcessInitializeOnLoadMethodAttributes (153ms) + AfterProcessingInitializeOnLoad (9ms) + EditorAssembliesLoaded (0ms) + ExecutionOrderSort2 (0ms) + AwakeInstancesAfterBackupRestoration (9ms) +Platform modules already initialized, skipping +Refreshing native plugins compatible for Editor in 5.88 ms, found 2 plugins. +Preloading 0 native plugins for Editor in 0.00 ms. +Unloading 2284 Unused Serialized files (Serialized files now loaded: 0) +Unloading 41 unused Assets / (21.9 KB). Loaded Objects now: 2739. +Memory consumption went from 87.5 MB to 87.5 MB. +Total: 7.478700 ms (FindLiveObjects: 0.232100 ms CreateObjectMapping: 0.081800 ms MarkObjects: 7.133900 ms DeleteObjects: 0.029600 ms) + +AssetImportParameters requested are different than current active one (requested -> active): + custom:video-decoder-ogg-theora: a1e56fd34408186e4bbccfd4996cb3dc -> + custom:container-muxer-webm: aa71ff27fc2769a1b78a27578f13a17b -> + custom:container-demuxer-webm: 4f35f7cbe854078d1ac9338744f61a02 -> + custom:video-encoder-webm-vp8: eb34c28f22e8b96e1ab97ce403110664 -> + custom:audio-encoder-webm-vorbis: bf7c407c2cedff20999df2af8eb42d56 -> + custom:framework-win-MediaFoundation: 216162199b28c13a410421893ffa2e32 -> + custom:container-demuxer-ogg: 62fdf1f143b41e24485cea50d1cbac27 -> + custom:video-decoder-webm-vp8: 9c59270c3fd7afecdb556c50c9e8de78 -> + custom:audio-decoder-ogg-vorbis: bf7c407c2cedff20999df2af8eb42d56 -> +======================================================================== +Received Import Request. + Time since last request: 2755.341430 seconds. + path: Assets/Scenes/game.unity + artifactKey: Guid(4a326b4413a8cec44b3aa2d59ea66163) Importer(815301076,1909f56bfc062723c751e8b465ee728b) +Start importing Assets/Scenes/game.unity using Guid(4a326b4413a8cec44b3aa2d59ea66163) Importer(815301076,1909f56bfc062723c751e8b465ee728b) -> (artifact id: 'c825ec065f823bec00a01dc5e84729b3') in 0.007919 seconds diff --git a/Logs/AssetImportWorker1.log b/Logs/AssetImportWorker1.log new file mode 100644 index 0000000..5dc6277 --- /dev/null +++ b/Logs/AssetImportWorker1.log @@ -0,0 +1,221 @@ +Using pre-set license +Built from '2021.3/release' branch; Version is '2021.3.27f1 (ca3ffb99bcc6) revision 13254651'; Using compiler version '192829333'; Build Type 'Release' +OS: 'Windows 11 (10.0.26100) 64bit Enterprise' Language: 'en' Physical Memory: 65208 MB +BatchMode: 1, IsHumanControllingUs: 0, StartBugReporterOnCrash: 0, Is64bit: 1, IsPro: 1 + +COMMAND LINE ARGUMENTS: +C:\Program Files\Unity\Hub\Editor\2021.3.27f1\Editor\Unity.exe +-adb2 +-batchMode +-noUpm +-name +AssetImportWorker1 +-projectPath +C:/projects/AngryBirdsStyleGame +-logFile +Logs/AssetImportWorker1.log +-srvPort +55983 +Successfully changed project path to: C:/projects/AngryBirdsStyleGame +C:/projects/AngryBirdsStyleGame +[UnityMemory] Configuration Parameters - Can be set up in boot.config + "memorysetup-bucket-allocator-granularity=16" + "memorysetup-bucket-allocator-bucket-count=8" + "memorysetup-bucket-allocator-block-size=33554432" + "memorysetup-bucket-allocator-block-count=8" + "memorysetup-main-allocator-block-size=16777216" + "memorysetup-thread-allocator-block-size=16777216" + "memorysetup-gfx-main-allocator-block-size=16777216" + "memorysetup-gfx-thread-allocator-block-size=16777216" + "memorysetup-cache-allocator-block-size=4194304" + "memorysetup-typetree-allocator-block-size=2097152" + "memorysetup-profiler-bucket-allocator-granularity=16" + "memorysetup-profiler-bucket-allocator-bucket-count=8" + "memorysetup-profiler-bucket-allocator-block-size=33554432" + "memorysetup-profiler-bucket-allocator-block-count=8" + "memorysetup-profiler-allocator-block-size=16777216" + "memorysetup-profiler-editor-allocator-block-size=1048576" + "memorysetup-temp-allocator-size-main=16777216" + "memorysetup-job-temp-allocator-block-size=2097152" + "memorysetup-job-temp-allocator-block-size-background=1048576" + "memorysetup-job-temp-allocator-reduction-small-platforms=262144" + "memorysetup-temp-allocator-size-background-worker=32768" + "memorysetup-temp-allocator-size-job-worker=262144" + "memorysetup-temp-allocator-size-preload-manager=33554432" + "memorysetup-temp-allocator-size-nav-mesh-worker=65536" + "memorysetup-temp-allocator-size-audio-worker=65536" + "memorysetup-temp-allocator-size-cloud-worker=32768" + "memorysetup-temp-allocator-size-gi-baking-worker=262144" + "memorysetup-temp-allocator-size-gfx=262144" +Player connection [5076] Host "[IP] 10.159.26.240 [Port] 0 [Flags] 2 [Guid] 2283001375 [EditorId] 2283001375 [Version] 1048832 [Id] WindowsEditor(7,digkanatdesktop) [Debug] 1 [PackageName] WindowsEditor [ProjectName] Editor" joined multi-casting on [225.0.0.222:54997]... + +Player connection [5076] Host "[IP] 10.159.26.240 [Port] 0 [Flags] 2 [Guid] 2283001375 [EditorId] 2283001375 [Version] 1048832 [Id] WindowsEditor(7,digkanatdesktop) [Debug] 1 [PackageName] WindowsEditor [ProjectName] Editor" joined alternative multi-casting on [225.0.0.222:34997]... + +Refreshing native plugins compatible for Editor in 81.86 ms, found 2 plugins. +Preloading 0 native plugins for Editor in 0.00 ms. +Initialize engine version: 2021.3.27f1 (ca3ffb99bcc6) +[Subsystems] Discovering subsystems at path C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/Resources/UnitySubsystems +[Subsystems] Discovering subsystems at path C:/projects/AngryBirdsStyleGame/Assets +GfxDevice: creating device client; threaded=0; jobified=0 +Direct3D: + Version: Direct3D 11.0 [level 11.1] + Renderer: NVIDIA Quadro P620 (ID=0x1cb6) + Vendor: NVIDIA + VRAM: 1962 MB + Driver: 32.0.15.5612 +Initialize mono +Mono path[0] = 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/Managed' +Mono path[1] = 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/MonoBleedingEdge/lib/mono/unityjit-win32' +Mono config path = 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/MonoBleedingEdge/etc' +Using monoOptions --debugger-agent=transport=dt_socket,embedding=1,server=y,suspend=n,address=127.0.0.1:56596 +Begin MonoManager ReloadAssembly +Registering precompiled unity dll's ... +Register platform support module: C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines/WindowsStandaloneSupport/UnityEditor.WindowsStandalone.Extensions.dll +Register platform support module: C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines/LinuxStandaloneSupport/UnityEditor.LinuxStandalone.Extensions.dll +Registered in 0.007924 seconds. +Native extension for LinuxStandalone target not found +Native extension for WindowsStandalone target not found +Refreshing native plugins compatible for Editor in 38.01 ms, found 2 plugins. +Preloading 0 native plugins for Editor in 0.00 ms. +Mono: successfully reloaded assembly +- Completed reload, in 1.179 seconds +Domain Reload Profiling: + ReloadAssembly (1179ms) + BeginReloadAssembly (98ms) + ExecutionOrderSort (0ms) + DisableScriptedObjects (0ms) + BackupInstance (0ms) + ReleaseScriptingObjects (0ms) + CreateAndSetChildDomain (1ms) + EndReloadAssembly (743ms) + LoadAssemblies (96ms) + RebuildTransferFunctionScriptingTraits (0ms) + SetupTypeCache (346ms) + ReleaseScriptCaches (0ms) + RebuildScriptCaches (33ms) + SetupLoadedEditorAssemblies (304ms) + LogAssemblyErrors (0ms) + InitializePlatformSupportModulesInManaged (13ms) + SetLoadedEditorAssemblies (0ms) + RefreshPlugins (38ms) + BeforeProcessingInitializeOnLoad (2ms) + ProcessInitializeOnLoadAttributes (188ms) + ProcessInitializeOnLoadMethodAttributes (62ms) + AfterProcessingInitializeOnLoad (0ms) + EditorAssembliesLoaded (0ms) + ExecutionOrderSort2 (0ms) + AwakeInstancesAfterBackupRestoration (0ms) +Platform modules already initialized, skipping +Registering precompiled user dll's ... +Registered in 0.008167 seconds. +Begin MonoManager ReloadAssembly +Symbol file LoadedFromMemory is not a mono symbol file +Native extension for LinuxStandalone target not found +Native extension for WindowsStandalone target not found +Refreshing native plugins compatible for Editor in 0.66 ms, found 2 plugins. +Preloading 0 native plugins for Editor in 0.00 ms. +Mono: successfully reloaded assembly +- Completed reload, in 1.296 seconds +Domain Reload Profiling: + ReloadAssembly (1297ms) + BeginReloadAssembly (153ms) + ExecutionOrderSort (0ms) + DisableScriptedObjects (6ms) + BackupInstance (0ms) + ReleaseScriptingObjects (0ms) + CreateAndSetChildDomain (38ms) + EndReloadAssembly (989ms) + LoadAssemblies (123ms) + RebuildTransferFunctionScriptingTraits (0ms) + SetupTypeCache (286ms) + ReleaseScriptCaches (1ms) + RebuildScriptCaches (47ms) + SetupLoadedEditorAssemblies (490ms) + LogAssemblyErrors (0ms) + InitializePlatformSupportModulesInManaged (21ms) + SetLoadedEditorAssemblies (1ms) + RefreshPlugins (1ms) + BeforeProcessingInitializeOnLoad (81ms) + ProcessInitializeOnLoadAttributes (233ms) + ProcessInitializeOnLoadMethodAttributes (145ms) + AfterProcessingInitializeOnLoad (9ms) + EditorAssembliesLoaded (0ms) + ExecutionOrderSort2 (0ms) + AwakeInstancesAfterBackupRestoration (8ms) +Platform modules already initialized, skipping +======================================================================== +Worker process is ready to serve import requests +Launched and connected shader compiler UnityShaderCompiler.exe after 0.07 seconds +Refreshing native plugins compatible for Editor in 0.62 ms, found 2 plugins. +Preloading 0 native plugins for Editor in 0.00 ms. +Unloading 2290 Unused Serialized files (Serialized files now loaded: 0) +Unloading 52 unused Assets / (46.3 KB). Loaded Objects now: 2736. +Memory consumption went from 87.9 MB to 87.9 MB. +Total: 6.965100 ms (FindLiveObjects: 0.262600 ms CreateObjectMapping: 0.094200 ms MarkObjects: 6.511300 ms DeleteObjects: 0.095100 ms) + +AssetImportParameters requested are different than current active one (requested -> active): + custom:video-decoder-ogg-theora: a1e56fd34408186e4bbccfd4996cb3dc -> + custom:container-muxer-webm: aa71ff27fc2769a1b78a27578f13a17b -> + custom:container-demuxer-webm: 4f35f7cbe854078d1ac9338744f61a02 -> + custom:video-encoder-webm-vp8: eb34c28f22e8b96e1ab97ce403110664 -> + custom:audio-encoder-webm-vorbis: bf7c407c2cedff20999df2af8eb42d56 -> + custom:framework-win-MediaFoundation: 216162199b28c13a410421893ffa2e32 -> + custom:container-demuxer-ogg: 62fdf1f143b41e24485cea50d1cbac27 -> + custom:video-decoder-webm-vp8: 9c59270c3fd7afecdb556c50c9e8de78 -> + custom:audio-decoder-ogg-vorbis: bf7c407c2cedff20999df2af8eb42d56 -> +======================================================================== +Received Prepare +Registering precompiled user dll's ... +Registered in 0.012025 seconds. +Begin MonoManager ReloadAssembly +Symbol file LoadedFromMemory is not a mono symbol file +Native extension for LinuxStandalone target not found +Native extension for WindowsStandalone target not found +Refreshing native plugins compatible for Editor in 0.71 ms, found 2 plugins. +Preloading 0 native plugins for Editor in 0.00 ms. +Mono: successfully reloaded assembly +- Completed reload, in 1.210 seconds +Domain Reload Profiling: + ReloadAssembly (1211ms) + BeginReloadAssembly (156ms) + ExecutionOrderSort (0ms) + DisableScriptedObjects (7ms) + BackupInstance (0ms) + ReleaseScriptingObjects (0ms) + CreateAndSetChildDomain (47ms) + EndReloadAssembly (943ms) + LoadAssemblies (113ms) + RebuildTransferFunctionScriptingTraits (0ms) + SetupTypeCache (255ms) + ReleaseScriptCaches (1ms) + RebuildScriptCaches (56ms) + SetupLoadedEditorAssemblies (470ms) + LogAssemblyErrors (0ms) + InitializePlatformSupportModulesInManaged (18ms) + SetLoadedEditorAssemblies (1ms) + RefreshPlugins (1ms) + BeforeProcessingInitializeOnLoad (75ms) + ProcessInitializeOnLoadAttributes (213ms) + ProcessInitializeOnLoadMethodAttributes (152ms) + AfterProcessingInitializeOnLoad (9ms) + EditorAssembliesLoaded (0ms) + ExecutionOrderSort2 (0ms) + AwakeInstancesAfterBackupRestoration (9ms) +Platform modules already initialized, skipping +Refreshing native plugins compatible for Editor in 5.37 ms, found 2 plugins. +Preloading 0 native plugins for Editor in 0.00 ms. +Unloading 2284 Unused Serialized files (Serialized files now loaded: 0) +Unloading 41 unused Assets / (22.0 KB). Loaded Objects now: 2739. +Memory consumption went from 87.5 MB to 87.5 MB. +Total: 7.496300 ms (FindLiveObjects: 0.241900 ms CreateObjectMapping: 0.087300 ms MarkObjects: 7.134200 ms DeleteObjects: 0.031800 ms) + +AssetImportParameters requested are different than current active one (requested -> active): + custom:video-decoder-ogg-theora: a1e56fd34408186e4bbccfd4996cb3dc -> + custom:container-muxer-webm: aa71ff27fc2769a1b78a27578f13a17b -> + custom:container-demuxer-webm: 4f35f7cbe854078d1ac9338744f61a02 -> + custom:video-encoder-webm-vp8: eb34c28f22e8b96e1ab97ce403110664 -> + custom:audio-encoder-webm-vorbis: bf7c407c2cedff20999df2af8eb42d56 -> + custom:framework-win-MediaFoundation: 216162199b28c13a410421893ffa2e32 -> + custom:container-demuxer-ogg: 62fdf1f143b41e24485cea50d1cbac27 -> + custom:video-decoder-webm-vp8: 9c59270c3fd7afecdb556c50c9e8de78 -> + custom:audio-decoder-ogg-vorbis: bf7c407c2cedff20999df2af8eb42d56 -> diff --git a/Logs/Packages-Update.log b/Logs/Packages-Update.log new file mode 100644 index 0000000..6ef7c63 --- /dev/null +++ b/Logs/Packages-Update.log @@ -0,0 +1,25 @@ + +=== Fri Nov 22 12:04:12 2024 + +Packages were changed. +Update Mode: updateDependencies + +The following packages were added: + com.unity.2d.sprite@1.0.0 + com.unity.2d.tilemap@1.0.0 + com.unity.collab-proxy@2.0.4 + com.unity.ide.rider@3.0.21 + com.unity.ide.visualstudio@2.0.18 + com.unity.ide.vscode@1.2.5 + com.unity.modules.androidjni@1.0.0 + com.unity.test-framework@1.1.33 + com.unity.timeline@1.6.5 + com.unity.ugui@1.0.0 + com.unity.xr.legacyinputhelpers@2.1.10 +The following packages were updated: + com.unity.ads from version 2.0.8 to 4.4.2 + com.unity.analytics from version 2.0.16 to 3.6.12 + com.unity.purchasing from version 2.0.3 to 4.8.0 + com.unity.textmeshpro from version 1.2.4 to 3.0.6 +The following packages were removed: + com.unity.package-manager-ui@1.9.11 diff --git a/Logs/shadercompiler-AssetImportWorker0.log b/Logs/shadercompiler-AssetImportWorker0.log new file mode 100644 index 0000000..7dfc70b --- /dev/null +++ b/Logs/shadercompiler-AssetImportWorker0.log @@ -0,0 +1,6 @@ +Base path: 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines' +Cmd: initializeCompiler + +Unhandled exception: Protocol error - failed to read magic number (error -2147483644, transferred 0/4) + +Quitting shader compiler process diff --git a/Logs/shadercompiler-UnityShaderCompiler.exe0.log b/Logs/shadercompiler-UnityShaderCompiler.exe0.log new file mode 100644 index 0000000..d4c59ae --- /dev/null +++ b/Logs/shadercompiler-UnityShaderCompiler.exe0.log @@ -0,0 +1,101 @@ +Base path: 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines' +Cmd: initializeCompiler + +Cmd: initializeCompiler + +Cmd: compileSnippet + insize=1582 file=Assets/DefaultResourcesExtra/Hidden/BlitCopy pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=33 mask=6 start=11 ok=1 outsize=722 + +Cmd: compileSnippet + insize=1582 file=Assets/DefaultResourcesExtra/Hidden/BlitCopy pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=33 mask=6 start=11 ok=1 outsize=386 + +Cmd: compileSnippet + insize=5029 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUIRoundedRect pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=33 mask=6 start=155 ok=1 outsize=1170 + +Cmd: compileSnippet + insize=5029 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUIRoundedRect pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=33 mask=6 start=155 ok=1 outsize=3566 + +Cmd: compileSnippet + insize=5029 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUIRoundedRect pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=33 mask=6 start=167 ok=1 outsize=1170 + +Cmd: compileSnippet + insize=5029 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUIRoundedRect pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=33 mask=6 start=167 ok=1 outsize=3566 + +Cmd: compileSnippet + insize=7853 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUIRoundedRectWithColorPerBorder pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=33 mask=6 start=223 ok=1 outsize=1170 + +Cmd: compileSnippet + insize=7853 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUIRoundedRectWithColorPerBorder pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=33 mask=6 start=223 ok=1 outsize=4802 + +Cmd: compileSnippet + insize=7853 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUIRoundedRectWithColorPerBorder pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=33 mask=6 start=235 ok=1 outsize=1170 + +Cmd: compileSnippet + insize=7853 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUIRoundedRectWithColorPerBorder pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=33 mask=6 start=235 ok=1 outsize=4802 + +Cmd: compileSnippet + insize=1341 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUITexture pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=1 mask=6 start=59 ok=1 outsize=822 + +Cmd: compileSnippet + insize=1341 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUITexture pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=1 mask=6 start=59 ok=1 outsize=434 + +Cmd: compileSnippet + insize=1341 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUITexture pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=1 mask=6 start=75 ok=1 outsize=822 + +Cmd: compileSnippet + insize=1341 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUITexture pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=1 mask=6 start=75 ok=1 outsize=434 + +Cmd: compileSnippet + insize=1878 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUITextureBlit pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=1 mask=6 start=71 ok=1 outsize=1114 + +Cmd: compileSnippet + insize=1878 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUITextureBlit pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=1 mask=6 start=71 ok=1 outsize=810 + +Cmd: compileSnippet + insize=1878 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUITextureBlit pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=1 mask=6 start=84 ok=1 outsize=1114 + +Cmd: compileSnippet + insize=1878 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUITextureBlit pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=1 mask=6 start=84 ok=1 outsize=810 + +Cmd: compileSnippet + insize=1842 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUITextureClip pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=1 mask=6 start=70 ok=1 outsize=1114 + +Cmd: compileSnippet + insize=1842 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUITextureClip pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=1 mask=6 start=70 ok=1 outsize=830 + +Cmd: compileSnippet + insize=1842 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUITextureClip pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=1 mask=6 start=83 ok=1 outsize=1114 + +Cmd: compileSnippet + insize=1842 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUITextureClip pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=1 mask=6 start=83 ok=1 outsize=830 + +Cmd: compileSnippet + insize=1701 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUITextureClipText pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=1 mask=6 start=64 ok=1 outsize=1126 + +Cmd: compileSnippet + insize=1701 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUITextureClipText pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=1 mask=6 start=64 ok=1 outsize=554 + +Cmd: compileSnippet + insize=1701 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUITextureClipText pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=1 mask=6 start=77 ok=1 outsize=1126 + +Cmd: compileSnippet + insize=1701 file=Assets/DefaultResourcesExtra/Hidden/Internal-GUITextureClipText pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=1 mask=6 start=77 ok=1 outsize=554 + +Cmd: compileSnippet + insize=4140 file=Assets/DefaultResourcesExtra/UIElements/Hidden/Internal-UIRAtlasBlitCopy pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=33 mask=6 start=20 ok=1 outsize=1374 + +Cmd: compileSnippet + insize=4140 file=Assets/DefaultResourcesExtra/UIElements/Hidden/Internal-UIRAtlasBlitCopy pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=33 mask=6 start=20 ok=1 outsize=1058 + +Cmd: compileSnippet + insize=753 file=Assets/DefaultResourcesExtra/UIElements/Hidden/UIElements/EditorUIE pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=4075 mask=6 start=54 ok=1 outsize=4302 + +Cmd: compileSnippet + insize=753 file=Assets/DefaultResourcesExtra/UIElements/Hidden/UIElements/EditorUIE pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=4075 mask=6 start=54 ok=1 outsize=8442 + +Cmd: preprocess + insize=2414 file=Packages/com.unity.textmeshpro/Editor Resources/Shaders/TMP_SDF Internal Editor.shader surfaceOnly=0 cachingPP=1 buildPlatform=19 validAPIs=295472 pKW=SHADER_API_DESKTOP dKW=UNITY_NO_DXT5nm UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_RGBM_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL ok=1 outsize=2035 + +Cmd: initializeCompiler + +Cmd: shutdown diff --git a/Logs/shadercompiler-UnityShaderCompiler.exe1.log b/Logs/shadercompiler-UnityShaderCompiler.exe1.log new file mode 100644 index 0000000..c42f190 --- /dev/null +++ b/Logs/shadercompiler-UnityShaderCompiler.exe1.log @@ -0,0 +1,12 @@ +Base path: 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines' +Cmd: initializeCompiler + +Cmd: compileSnippet + insize=817 file=Packages/com.unity.textmeshpro/Editor Resources/Shaders/Hidden/TMP/Internal/Editor/Distance Field SSD pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=OUTLINE_ON UNDERLAY_ON UNDERLAY_INNER UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=33 mask=6 start=58 ok=1 outsize=2006 + +Cmd: initializeCompiler + +Cmd: compileSnippet + insize=944 file=Assets/DefaultResourcesExtra/Legacy Shaders/VertexLit pass=ShadowCaster cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING UNITY_PASS_SHADOWCASTER uKW=SHADOWS_DEPTH dKW=INSTANCING_ON SHADOWS_CUBE UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=1 mask=6 start=123 ok=1 outsize=250 + +Cmd: shutdown diff --git a/Logs/shadercompiler-UnityShaderCompiler.exe10.log b/Logs/shadercompiler-UnityShaderCompiler.exe10.log new file mode 100644 index 0000000..4ffddbc --- /dev/null +++ b/Logs/shadercompiler-UnityShaderCompiler.exe10.log @@ -0,0 +1,7 @@ +Base path: 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines' +Cmd: initializeCompiler + +Cmd: compileSnippet + insize=2877 file=Assets/DefaultResourcesExtra/Legacy Shaders/Particles/Alpha Blended pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=SOFTPARTICLES_ON FOG_LINEAR FOG_EXP FOG_EXP2 UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=1 mask=6 start=17 ok=1 outsize=474 + +Cmd: shutdown diff --git a/Logs/shadercompiler-UnityShaderCompiler.exe11.log b/Logs/shadercompiler-UnityShaderCompiler.exe11.log new file mode 100644 index 0000000..168ce64 --- /dev/null +++ b/Logs/shadercompiler-UnityShaderCompiler.exe11.log @@ -0,0 +1,7 @@ +Base path: 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines' +Cmd: initializeCompiler + +Cmd: compileSnippet + insize=2877 file=Assets/DefaultResourcesExtra/Legacy Shaders/Particles/Alpha Blended pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=SOFTPARTICLES_ON FOG_LINEAR FOG_EXP FOG_EXP2 UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=1 mask=6 start=17 ok=1 outsize=834 + +Cmd: shutdown diff --git a/Logs/shadercompiler-UnityShaderCompiler.exe2.log b/Logs/shadercompiler-UnityShaderCompiler.exe2.log new file mode 100644 index 0000000..c025d3e --- /dev/null +++ b/Logs/shadercompiler-UnityShaderCompiler.exe2.log @@ -0,0 +1,9 @@ +Base path: 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines' +Cmd: initializeCompiler + +Cmd: compileSnippet + insize=817 file=Packages/com.unity.textmeshpro/Editor Resources/Shaders/Hidden/TMP/Internal/Editor/Distance Field SSD pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=OUTLINE_ON UNDERLAY_ON UNDERLAY_INNER UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=33 mask=6 start=58 ok=1 outsize=938 + +Cmd: initializeCompiler + +Cmd: shutdown diff --git a/Logs/shadercompiler-UnityShaderCompiler.exe3.log b/Logs/shadercompiler-UnityShaderCompiler.exe3.log new file mode 100644 index 0000000..8e5f808 --- /dev/null +++ b/Logs/shadercompiler-UnityShaderCompiler.exe3.log @@ -0,0 +1,7 @@ +Base path: 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines' +Cmd: initializeCompiler + +Cmd: compileSnippet + insize=944 file=Assets/DefaultResourcesExtra/Legacy Shaders/VertexLit pass=ShadowCaster cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING UNITY_PASS_SHADOWCASTER uKW=SHADOWS_DEPTH dKW=INSTANCING_ON SHADOWS_CUBE UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=1 mask=6 start=123 ok=1 outsize=1446 + +Cmd: shutdown diff --git a/Logs/shadercompiler-UnityShaderCompiler.exe4.log b/Logs/shadercompiler-UnityShaderCompiler.exe4.log new file mode 100644 index 0000000..0404f08 --- /dev/null +++ b/Logs/shadercompiler-UnityShaderCompiler.exe4.log @@ -0,0 +1,7 @@ +Base path: 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines' +Cmd: initializeCompiler + +Cmd: compileSnippet + insize=17683 file=Assets/DefaultResourcesExtra/Legacy Shaders/Diffuse pass=FORWARD cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING UNITY_PASS_FORWARDBASE uKW=DIRECTIONAL LIGHTPROBE_SH dKW=INSTANCING_ON FOG_LINEAR FOG_EXP FOG_EXP2 SHADOWS_SHADOWMASK DYNAMICLIGHTMAP_ON LIGHTMAP_ON LIGHTMAP_SHADOW_MIXING DIRLIGHTMAP_COMBINED SHADOWS_SCREEN UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=33 mask=6 start=20 ok=1 outsize=1318 + +Cmd: shutdown diff --git a/Logs/shadercompiler-UnityShaderCompiler.exe5.log b/Logs/shadercompiler-UnityShaderCompiler.exe5.log new file mode 100644 index 0000000..758b9da --- /dev/null +++ b/Logs/shadercompiler-UnityShaderCompiler.exe5.log @@ -0,0 +1,7 @@ +Base path: 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines' +Cmd: initializeCompiler + +Cmd: compileSnippet + insize=17683 file=Assets/DefaultResourcesExtra/Legacy Shaders/Diffuse pass=FORWARD cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING UNITY_PASS_FORWARDBASE uKW=DIRECTIONAL LIGHTPROBE_SH dKW=INSTANCING_ON FOG_LINEAR FOG_EXP FOG_EXP2 SHADOWS_SHADOWMASK DYNAMICLIGHTMAP_ON LIGHTMAP_ON LIGHTMAP_SHADOW_MIXING DIRLIGHTMAP_COMBINED SHADOWS_SCREEN VERTEXLIGHT_ON UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=33 mask=6 start=20 ok=1 outsize=1918 + +Cmd: shutdown diff --git a/Logs/shadercompiler-UnityShaderCompiler.exe6.log b/Logs/shadercompiler-UnityShaderCompiler.exe6.log new file mode 100644 index 0000000..7c09844 --- /dev/null +++ b/Logs/shadercompiler-UnityShaderCompiler.exe6.log @@ -0,0 +1,7 @@ +Base path: 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines' +Cmd: initializeCompiler + +Cmd: compileSnippet + insize=2417 file=Assets/DefaultResourcesExtra/Legacy Shaders/Particles/Alpha Blended Premultiply pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=SOFTPARTICLES_ON UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=1 mask=6 start=16 ok=1 outsize=822 + +Cmd: shutdown diff --git a/Logs/shadercompiler-UnityShaderCompiler.exe7.log b/Logs/shadercompiler-UnityShaderCompiler.exe7.log new file mode 100644 index 0000000..9717391 --- /dev/null +++ b/Logs/shadercompiler-UnityShaderCompiler.exe7.log @@ -0,0 +1,7 @@ +Base path: 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines' +Cmd: initializeCompiler + +Cmd: compileSnippet + insize=2417 file=Assets/DefaultResourcesExtra/Legacy Shaders/Particles/Alpha Blended Premultiply pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=SOFTPARTICLES_ON UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=1 mask=6 start=16 ok=1 outsize=434 + +Cmd: shutdown diff --git a/Logs/shadercompiler-UnityShaderCompiler.exe8.log b/Logs/shadercompiler-UnityShaderCompiler.exe8.log new file mode 100644 index 0000000..6fa2fe3 --- /dev/null +++ b/Logs/shadercompiler-UnityShaderCompiler.exe8.log @@ -0,0 +1,7 @@ +Base path: 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines' +Cmd: initializeCompiler + +Cmd: compileSnippet + insize=731 file=Assets/DefaultResourcesExtra/Sprites/Default pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=ETC1_EXTERNAL_ALPHA INSTANCING_ON PIXELSNAP_ON UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Fragment platform=d3d11 reqs=1 mask=6 start=32 ok=1 outsize=454 + +Cmd: shutdown diff --git a/Logs/shadercompiler-UnityShaderCompiler.exe9.log b/Logs/shadercompiler-UnityShaderCompiler.exe9.log new file mode 100644 index 0000000..39452eb --- /dev/null +++ b/Logs/shadercompiler-UnityShaderCompiler.exe9.log @@ -0,0 +1,7 @@ +Base path: 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2021.3.27f1/Editor/Data/PlaybackEngines' +Cmd: initializeCompiler + +Cmd: compileSnippet + insize=731 file=Assets/DefaultResourcesExtra/Sprites/Default pass= cachingPP=1 ppOnly=0 stripLineD=0 buildPlatform=19 rsLen=0 pKW=UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENCODING uKW= dKW=ETC1_EXTERNAL_ALPHA INSTANCING_ON PIXELSNAP_ON UNITY_NO_DXT5nm UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_ENABLE_NATIVE_SHADOW_LOOKUPS UNITY_METAL_SHADOWS_USE_POINT_FILTERING UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER UNITY_HARDWARE_TIER1 UNITY_HARDWARE_TIER2 UNITY_HARDWARE_TIER3 UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING UNITY_LIGHTMAP_FULL_HDR UNITY_VIRTUAL_TEXTURING UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION UNITY_ASTC_NORMALMAP_ENCODING SHADER_API_GLES30 UNITY_UNIFIED_SHADER_PRECISION_MODEL flags=0 lang=0 type=Vertex platform=d3d11 reqs=1 mask=6 start=32 ok=1 outsize=890 + +Cmd: shutdown diff --git a/Packages/manifest.json b/Packages/manifest.json index 1342d0a..f6a7e43 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,11 +1,21 @@ { "dependencies": { - "com.unity.ads": "2.0.8", - "com.unity.analytics": "2.0.16", - "com.unity.package-manager-ui": "1.9.11", - "com.unity.purchasing": "2.0.3", - "com.unity.textmeshpro": "1.2.4", + "com.unity.2d.sprite": "1.0.0", + "com.unity.2d.tilemap": "1.0.0", + "com.unity.ads": "4.4.2", + "com.unity.analytics": "3.6.12", + "com.unity.collab-proxy": "2.0.4", + "com.unity.ide.rider": "3.0.21", + "com.unity.ide.visualstudio": "2.0.22", + "com.unity.purchasing": "4.8.0", + "com.unity.test-framework": "1.1.33", + "com.unity.textmeshpro": "3.0.6", + "com.unity.timeline": "1.6.5", + "com.unity.toolchain.win-x86_64-linux-x86_64": "2.0.10", + "com.unity.ugui": "1.0.0", + "com.unity.xr.legacyinputhelpers": "2.1.10", "com.unity.modules.ai": "1.0.0", + "com.unity.modules.androidjni": "1.0.0", "com.unity.modules.animation": "1.0.0", "com.unity.modules.assetbundle": "1.0.0", "com.unity.modules.audio": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json new file mode 100644 index 0000000..f64e0a0 --- /dev/null +++ b/Packages/packages-lock.json @@ -0,0 +1,429 @@ +{ + "dependencies": { + "com.unity.2d.sprite": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.2d.tilemap": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.ads": { + "version": "4.4.2", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.analytics": { + "version": "3.6.12", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.collab-proxy": { + "version": "2.0.4", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ext.nunit": { + "version": "1.0.6", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ide.rider": { + "version": "3.0.21", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.visualstudio": { + "version": "2.0.22", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.9" + }, + "url": "https://packages.unity.com" + }, + "com.unity.nuget.newtonsoft-json": { + "version": "3.2.1", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.purchasing": { + "version": "4.8.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0", + "com.unity.services.core": "1.8.1", + "com.unity.modules.androidjni": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.unityanalytics": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.services.core": { + "version": "1.9.0", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.modules.androidjni": "1.0.0", + "com.unity.nuget.newtonsoft-json": "3.2.1", + "com.unity.modules.unitywebrequest": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.sysroot": { + "version": "2.0.10", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.sysroot.linux-x86_64": { + "version": "2.0.9", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.sysroot": "2.0.10" + }, + "url": "https://packages.unity.com" + }, + "com.unity.test-framework": { + "version": "1.1.33", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.textmeshpro": { + "version": "3.0.6", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.timeline": { + "version": "1.6.5", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.toolchain.win-x86_64-linux-x86_64": { + "version": "2.0.10", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.sysroot": "2.0.10", + "com.unity.sysroot.linux-x86_64": "2.0.9" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ugui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0" + } + }, + "com.unity.xr.legacyinputhelpers": { + "version": "2.1.10", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.xr": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.modules.ai": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.androidjni": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.animation": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.assetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.audio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.cloth": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.director": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.animation": "1.0.0" + } + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.particlesystem": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics2d": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.subsystems": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.terrain": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.terrainphysics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0" + } + }, + "com.unity.modules.tilemap": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics2d": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.uielementsnative": "1.0.0" + } + }, + "com.unity.modules.uielementsnative": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.umbra": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unityanalytics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.unitywebrequest": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unitywebrequestassetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestaudio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.audio": "1.0.0" + } + }, + "com.unity.modules.unitywebrequesttexture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestwww": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.vehicles": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.video": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.vr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } + }, + "com.unity.modules.wind": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.xr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.subsystems": "1.0.0" + } + } + } +} diff --git a/ProjectSettings/MemorySettings.asset b/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..5b5face --- /dev/null +++ b/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/ProjectSettings/PackageManagerSettings.asset b/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..f39d4df --- /dev/null +++ b/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_EnablePreReleasePackages: 0 + m_EnablePackageDependencies: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + m_SeeAllPackageVersions: 0 + oneTimeWarningShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 7 + m_ConfigSource: 0 + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_Modified: 0 + m_ErrorMessage: + m_UserModificationsInstanceId: -852 + m_OriginalInstanceId: -854 + m_LoadAssets: 0 diff --git a/ProjectSettings/PresetManager.asset b/ProjectSettings/PresetManager.asset index b0a073fdaf9ac24a738213af2ee38ee391c2e5f6..67a94daefe2e6bce3ec73546ad7cda94f702ad22 100644 GIT binary patch literal 146 zcmY$5boBL6Fw`^TQVnr*S5PcfR47SIw<^ucEU7e3(M!(H)iE+KG_>N<)zt;b8X8-e znOGW{nOiET8FB>_r52}__$KBhrl%HJaVaR|#``B_r6!knWTvFL* mG81z$t5Q?KQj3Z+^Yg3}jKHd0QqvMkb4noQ02No)asdFNTr08w literal 4104 zcmeH_yGlbr5Qb-S^{(;OD2Oi*O$sj{!6Jy_g(&vnXiiKt5lxPQg|MAZpskIhvQez8 z?5r(peH4%XzZ=E)2Eq=^nVD~AXLtWZBswiJ)FmP*LoI|IPPa+<+`{RU~JSJ(Ri*U|KAX*+bb8;v-BS{WZ z5|>Iu^d|B?I0d08Ntpg3a`tx{rVUTyE)~@5?fKzxSp`2u&2xJZ?YW7Lckv9h%=yWV zclDDSPs%oS@?ET{ljSj^+ZAfgA4F`wt7E?TC6~F!-v3*-6#HT1H;A0iy9^V;c%M7O z2RQi%oTl(f>i@07sA1ah-#U!7d7^_2QNnRL^~qwLD5YsKmNZ2sm)1TC+<9FR1+OS@CMMJ#YU=O7>Vgzu9@RaMF@p r%3-3-@FJT1n)K(tU@P}^3OEIv0!{&^fK$LJ;1qBQI0c*n|674C5p<(( diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 7fcfffd..f548f56 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1 +1,2 @@ -m_EditorVersion: 5.6.5f1 +m_EditorVersion: 2021.3.27f1 +m_EditorVersionWithRevision: 2021.3.27f1 (ca3ffb99bcc6) diff --git a/ProjectSettings/VFXManager.asset b/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..82b46d9 --- /dev/null +++ b/ProjectSettings/VFXManager.asset @@ -0,0 +1,15 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 + m_CompiledVersion: 0 + m_RuntimeVersion: 0 + m_RuntimeResources: {fileID: 0} diff --git a/ProjectSettings/VersionControlSettings.asset b/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..dca2881 --- /dev/null +++ b/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_CollabEditorSettings: + inProgressEnabled: 1 diff --git a/ProjectSettings/boot.config b/ProjectSettings/boot.config new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index a399666..5e1fe9c 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ An effort to replicate a level and relevant mechanisms of Rovio's famous Angry Birds game, built in Unity game engine. Source code is provided for educational purposes. -You can check here: http://dgkanatsios.com/2014/07/28/angry-birds-clone-in-unity-3d-source-code-included-3/ for the relevant blog post and tutorial whereas you can test the game here on a WebGL enabled browser: http://unitysamples.azurewebsites.net/angrybirdsclone +You can check here: http://dgkanatsios.com/2014/07/28/angry-birds-clone-in-unity-3d-source-code-included-3/ for the relevant blog post and tutorial. ### Assets diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset new file mode 100644 index 0000000..ad91645 --- /dev/null +++ b/UserSettings/EditorUserSettings.asset @@ -0,0 +1,28 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!162 &1 +EditorUserSettings: + m_ObjectHideFlags: 0 + serializedVersion: 4 + m_ConfigSettings: + RecentlyUsedSceneGuid-0: + value: 5750075453575d0f5c5d0d7a13265c4442154b2b2d7a2265742c1c65b4b1626b + flags: 0 + vcSharedLogLevel: + value: 0d5e400f0650 + flags: 0 + m_VCAutomaticAdd: 1 + m_VCDebugCom: 0 + m_VCDebugCmd: 0 + m_VCDebugOut: 0 + m_SemanticMergeMode: 2 + m_DesiredImportWorkerCount: 5 + m_StandbyImportWorkerCount: 2 + m_IdleImportWorkerShutdownDelay: 60000 + m_VCShowFailedCheckout: 1 + m_VCOverwriteFailedCheckoutAssets: 1 + m_VCProjectOverlayIcons: 1 + m_VCHierarchyOverlayIcons: 1 + m_VCOtherOverlayIcons: 1 + m_VCAllowAsyncUpdate: 1 + m_ArtifactGarbageCollection: 1 diff --git a/UserSettings/Layouts/default-2021.dwlt b/UserSettings/Layouts/default-2021.dwlt new file mode 100644 index 0000000..921562b --- /dev/null +++ b/UserSettings/Layouts/default-2021.dwlt @@ -0,0 +1,1007 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 52 + 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: 12004, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_PixelRect: + serializedVersion: 2 + x: 0 + y: 42.666668 + width: 1600 + height: 976 + m_ShowMode: 4 + m_Title: Game + m_RootView: {fileID: 6} + m_MinSize: {x: 875, y: 300} + m_MaxSize: {x: 10000, y: 10000} + m_Maximized: 1 +--- !u!114 &2 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 9} + - {fileID: 3} + m_Position: + serializedVersion: 2 + x: 0 + y: 30 + width: 1600 + height: 926 + m_MinSize: {x: 300, y: 200} + m_MaxSize: {x: 24288, y: 16192} + vertical: 0 + controlID: 155 +--- !u!114 &3 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 1222 + y: 0 + width: 378 + height: 926 + m_MinSize: {x: 275, y: 50} + m_MaxSize: {x: 4000, y: 4000} + m_ActualView: {fileID: 13} + m_Panes: + - {fileID: 13} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &4 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 302.66666 + height: 548.6667 + m_MinSize: {x: 201, y: 221} + m_MaxSize: {x: 4001, y: 4021} + m_ActualView: {fileID: 14} + m_Panes: + - {fileID: 14} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &5 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: ProjectBrowser + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 548.6667 + width: 1222 + height: 377.3333 + m_MinSize: {x: 231, y: 271} + m_MaxSize: {x: 10001, y: 10021} + m_ActualView: {fileID: 12} + m_Panes: + - {fileID: 12} + - {fileID: 17} + m_Selected: 0 + m_LastSelected: 1 +--- !u!114 &6 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12008, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 7} + - {fileID: 2} + - {fileID: 8} + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 1600 + height: 976 + m_MinSize: {x: 875, y: 300} + m_MaxSize: {x: 10000, y: 10000} + m_UseTopView: 1 + m_TopViewHeight: 30 + m_UseBottomView: 1 + m_BottomViewHeight: 20 +--- !u!114 &7 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12011, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 1600 + height: 30 + m_MinSize: {x: 0, y: 0} + m_MaxSize: {x: 0, y: 0} + m_LastLoadedLayoutName: +--- !u!114 &8 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12042, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 956 + width: 1600 + height: 20 + m_MinSize: {x: 0, y: 0} + m_MaxSize: {x: 0, y: 0} +--- !u!114 &9 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 10} + - {fileID: 5} + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 1222 + height: 926 + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 16192, y: 16192} + vertical: 1 + controlID: 156 +--- !u!114 &10 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 4} + - {fileID: 11} + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 1222 + height: 548.6667 + m_MinSize: {x: 200, y: 100} + m_MaxSize: {x: 16192, y: 8096} + vertical: 0 + controlID: 157 +--- !u!114 &11 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: GameView + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 302.66666 + y: 0 + width: 919.3334 + height: 548.6667 + m_MinSize: {x: 202, y: 221} + m_MaxSize: {x: 4002, y: 4021} + m_ActualView: {fileID: 16} + m_Panes: + - {fileID: 15} + - {fileID: 16} + m_Selected: 1 + m_LastSelected: 0 +--- !u!114 &12 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12014, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 230, y: 250} + m_MaxSize: {x: 10000, y: 10000} + m_TitleContent: + m_Text: Project + m_Image: {fileID: -5179483145760003458, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 0 + y: 621.3334 + width: 1221 + height: 356.3333 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_OverlaysVisible: 1 + m_SearchFilter: + m_NameFilter: + m_ClassNames: [] + m_AssetLabels: [] + m_AssetBundleNames: [] + m_ReferencingInstanceIDs: + m_SceneHandles: + m_ShowAllHits: 0 + m_SkipHidden: 0 + m_SearchArea: 1 + m_Folders: + - Assets/Scenes + m_Globs: [] + m_OriginalText: + m_FilterByTypeIntersection: 0 + m_ViewMode: 1 + m_StartGridSize: 64 + m_LastFolders: + - Assets/Scenes + m_LastFoldersGridSize: -1 + m_LastProjectPath: C:\projects\AngryBirdsStyleGame + m_LockTracker: + m_IsLocked: 0 + m_FolderTreeState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: a6680000 + m_LastClickedID: 26790 + m_ExpandedIDs: 000000009c68000000ca9a3b + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 1 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_CreateAssetUtility: + m_EndAction: {fileID: 0} + m_InstanceID: 0 + m_Path: + m_Icon: {fileID: 0} + m_ResourceFile: + m_AssetTreeState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: 000000009c68000000ca9a3b + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 1 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_CreateAssetUtility: + m_EndAction: {fileID: 0} + m_InstanceID: 0 + m_Path: + m_Icon: {fileID: 0} + m_ResourceFile: + m_ListAreaState: + m_SelectedInstanceIDs: + m_LastClickedInstanceID: 0 + m_HadKeyboardFocusLastEvent: 1 + m_ExpandedInstanceIDs: c6230000 + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 1 + m_ClientGUIView: {fileID: 0} + m_CreateAssetUtility: + m_EndAction: {fileID: 0} + m_InstanceID: 0 + m_Path: + m_Icon: {fileID: 0} + m_ResourceFile: + m_NewAssetIndexInList: -1 + m_ScrollPosition: {x: 0, y: 0} + m_GridSize: 64 + m_SkipHiddenPackages: 0 + m_DirectoriesAreaWidth: 207 +--- !u!114 &13 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12019, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 275, y: 50} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Inspector + m_Image: {fileID: -440750813802333266, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 1222 + y: 72.66667 + width: 377 + height: 905 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_OverlaysVisible: 1 + m_ObjectsLockedBeforeSerialization: [] + m_InstanceIDsLockedBeforeSerialization: + m_PreviewResizer: + m_CachedPref: 160 + m_ControlHash: -371814159 + m_PrefName: Preview_InspectorPreview + m_LastInspectedObjectInstanceID: -1 + m_LastVerticalScrollValue: 0 + m_GlobalObjectId: + m_InspectorMode: 0 + m_LockTracker: + m_IsLocked: 0 + m_PreviewWindow: {fileID: 0} +--- !u!114 &14 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12061, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Hierarchy + m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 0 + y: 72.66667 + width: 301.66666 + height: 527.6667 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_OverlaysVisible: 1 + m_SceneHierarchy: + m_TreeViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: 04730000 + m_LastClickedID: 0 + m_ExpandedIDs: 1cd6ffff16dcffff + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_ExpandedScenes: [] + m_CurrenRootInstanceID: 0 + m_LockTracker: + m_IsLocked: 0 + m_CurrentSortingName: TransformSorting + m_WindowGUID: 4c969a2b90040154d917609493e03593 +--- !u!114 &15 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12013, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Scene + m_Image: {fileID: 8634526014445323508, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 302.6667 + y: 72.66667 + width: 917.3334 + height: 527.6667 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: + - dockPosition: 0 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: -98.66669, y: -26} + snapCorner: 3 + id: Tool Settings + index: 0 + layout: 1 + - dockPosition: 0 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: -141, y: 149} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 1 + id: unity-grid-and-snap-toolbar + index: 1 + layout: 1 + - dockPosition: 1 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: unity-scene-view-toolbar + index: 0 + layout: 1 + - dockPosition: 1 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 1 + id: unity-search-toolbar + index: 1 + layout: 1 + - dockPosition: 0 + containerId: overlay-container--left + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: unity-transform-toolbar + index: 0 + layout: 2 + - dockPosition: 0 + containerId: overlay-container--left + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 0, y: 197} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: unity-component-tools + index: 1 + layout: 2 + - dockPosition: 0 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 67.5, y: 86} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Orientation + index: 0 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Light Settings + index: 0 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Camera + index: 1 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Cloth Constraints + index: 2 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Cloth Collisions + index: 3 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Navmesh Display + index: 4 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Agent Display + index: 5 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Obstacle Display + index: 6 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Occlusion Culling + index: 7 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Physics Debugger + index: 8 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Scene Visibility + index: 9 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Particles + index: 10 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Tilemap + index: 11 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Tilemap Palette Helper + index: 12 + layout: 4 + - dockPosition: 1 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Open Tile Palette + index: 2 + layout: 4 + - dockPosition: 1 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Tilemap Focus + index: 3 + layout: 4 + m_OverlaysVisible: 1 + m_WindowGUID: cc27987af1a868c49b0894db9c0f5429 + m_Gizmos: 1 + m_OverrideSceneCullingMask: 6917529027641081856 + m_SceneIsLit: 1 + m_SceneLighting: 1 + m_2DMode: 1 + m_isRotationLocked: 0 + m_PlayAudio: 0 + m_AudioPlay: 0 + m_Position: + m_Target: {x: 0, y: 0, z: 0} + speed: 2 + m_Value: {x: 0, y: 0, z: 0} + m_RenderMode: 0 + m_CameraMode: + drawMode: 0 + name: Shaded + section: Shading Mode + m_ValidateTrueMetals: 0 + m_DoValidateTrueMetals: 0 + m_ExposureSliderValue: 0 + m_SceneViewState: + m_AlwaysRefresh: 0 + showFog: 1 + showSkybox: 1 + showFlares: 1 + showImageEffects: 1 + showParticleSystems: 1 + showVisualEffectGraphs: 1 + m_FxEnabled: 1 + m_Grid: + xGrid: + m_Fade: + m_Target: 0 + speed: 2 + m_Value: 0 + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} + m_Pivot: {x: 0, y: 0, z: 0} + m_Size: {x: 0, y: 0} + yGrid: + m_Fade: + m_Target: 0 + speed: 2 + m_Value: 0 + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} + m_Pivot: {x: 0, y: 0, z: 0} + m_Size: {x: 1, y: 1} + zGrid: + m_Fade: + m_Target: 1 + speed: 2 + m_Value: 1 + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} + m_Pivot: {x: 0, y: 0, z: 0} + m_Size: {x: 1, y: 1} + m_ShowGrid: 1 + m_GridAxis: 1 + m_gridOpacity: 0.5 + m_Rotation: + m_Target: {x: 0, y: 0, z: 0, w: 1} + speed: 2 + m_Value: {x: 0, y: 0, z: 0, w: 1} + m_Size: + m_Target: 10 + speed: 2 + m_Value: 10 + m_Ortho: + m_Target: 1 + speed: 2 + m_Value: 1 + m_CameraSettings: + m_Speed: 1 + m_SpeedNormalized: 0.5 + m_SpeedMin: 0.001 + m_SpeedMax: 2 + m_EasingEnabled: 1 + m_EasingDuration: 0.4 + m_AccelerationEnabled: 1 + m_FieldOfViewHorizontalOrVertical: 60 + m_NearClip: 0.03 + m_FarClip: 10000 + m_DynamicClip: 1 + m_OcclusionCulling: 0 + m_LastSceneViewRotation: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226} + m_LastSceneViewOrtho: 0 + m_ReplacementShader: {fileID: 0} + m_ReplacementString: + m_SceneVisActive: 1 + m_LastLockedObject: {fileID: 0} + m_ViewIsLockedToObject: 0 +--- !u!114 &16 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Game + m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 302.6667 + y: 72.66667 + width: 917.3334 + height: 527.6667 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_OverlaysVisible: 1 + m_SerializedViewNames: [] + m_SerializedViewValues: [] + m_PlayModeViewName: GameView + m_ShowGizmos: 0 + m_TargetDisplay: 0 + m_ClearColor: {r: 0, g: 0, b: 0, a: 0} + m_TargetSize: {x: 917.3334, y: 506.6667} + m_TextureFilterMode: 0 + m_TextureHideFlags: 61 + m_RenderIMGUI: 1 + m_EnterPlayModeBehavior: 0 + m_UseMipMap: 0 + m_VSyncEnabled: 0 + m_Gizmos: 0 + m_Stats: 0 + m_SelectedSizes: 00000000000000000000000000000000000000000000000000000000000000000000000000000000 + m_ZoomArea: + m_HRangeLocked: 0 + m_VRangeLocked: 0 + hZoomLockedByDefault: 0 + vZoomLockedByDefault: 0 + m_HBaseRangeMin: -305.7778 + m_HBaseRangeMax: 305.7778 + m_VBaseRangeMin: -168.8889 + m_VBaseRangeMax: 168.8889 + m_HAllowExceedBaseRangeMin: 1 + m_HAllowExceedBaseRangeMax: 1 + m_VAllowExceedBaseRangeMin: 1 + m_VAllowExceedBaseRangeMax: 1 + m_ScaleWithWindow: 0 + m_HSlider: 0 + m_VSlider: 0 + m_IgnoreScrollWheelUntilClicked: 0 + m_EnableMouseInput: 0 + m_EnableSliderZoomHorizontal: 0 + m_EnableSliderZoomVertical: 0 + m_UniformScale: 1 + m_UpDirection: 1 + m_DrawArea: + serializedVersion: 2 + x: 0 + y: 21 + width: 917.3334 + height: 506.6667 + m_Scale: {x: 1.5, y: 1.5} + m_Translation: {x: 458.6667, y: 253.33334} + m_MarginLeft: 0 + m_MarginRight: 0 + m_MarginTop: 0 + m_MarginBottom: 0 + m_LastShownAreaInsideMargins: + serializedVersion: 2 + x: -305.7778 + y: -168.8889 + width: 611.5556 + height: 337.7778 + m_MinimalGUI: 1 + m_defaultScale: 1 + m_LastWindowPixelSize: {x: 1376, y: 791.5} + m_ClearInEditMode: 1 + m_NoCameraWarning: 1 + m_LowResolutionForAspectRatios: 01000000000000000000 + m_XRRenderMode: 0 + m_RenderTexture: {fileID: 0} +--- !u!114 &17 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12003, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 100, y: 100} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Console + m_Image: {fileID: -4950941429401207979, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 0 + y: 621.3334 + width: 1221 + height: 356.3333 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_OverlaysVisible: 1 diff --git a/UserSettings/Search.settings b/UserSettings/Search.settings new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/UserSettings/Search.settings @@ -0,0 +1 @@ +{} \ No newline at end of file