From c67d7a01382ac9f735bb2ef00ec90441eeba3c15 Mon Sep 17 00:00:00 2001 From: shurongsen <1799096798@qq.com> Date: Mon, 30 Dec 2024 10:39:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A0=E9=99=90=E7=A5=9E=E5=AE=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Joystick Pack.meta | 8 + Assets/Joystick Pack/Documentaion.pdf | Bin 0 -> 181873 bytes Assets/Joystick Pack/Documentaion.pdf.meta | 7 + Assets/Joystick Pack/Examples.meta | 9 + .../Examples/Example Scene.unity | 4336 ++++++ .../Examples/Example Scene.unity.meta | 7 + Assets/Joystick Pack/Examples/Ground.mat | 77 + Assets/Joystick Pack/Examples/Ground.mat.meta | 8 + .../Examples/JoystickPlayerExample.cs | 16 + .../Examples/JoystickPlayerExample.cs.meta | 11 + .../Examples/JoystickSetterExample.cs | 66 + .../Examples/JoystickSetterExample.cs.meta | 11 + Assets/Joystick Pack/Examples/Player.mat | 77 + Assets/Joystick Pack/Examples/Player.mat.meta | 8 + Assets/Joystick Pack/Prefabs.meta | 9 + .../Prefabs/Dynamic Joystick.prefab | 247 + .../Prefabs/Dynamic Joystick.prefab.meta | 7 + .../Prefabs/Fixed Joystick.prefab | 168 + .../Prefabs/Fixed Joystick.prefab.meta | 7 + .../Prefabs/Floating Joystick.prefab | 246 + .../Prefabs/Floating Joystick.prefab.meta | 7 + .../Prefabs/Variable Joystick.prefab | 248 + .../Prefabs/Variable Joystick.prefab.meta | 7 + Assets/Joystick Pack/Scripts.meta | 9 + Assets/Joystick Pack/Scripts/Base.meta | 9 + Assets/Joystick Pack/Scripts/Base/Joystick.cs | 150 + .../Scripts/Base/Joystick.cs.meta | 11 + Assets/Joystick Pack/Scripts/Editor.meta | 8 + .../Scripts/Editor/DynamicJoystickEditor.cs | 35 + .../Editor/DynamicJoystickEditor.cs.meta | 11 + .../Scripts/Editor/FloatingJoystickEditor.cs | 21 + .../Editor/FloatingJoystickEditor.cs.meta | 11 + .../Scripts/Editor/JoystickEditor.cs | 64 + .../Scripts/Editor/JoystickEditor.cs.meta | 11 + .../Scripts/Editor/VariableJoystickEditor.cs | 37 + .../Editor/VariableJoystickEditor.cs.meta | 11 + Assets/Joystick Pack/Scripts/Joysticks.meta | 9 + .../Scripts/Joysticks/DynamicJoystick.cs | 41 + .../Scripts/Joysticks/DynamicJoystick.cs.meta | 11 + .../Scripts/Joysticks/FixedJoystick.cs | 8 + .../Scripts/Joysticks/FixedJoystick.cs.meta | 11 + .../Scripts/Joysticks/FloatingJoystick.cs | 26 + .../Joysticks/FloatingJoystick.cs.meta | 11 + .../Scripts/Joysticks/VariableJoystick.cs | 63 + .../Joysticks/VariableJoystick.cs.meta | 11 + Assets/Joystick Pack/Sprites.meta | 9 + .../Sprites/All Axis Backgrounds.meta | 8 + .../All Axis Backgrounds/AllAxis_Outline.png | Bin 0 -> 10076 bytes .../AllAxis_Outline.png.meta | 153 + .../AllAxis_Outline_Arrows.png | Bin 0 -> 11326 bytes .../AllAxis_Outline_Arrows.png.meta | 153 + .../All Axis Backgrounds/AllAxis_Plain.png | Bin 0 -> 6774 bytes .../AllAxis_Plain.png.meta | 153 + .../AllAxis_Plain_Arrows.png | Bin 0 -> 8488 bytes .../AllAxis_Plain_Arrows.png.meta | 153 + .../All Axis Backgrounds/AllAxis_Ridged.png | Bin 0 -> 23051 bytes .../AllAxis_Ridged.png.meta | 153 + .../AllAxis_Ridged_Arrows.png | Bin 0 -> 24356 bytes .../AllAxis_Ridged_Arrows.png.meta | 153 + Assets/Joystick Pack/Sprites/Handles.meta | 8 + .../Sprites/Handles/Handle_Outline.png | Bin 0 -> 4763 bytes .../Sprites/Handles/Handle_Outline.png.meta | 153 + .../Sprites/Handles/Handle_Outline_Arrows.png | Bin 0 -> 5447 bytes .../Handles/Handle_Outline_Arrows.png.meta | 153 + .../Sprites/Handles/Handle_Plain.png | Bin 0 -> 3178 bytes .../Sprites/Handles/Handle_Plain.png.meta | 153 + .../Sprites/Handles/Handle_Plain_Arrows.png | Bin 0 -> 4187 bytes .../Handles/Handle_Plain_Arrows.png.meta | 153 + .../Sprites/Handles/Handle_Ridged.png | Bin 0 -> 8878 bytes .../Sprites/Handles/Handle_Ridged.png.meta | 153 + .../Sprites/Handles/Handle_Ridged_Arrows.png | Bin 0 -> 10048 bytes .../Handles/Handle_Ridged_Arrows.png.meta | 153 + .../Sprites/Horizontal Backgrounds.meta | 8 + .../Horizontal_Outline.png | Bin 0 -> 5496 bytes .../Horizontal_Outline.png.meta | 153 + .../Horizontal_Outline_Arrows.png | Bin 0 -> 6131 bytes .../Horizontal_Outline_Arrows.png.meta | 153 + .../Horizontal_Plain.png | Bin 0 -> 3939 bytes .../Horizontal_Plain.png.meta | 153 + .../Horizontal_Plain_Arrows.png | Bin 0 -> 4801 bytes .../Horizontal_Plain_Arrows.png.meta | 153 + .../Horizontal_Ridged.png | Bin 0 -> 10634 bytes .../Horizontal_Ridged.png.meta | 153 + .../Horizontal_Ridged_Arrows.png | Bin 0 -> 11243 bytes .../Horizontal_Ridged_Arrows.png.meta | 153 + .../Sprites/Vertical Backgrounds.meta | 8 + .../Vertical Backgrounds/Vertical_Outline.png | Bin 0 -> 5367 bytes .../Vertical_Outline.png.meta | 153 + .../Vertical_Outline_Arrows.png | Bin 0 -> 5851 bytes .../Vertical_Outline_Arrows.png.meta | 153 + .../Vertical Backgrounds/Vertical_Plain.png | Bin 0 -> 3792 bytes .../Vertical_Plain.png.meta | 153 + .../Vertical_Plain_Arrows.png | Bin 0 -> 4697 bytes .../Vertical_Plain_Arrows.png.meta | 153 + .../Vertical Backgrounds/Vertical_Ridged.png | Bin 0 -> 12445 bytes .../Vertical_Ridged.png.meta | 153 + .../Vertical_Ridged_Arrows.png | Bin 0 -> 13111 bytes .../Vertical_Ridged_Arrows.png.meta | 153 + Assets/Plugins.meta | 8 + Assets/Plugins/Demigiant.meta | 8 + Assets/Plugins/Demigiant/DOTween.meta | 21 + Assets/Plugins/Demigiant/DOTween/DOTween.XML | 3089 +++++ .../Demigiant/DOTween/DOTween.XML.meta | 4 + Assets/Plugins/Demigiant/DOTween/DOTween.dll | Bin 0 -> 175616 bytes .../Plugins/Demigiant/DOTween/DOTween.dll.mdb | Bin 0 -> 67598 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 | 144 + .../DOTween/Editor/DOTweenEditor.XML.meta | 4 + .../DOTween/Editor/DOTweenEditor.dll | Bin 0 -> 70656 bytes .../DOTween/Editor/DOTweenEditor.dll.mdb | Bin 0 -> 12646 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 | 198 + .../Modules/DOTweenModuleAudio.cs.meta | 8 + .../Modules/DOTweenModuleEPOOutline.cs | 146 + .../Modules/DOTweenModuleEPOOutline.cs.meta | 12 + .../DOTween/Modules/DOTweenModulePhysics.cs | 216 + .../Modules/DOTweenModulePhysics.cs.meta | 8 + .../DOTween/Modules/DOTweenModulePhysics2D.cs | 193 + .../Modules/DOTweenModulePhysics2D.cs.meta | 8 + .../DOTween/Modules/DOTweenModuleSprite.cs | 93 + .../Modules/DOTweenModuleSprite.cs.meta | 8 + .../DOTween/Modules/DOTweenModuleUI.cs | 662 + .../DOTween/Modules/DOTweenModuleUI.cs.meta | 8 + .../Modules/DOTweenModuleUnityVersion.cs | 389 + .../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/Resources.meta | 8 + Assets/Resources/DOTweenSettings.asset | 54 + Assets/Resources/DOTweenSettings.asset.meta | 8 + Assets/Scenes.meta | 8 + Assets/Scenes/SampleScene.unity | 208 + Assets/Scenes/SampleScene.unity.meta | 7 + Assets/Scripts.meta | 8 + Assets/Scripts/ACM.cs | 53 + Assets/Scripts/ACM.cs.meta | 11 + Assets/Scripts/Anim.cs | 81 + Assets/Scripts/Anim.cs.meta | 11 + Assets/Scripts/Buttonitem.cs | 23 + Assets/Scripts/Buttonitem.cs.meta | 11 + Assets/Scripts/Handleitem.cs | 41 + Assets/Scripts/Handleitem.cs.meta | 11 + Assets/Scripts/Login.cs | 32 + Assets/Scripts/Login.cs.meta | 11 + Assets/Scripts/Main.cs | 84 + Assets/Scripts/Main.cs.meta | 11 + Assets/Scripts/NavPanel.cs | 66 + Assets/Scripts/NavPanel.cs.meta | 11 + Assets/Scripts/Navigation.cs | 19 + Assets/Scripts/Navigation.cs.meta | 11 + Assets/Scripts/Panel.cs | 20 + Assets/Scripts/Panel.cs.meta | 11 + Assets/Scripts/PointAnim.cs | 39 + Assets/Scripts/PointAnim.cs.meta | 11 + Assets/Scripts/Team.cs | 35 + Assets/Scripts/Team.cs.meta | 11 + Assets/TextMesh Pro.meta | 8 + Assets/TextMesh Pro/Documentation.meta | 8 + .../TextMesh Pro User Guide 2016.pdf | Bin 0 -> 694398 bytes .../TextMesh Pro User Guide 2016.pdf.meta | 7 + Assets/TextMesh Pro/Examples & Extras.meta | 8 + .../TextMesh Pro/Examples & Extras/Fonts.meta | 8 + .../Examples & Extras/Fonts/Anton OFL.txt | 93 + .../Fonts/Anton OFL.txt.meta | 8 + .../Examples & Extras/Fonts/Anton.ttf | Bin 0 -> 42376 bytes .../Examples & Extras/Fonts/Anton.ttf.meta | 19 + .../Examples & Extras/Fonts/Bangers - OFL.txt | 93 + .../Fonts/Bangers - OFL.txt.meta | 8 + .../Examples & Extras/Fonts/Bangers.ttf | Bin 0 -> 39676 bytes .../Examples & Extras/Fonts/Bangers.ttf.meta | 19 + .../Fonts/Electronic Highway Sign.TTF | Bin 0 -> 73060 bytes .../Fonts/Electronic Highway Sign.TTF.meta | 22 + .../Fonts/Oswald-Bold - OFL.txt | 92 + .../Fonts/Oswald-Bold - OFL.txt.meta | 8 + .../Examples & Extras/Fonts/Oswald-Bold.ttf | Bin 0 -> 53056 bytes .../Fonts/Oswald-Bold.ttf.meta | 19 + .../Examples & Extras/Fonts/Roboto-Bold.ttf | Bin 0 -> 170760 bytes .../Fonts/Roboto-Bold.ttf.meta | 22 + .../Examples & Extras/Materials.meta | 9 + .../Crate - Surface Shader Scene.mat | 84 + .../Crate - Surface Shader Scene.mat.meta | 6 + .../Materials/Ground - Logo Scene.mat | 207 + .../Materials/Ground - Logo Scene.mat.meta | 6 + .../Ground - Surface Shader Scene.mat | 112 + .../Ground - Surface Shader Scene.mat.meta | 6 + .../Materials/Small Crate_diffuse.mat | 127 + .../Materials/Small Crate_diffuse.mat.meta | 8 + .../Examples & Extras/Prefabs.meta | 9 + .../Prefabs/Text Popup.prefab | 280 + .../Prefabs/Text Popup.prefab.meta | 8 + .../Prefabs/TextMeshPro - Prefab 1.prefab | 219 + .../TextMeshPro - Prefab 1.prefab.meta | 6 + .../Prefabs/TextMeshPro - Prefab 2.prefab | 219 + .../TextMeshPro - Prefab 2.prefab.meta | 6 + .../Examples & Extras/Resources.meta | 9 + .../Resources/Color Gradient Presets.meta | 8 + .../Blue to Purple - Vertical.asset | 17 + .../Blue to Purple - Vertical.asset.meta | 8 + .../Dark to Light Green - Vertical.asset | 17 + .../Dark to Light Green - Vertical.asset.meta | 8 + .../Light to Dark Green - Vertical.asset | 17 + .../Light to Dark Green - Vertical.asset.meta | 8 + .../Yellow to Orange - Vertical.asset | 17 + .../Yellow to Orange - Vertical.asset.meta | 8 + .../Resources/Fonts & Materials.meta | 9 + .../Anton SDF - Drop Shadow.mat | 104 + .../Anton SDF - Drop Shadow.mat.meta | 8 + .../Fonts & Materials/Anton SDF - Outline.mat | 104 + .../Anton SDF - Outline.mat.meta | 8 + .../Anton SDF - Sunny Days.mat | 104 + .../Anton SDF - Sunny Days.mat.meta | 8 + .../Fonts & Materials/Anton SDF.asset | 297 + .../Fonts & Materials/Anton SDF.asset.meta | 8 + .../Bangers SDF - Drop Shadow.mat | 110 + .../Bangers SDF - Drop Shadow.mat.meta | 8 + .../Bangers SDF - Outline.mat | 110 + .../Bangers SDF - Outline.mat.meta | 8 + .../Fonts & Materials/Bangers SDF Glow.mat | 113 + .../Bangers SDF Glow.mat.meta | 8 + .../Fonts & Materials/Bangers SDF Logo.mat | 101 + .../Bangers SDF Logo.mat.meta | 6 + .../Fonts & Materials/Bangers SDF.asset | 297 + .../Fonts & Materials/Bangers SDF.asset.meta | 6 + .../Electronic Highway Sign SDF.asset | 297 + .../Electronic Highway Sign SDF.asset.meta | 8 + .../LiberationSans SDF - Metalic Green.mat | 104 + ...iberationSans SDF - Metalic Green.mat.meta | 8 + .../LiberationSans SDF - Overlay.mat | 62 + .../LiberationSans SDF - Overlay.mat.meta | 8 + .../LiberationSans SDF - Soft Mask.mat | 112 + .../LiberationSans SDF - Soft Mask.mat.meta | 8 + .../Fonts & Materials/Oswald Bold SDF.asset | 297 + .../Oswald Bold SDF.asset.meta | 8 + .../Roboto-Bold SDF - Drop Shadow.mat | 104 + .../Roboto-Bold SDF - Drop Shadow.mat.meta | 8 + .../Roboto-Bold SDF - Surface.mat | 107 + .../Roboto-Bold SDF - Surface.mat.meta | 8 + .../Fonts & Materials/Roboto-Bold SDF.asset | 297 + .../Roboto-Bold SDF.asset.meta | 8 + .../Resources/Sprite Assets.meta | 9 + .../Sprite Assets/Default Sprite Asset.asset | 351 + .../Default Sprite Asset.asset.meta | 8 + .../Sprite Assets/DropCap Numbers.asset | 406 + .../Sprite Assets/DropCap Numbers.asset.meta | 8 + .../Examples & Extras/Scenes.meta | 9 + .../01- Single Line TextMesh Pro.unity | 380 + .../01- Single Line TextMesh Pro.unity.meta | 24 + .../Scenes/02 - Multi-line TextMesh Pro.unity | 384 + .../02 - Multi-line TextMesh Pro.unity.meta | 24 + .../Scenes/03 - Line Justification.unity | 896 ++ .../Scenes/03 - Line Justification.unity.meta | 24 + .../Scenes/04 - Word Wrapping.unity | 379 + .../Scenes/04 - Word Wrapping.unity.meta | 24 + .../Scenes/05 - Style Tags.unity | 1017 ++ .../Scenes/05 - Style Tags.unity.meta | 24 + .../06 - Extra Rich Text Examples.unity | 677 + .../06 - Extra Rich Text Examples.unity.meta | 6 + ...07 - Superscript & Subscript Example.unity | 383 + ...Superscript & Subscript Example.unity.meta | 24 + .../Scenes/08 - Improved Text Alignment.unity | 544 + .../08 - Improved Text Alignment.unity.meta | 6 + .../Scenes/09 - Margin Tag Example.unity | 945 ++ .../Scenes/09 - Margin Tag Example.unity.meta | 8 + ...10 - Bullets & Numbered List Example.unity | 665 + ...Bullets & Numbered List Example.unity.meta | 8 + .../Scenes/11 - The Style Tag.unity | 554 + .../Scenes/11 - The Style Tag.unity.meta | 8 + .../Scenes/12 - Link Example.unity | 779 ++ .../Scenes/12 - Link Example.unity.meta | 8 + .../Scenes/12a - Text Interactions.unity | 887 ++ .../Scenes/12a - Text Interactions.unity.meta | 8 + .../Scenes/13 - Soft Hyphenation.unity | 507 + .../Scenes/13 - Soft Hyphenation.unity.meta | 8 + .../Scenes/14 - Multi Font & Sprites.unity | 544 + .../14 - Multi Font & Sprites.unity.meta | 8 + .../15 - Inline Graphics & Sprites.unity | 595 + .../15 - Inline Graphics & Sprites.unity.meta | 6 + ... - Linked text overflow mode example.unity | 1063 ++ ...nked text overflow mode example.unity.meta | 8 + .../Scenes/17 - Old Computer Terminal.unity | 691 + .../17 - Old Computer Terminal.unity.meta | 8 + .../18 - ScrollRect & Masking & Layout.unity | 9490 ++++++++++++++ ...- ScrollRect & Masking & Layout.unity.meta | 8 + .../19 - Masking Texture & Soft Mask.unity | 604 + ...9 - Masking Texture & Soft Mask.unity.meta | 8 + .../20 - Input Field with Scrollbar.unity | 2242 ++++ ...20 - Input Field with Scrollbar.unity.meta | 8 + .../Scenes/21 - Script Example.unity | 239 + .../Scenes/21 - Script Example.unity.meta | 24 + .../Scenes/22 - Basic Scripting Example.unity | 447 + .../22 - Basic Scripting Example.unity.meta | 8 + .../23 - Animating Vertex Attributes.unity | 520 + ...3 - Animating Vertex Attributes.unity.meta | 8 + .../Scenes/24 - Surface Shader Example.unity | 2687 ++++ .../24 - Surface Shader Example.unity.meta | 24 + .../Scenes/25 - Sunny Days Example.unity | 615 + .../Scenes/25 - Sunny Days Example.unity.meta | 8 + .../26 - Dropdown Placeholder Example.unity | 3418 +++++ ... - Dropdown Placeholder Example.unity.meta | 7 + .../Scenes/Benchmark (Floating Text).unity | 429 + .../Benchmark (Floating Text).unity.meta | 24 + .../Examples & Extras/Scripts.meta | 9 + .../Examples & Extras/Scripts/Benchmark01.cs | 128 + .../Scripts/Benchmark01.cs.meta | 10 + .../Scripts/Benchmark01_UGUI.cs | 135 + .../Scripts/Benchmark01_UGUI.cs.meta | 10 + .../Examples & Extras/Scripts/Benchmark02.cs | 97 + .../Scripts/Benchmark02.cs.meta | 11 + .../Examples & Extras/Scripts/Benchmark03.cs | 92 + .../Scripts/Benchmark03.cs.meta | 11 + .../Examples & Extras/Scripts/Benchmark04.cs | 85 + .../Scripts/Benchmark04.cs.meta | 11 + .../Scripts/CameraController.cs | 292 + .../Scripts/CameraController.cs.meta | 10 + .../Scripts/ChatController.cs | 51 + .../Scripts/ChatController.cs.meta | 12 + .../Scripts/DropdownSample.cs | 19 + .../Scripts/DropdownSample.cs.meta | 11 + .../Scripts/EnvMapAnimator.cs | 35 + .../Scripts/EnvMapAnimator.cs.meta | 12 + .../Examples & Extras/Scripts/ObjectSpin.cs | 69 + .../Scripts/ObjectSpin.cs.meta | 10 + .../Scripts/ShaderPropAnimator.cs | 51 + .../Scripts/ShaderPropAnimator.cs.meta | 10 + .../Examples & Extras/Scripts/SimpleScript.cs | 58 + .../Scripts/SimpleScript.cs.meta | 10 + .../Scripts/SkewTextExample.cs | 158 + .../Scripts/SkewTextExample.cs.meta | 12 + .../Scripts/TMP_DigitValidator.cs | 27 + .../Scripts/TMP_DigitValidator.cs.meta | 12 + .../Scripts/TMP_ExampleScript_01.cs | 64 + .../Scripts/TMP_ExampleScript_01.cs.meta | 12 + .../Scripts/TMP_FrameRateCounter.cs | 134 + .../Scripts/TMP_FrameRateCounter.cs.meta | 10 + .../Scripts/TMP_PhoneNumberValidator.cs | 105 + .../Scripts/TMP_PhoneNumberValidator.cs.meta | 12 + .../Scripts/TMP_TextEventCheck.cs | 73 + .../Scripts/TMP_TextEventCheck.cs.meta | 12 + .../Scripts/TMP_TextEventHandler.cs | 254 + .../Scripts/TMP_TextEventHandler.cs.meta | 12 + .../Scripts/TMP_TextInfoDebugTool.cs | 652 + .../Scripts/TMP_TextInfoDebugTool.cs.meta | 12 + .../Scripts/TMP_TextSelector_A.cs | 157 + .../Scripts/TMP_TextSelector_A.cs.meta | 12 + .../Scripts/TMP_TextSelector_B.cs | 547 + .../Scripts/TMP_TextSelector_B.cs.meta | 14 + .../Scripts/TMP_UiFrameRateCounter.cs | 125 + .../Scripts/TMP_UiFrameRateCounter.cs.meta | 12 + .../Scripts/TMPro_InstructionOverlay.cs | 84 + .../Scripts/TMPro_InstructionOverlay.cs.meta | 10 + .../Examples & Extras/Scripts/TeleType.cs | 83 + .../Scripts/TeleType.cs.meta | 10 + .../Scripts/TextConsoleSimulator.cs | 121 + .../Scripts/TextConsoleSimulator.cs.meta | 12 + .../Scripts/TextMeshProFloatingText.cs | 223 + .../Scripts/TextMeshProFloatingText.cs.meta | 11 + .../Scripts/TextMeshSpawner.cs | 79 + .../Scripts/TextMeshSpawner.cs.meta | 11 + .../Scripts/VertexColorCycler.cs | 84 + .../Scripts/VertexColorCycler.cs.meta | 12 + .../Examples & Extras/Scripts/VertexJitter.cs | 175 + .../Scripts/VertexJitter.cs.meta | 12 + .../Examples & Extras/Scripts/VertexShakeA.cs | 161 + .../Scripts/VertexShakeA.cs.meta | 12 + .../Examples & Extras/Scripts/VertexShakeB.cs | 185 + .../Scripts/VertexShakeB.cs.meta | 12 + .../Examples & Extras/Scripts/VertexZoom.cs | 192 + .../Scripts/VertexZoom.cs.meta | 12 + .../Scripts/WarpTextExample.cs | 144 + .../Scripts/WarpTextExample.cs.meta | 12 + .../Examples & Extras/Sprites.meta | 9 + .../Sprites/Default Sprites.png | Bin 0 -> 178491 bytes .../Sprites/Default Sprites.png.meta | 437 + .../Sprites/DropCap Numbers.psd | Bin 0 -> 482546 bytes .../Sprites/DropCap Numbers.psd.meta | 166 + .../Examples & Extras/Textures.meta | 9 + .../Textures/Brushed Metal 3.jpg | Bin 0 -> 28175 bytes .../Textures/Brushed Metal 3.jpg.meta | 53 + .../Textures/Floor Cement.jpg | Bin 0 -> 71537 bytes .../Textures/Floor Cement.jpg.meta | 53 + .../Textures/Floor Tiles 1 - diffuse.jpg | Bin 0 -> 155648 bytes .../Textures/Floor Tiles 1 - diffuse.jpg.meta | 53 + .../Textures/Fruit Jelly (B&W).jpg | Bin 0 -> 150089 bytes .../Textures/Fruit Jelly (B&W).jpg.meta | 53 + .../Textures/Gradient Diagonal (Color).jpg | Bin 0 -> 11688 bytes .../Gradient Diagonal (Color).jpg.meta | 57 + .../Textures/Gradient Horizontal (Color).jpg | Bin 0 -> 11341 bytes .../Gradient Horizontal (Color).jpg.meta | 53 + .../Textures/Gradient Vertical (Color).jpg | Bin 0 -> 11336 bytes .../Gradient Vertical (Color).jpg.meta | 53 + .../Textures/Mask Zig-n-Zag.psd | Bin 0 -> 38488 bytes .../Textures/Mask Zig-n-Zag.psd.meta | 56 + .../Textures/Small Crate_diffuse.jpg | Bin 0 -> 95326 bytes .../Textures/Small Crate_diffuse.jpg.meta | 132 + .../Textures/Small Crate_normal.jpg | Bin 0 -> 126976 bytes .../Textures/Small Crate_normal.jpg.meta | 132 + .../Textures/Sunny Days - Seamless.jpg | Bin 0 -> 273488 bytes .../Textures/Sunny Days - Seamless.jpg.meta | 132 + .../Text Overflow - Linked Text Image 1.png | Bin 0 -> 26169 bytes ...xt Overflow - Linked Text Image 1.png.meta | 59 + ...t Overflow - Linked Text UI Screenshot.png | Bin 0 -> 49290 bytes ...rflow - Linked Text UI Screenshot.png.meta | 59 + .../Textures/Wipe Pattern - Circle.psd | Bin 0 -> 32696 bytes .../Textures/Wipe Pattern - Circle.psd.meta | 59 + .../Textures/Wipe Pattern - Diagonal.psd | Bin 0 -> 33064 bytes .../Textures/Wipe Pattern - Diagonal.psd.meta | 58 + .../Textures/Wipe Pattern - Radial Double.psd | Bin 0 -> 33155 bytes .../Wipe Pattern - Radial Double.psd.meta | 58 + .../Textures/Wipe Pattern - Radial Quad.psd | Bin 0 -> 34433 bytes .../Wipe Pattern - Radial Quad.psd.meta | 59 + Assets/TextMesh Pro/Fonts.meta | 8 + .../Fonts/LiberationSans - OFL.txt | 46 + .../Fonts/LiberationSans - OFL.txt.meta | 8 + Assets/TextMesh Pro/Fonts/LiberationSans.ttf | Bin 0 -> 350200 bytes .../Fonts/LiberationSans.ttf.meta | 19 + Assets/TextMesh Pro/Resources.meta | 8 + .../Resources/Fonts & Materials.meta | 9 + .../LiberationSans SDF - Drop Shadow.mat | 106 + .../LiberationSans SDF - Drop Shadow.mat.meta | 8 + .../LiberationSans SDF - Fallback.asset | 343 + .../LiberationSans SDF - Fallback.asset.meta | 8 + .../LiberationSans SDF - Outline.mat | 104 + .../LiberationSans SDF - Outline.mat.meta | 8 + .../LiberationSans SDF.asset | 7821 +++++++++++ .../LiberationSans SDF.asset.meta | 8 + .../LineBreaking Following Characters.txt | 1 + ...LineBreaking Following Characters.txt.meta | 8 + .../LineBreaking Leading Characters.txt | 1 + .../LineBreaking Leading Characters.txt.meta | 8 + .../TextMesh Pro/Resources/Sprite Assets.meta | 9 + .../Resources/Sprite Assets/EmojiOne.asset | 659 + .../Sprite Assets/EmojiOne.asset.meta | 8 + .../TextMesh Pro/Resources/Style Sheets.meta | 9 + .../Style Sheets/Default Style Sheet.asset | 68 + .../Default Style Sheet.asset.meta | 8 + .../TextMesh Pro/Resources/TMP Settings.asset | 46 + .../Resources/TMP Settings.asset.meta | 8 + Assets/TextMesh Pro/Shaders.meta | 8 + .../Shaders/TMP_Bitmap-Custom-Atlas.shader | 143 + .../TMP_Bitmap-Custom-Atlas.shader.meta | 9 + .../Shaders/TMP_Bitmap-Mobile.shader | 145 + .../Shaders/TMP_Bitmap-Mobile.shader.meta | 9 + Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader | 143 + .../Shaders/TMP_Bitmap.shader.meta | 9 + .../Shaders/TMP_SDF Overlay.shader | 317 + .../Shaders/TMP_SDF Overlay.shader.meta | 9 + .../TextMesh Pro/Shaders/TMP_SDF SSD.shader | 310 + .../Shaders/TMP_SDF SSD.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile Masking.shader | 247 + .../TMP_SDF-Mobile Masking.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile Overlay.shader | 240 + .../TMP_SDF-Mobile Overlay.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile SSD.shader | 106 + .../Shaders/TMP_SDF-Mobile SSD.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile.shader | 240 + .../Shaders/TMP_SDF-Mobile.shader.meta | 9 + .../Shaders/TMP_SDF-Surface-Mobile.shader | 138 + .../TMP_SDF-Surface-Mobile.shader.meta | 9 + .../Shaders/TMP_SDF-Surface.shader | 158 + .../Shaders/TMP_SDF-Surface.shader.meta | 9 + Assets/TextMesh Pro/Shaders/TMP_SDF.shader | 317 + .../TextMesh Pro/Shaders/TMP_SDF.shader.meta | 9 + Assets/TextMesh Pro/Shaders/TMP_Sprite.shader | 116 + .../Shaders/TMP_Sprite.shader.meta | 9 + Assets/TextMesh Pro/Shaders/TMPro.cginc | 84 + Assets/TextMesh Pro/Shaders/TMPro.cginc.meta | 9 + .../TextMesh Pro/Shaders/TMPro_Mobile.cginc | 157 + .../Shaders/TMPro_Mobile.cginc.meta | 9 + .../Shaders/TMPro_Properties.cginc | 85 + .../Shaders/TMPro_Properties.cginc.meta | 9 + .../TextMesh Pro/Shaders/TMPro_Surface.cginc | 101 + .../Shaders/TMPro_Surface.cginc.meta | 9 + Assets/TextMesh Pro/Sprites.meta | 8 + .../Sprites/EmojiOne Attribution.txt | 3 + .../Sprites/EmojiOne Attribution.txt.meta | 7 + Assets/TextMesh Pro/Sprites/EmojiOne.json | 156 + .../TextMesh Pro/Sprites/EmojiOne.json.meta | 8 + Assets/TextMesh Pro/Sprites/EmojiOne.png | Bin 0 -> 112319 bytes Assets/TextMesh Pro/Sprites/EmojiOne.png.meta | 431 + Assets/UnityCommon.meta | 8 + Assets/ZZZ.meta | 8 + Assets/ZZZ/Login.unity | 2658 ++++ Assets/ZZZ/Login.unity.meta | 7 + Assets/ZZZ/Panel.meta | 8 + Assets/ZZZ/Panel/BPPanel.prefab | 5520 ++++++++ Assets/ZZZ/Panel/BPPanel.prefab.meta | 7 + Assets/ZZZ/Panel/Image.prefab | 77 + Assets/ZZZ/Panel/Image.prefab.meta | 7 + Assets/ZZZ/Panel/MenuPanel.prefab | 2618 ++++ Assets/ZZZ/Panel/MenuPanel.prefab.meta | 7 + Assets/ZZZ/Panel/NavigationPanel.prefab | 1493 +++ Assets/ZZZ/Panel/NavigationPanel.prefab.meta | 7 + Assets/ZZZ/Panel/ShopPanel.prefab | 7732 +++++++++++ Assets/ZZZ/Panel/ShopPanel.prefab.meta | 7 + Assets/ZZZ/Panel/Team.prefab | 675 + Assets/ZZZ/Panel/Team.prefab.meta | 7 + Assets/ZZZ/UIPrefabs.meta | 8 + Assets/ZZZ/ZZZTestScene.unity | 10854 ++++++++++++++++ Assets/ZZZ/ZZZTestScene.unity.meta | 7 + Assets/ZZZ/res.meta | 8 + Assets/ZZZ/res/1.meta | 8 + Assets/ZZZ/res/1/img_bpttpm_frame.png | Bin 0 -> 115618 bytes Assets/ZZZ/res/1/img_bpttpm_frame.png.meta | 135 + Assets/ZZZ/res/1/img_role_frame_orange.png | Bin 0 -> 85438 bytes .../ZZZ/res/1/img_role_frame_orange.png.meta | 135 + Assets/ZZZ/res/1/img_role_frame_ordinary.png | Bin 0 -> 109423 bytes .../res/1/img_role_frame_ordinary.png.meta | 135 + Assets/ZZZ/res/1/img_team_frame.png | Bin 0 -> 75122 bytes Assets/ZZZ/res/1/img_team_frame.png.meta | 135 + Assets/ZZZ/res/account.meta | 8 + Assets/ZZZ/res/account/btn_closewindow.png | Bin 0 -> 801 bytes .../ZZZ/res/account/btn_closewindow.png.meta | 114 + Assets/ZZZ/res/account/icn_finish.png | Bin 0 -> 1110 bytes Assets/ZZZ/res/account/icn_finish.png.meta | 114 + Assets/ZZZ/res/account/icn_unfinish.png | Bin 0 -> 512 bytes Assets/ZZZ/res/account/icn_unfinish.png.meta | 114 + Assets/ZZZ/res/account/img_common_panel01.png | Bin 0 -> 1156 bytes .../res/account/img_common_panel01.png.meta | 114 + Assets/ZZZ/res/account/img_commonwindow.png | Bin 0 -> 13871 bytes .../ZZZ/res/account/img_commonwindow.png.meta | 114 + Assets/ZZZ/res/bg.jpg | Bin 0 -> 886447 bytes Assets/ZZZ/res/bg.jpg.meta | 114 + Assets/ZZZ/res/btn_add@3x.png | Bin 0 -> 4384 bytes Assets/ZZZ/res/btn_add@3x.png.meta | 135 + Assets/ZZZ/res/btn_romote_arrow@3x.png | Bin 0 -> 1969 bytes Assets/ZZZ/res/btn_romote_arrow@3x.png.meta | 135 + Assets/ZZZ/res/btn_romote_arrow_light@3x.png | Bin 0 -> 1960 bytes .../res/btn_romote_arrow_light@3x.png.meta | 135 + Assets/ZZZ/res/icn_achievement@3x.png | Bin 0 -> 8950 bytes Assets/ZZZ/res/icn_achievement@3x.png.meta | 135 + Assets/ZZZ/res/icn_bag@3x.png | Bin 0 -> 7465 bytes Assets/ZZZ/res/icn_bag@3x.png.meta | 135 + Assets/ZZZ/res/icn_bpadventureroad@3x.png | Bin 0 -> 7108 bytes .../ZZZ/res/icn_bpadventureroad@3x.png.meta | 135 + Assets/ZZZ/res/icn_coin@3x.png | Bin 0 -> 8109 bytes Assets/ZZZ/res/icn_coin@3x.png.meta | 135 + Assets/ZZZ/res/icn_favorability@3x.png | Bin 0 -> 6865 bytes Assets/ZZZ/res/icn_favorability@3x.png.meta | 135 + Assets/ZZZ/res/icn_friend@3x.png | Bin 0 -> 8730 bytes Assets/ZZZ/res/icn_friend@3x.png.meta | 135 + Assets/ZZZ/res/icn_head_frame@3x.png | Bin 0 -> 8694 bytes Assets/ZZZ/res/icn_head_frame@3x.png.meta | 135 + Assets/ZZZ/res/icn_honor@3x.png | Bin 0 -> 19096 bytes Assets/ZZZ/res/icn_honor@3x.png.meta | 135 + Assets/ZZZ/res/icn_mission@3x.png | Bin 0 -> 3993 bytes Assets/ZZZ/res/icn_mission@3x.png.meta | 135 + Assets/ZZZ/res/icn_remote_bg@3x.png | Bin 0 -> 62568 bytes Assets/ZZZ/res/icn_remote_bg@3x.png.meta | 135 + Assets/ZZZ/res/icn_switchpetandworld.png | Bin 0 -> 3154 bytes Assets/ZZZ/res/icn_switchpetandworld.png.meta | 135 + Assets/ZZZ/res/icn_switchpetandworld@2x.png | Bin 0 -> 6520 bytes .../ZZZ/res/icn_switchpetandworld@2x.png.meta | 135 + .../ZZZ/res/icn_switchpetandworld_light.png | Bin 0 -> 5590 bytes .../res/icn_switchpetandworld_light.png.meta | 135 + .../res/icn_switchpetandworld_light@2x.png | Bin 0 -> 11589 bytes .../icn_switchpetandworld_light@2x.png.meta | 135 + Assets/ZZZ/res/icn_union.png | Bin 0 -> 3488 bytes Assets/ZZZ/res/icn_union.png.meta | 135 + Assets/ZZZ/res/icn_union@2x.png | Bin 0 -> 7433 bytes Assets/ZZZ/res/icn_union@2x.png.meta | 135 + Assets/ZZZ/res/icn_union_light.png | Bin 0 -> 5500 bytes Assets/ZZZ/res/icn_union_light.png.meta | 135 + Assets/ZZZ/res/icn_union_light@2x.png | Bin 0 -> 11673 bytes Assets/ZZZ/res/icn_union_light@2x.png.meta | 135 + Assets/ZZZ/res/icn_worldball.png | Bin 0 -> 3622 bytes Assets/ZZZ/res/icn_worldball.png.meta | 135 + Assets/ZZZ/res/icn_worldball@2x.png | Bin 0 -> 7520 bytes Assets/ZZZ/res/icn_worldball@2x.png.meta | 135 + Assets/ZZZ/res/icn_worldball_select.png | Bin 0 -> 6311 bytes Assets/ZZZ/res/icn_worldball_select.png.meta | 135 + Assets/ZZZ/res/icn_worldball_select@2x.png | Bin 0 -> 13517 bytes .../ZZZ/res/icn_worldball_select@2x.png.meta | 135 + Assets/ZZZ/res/img_bpttpm_frame.png | Bin 0 -> 115618 bytes Assets/ZZZ/res/img_bpttpm_frame.png.meta | 135 + Assets/ZZZ/res/img_common_frame_01.png | Bin 0 -> 1275 bytes Assets/ZZZ/res/img_common_frame_01.png.meta | 135 + Assets/ZZZ/res/img_common_frame_01@2x.png | Bin 0 -> 2782 bytes .../ZZZ/res/img_common_frame_01@2x.png.meta | 135 + Assets/ZZZ/res/img_common_panel_01.png | Bin 0 -> 2536 bytes Assets/ZZZ/res/img_common_panel_01.png.meta | 135 + Assets/ZZZ/res/img_common_panel_01@2x.png | Bin 0 -> 6054 bytes .../ZZZ/res/img_common_panel_01@2x.png.meta | 135 + Assets/ZZZ/res/img_decorate_star@3x.png | Bin 0 -> 7320 bytes Assets/ZZZ/res/img_decorate_star@3x.png.meta | 135 + Assets/ZZZ/res/img_head_001@3x.png | Bin 0 -> 54161 bytes Assets/ZZZ/res/img_head_001@3x.png.meta | 135 + Assets/ZZZ/res/img_homeworld@3x.png | Bin 0 -> 55228 bytes Assets/ZZZ/res/img_homeworld@3x.png.meta | 135 + Assets/ZZZ/res/img_journey@3x.png | Bin 0 -> 48069 bytes Assets/ZZZ/res/img_journey@3x.png.meta | 135 + Assets/ZZZ/res/img_level_frame.png | Bin 0 -> 800 bytes Assets/ZZZ/res/img_level_frame.png.meta | 135 + Assets/ZZZ/res/img_level_frame@2x.png | Bin 0 -> 1781 bytes Assets/ZZZ/res/img_level_frame@2x.png.meta | 135 + Assets/ZZZ/res/img_main_bottom_frame.png | Bin 0 -> 11180 bytes Assets/ZZZ/res/img_main_bottom_frame.png.meta | 135 + Assets/ZZZ/res/img_main_bottom_frame@2x.png | Bin 0 -> 31554 bytes .../ZZZ/res/img_main_bottom_frame@2x.png.meta | 135 + Assets/ZZZ/res/img_remote_light@3x.png | Bin 0 -> 34142 bytes Assets/ZZZ/res/img_remote_light@3x.png.meta | 135 + Assets/ZZZ/res/img_resource_frame.png | Bin 0 -> 847 bytes Assets/ZZZ/res/img_resource_frame.png.meta | 135 + Assets/ZZZ/res/img_resource_frame@2x.png | Bin 0 -> 1788 bytes Assets/ZZZ/res/img_resource_frame@2x.png.meta | 135 + Assets/ZZZ/res/img_role_frame_orange.png | Bin 0 -> 85438 bytes Assets/ZZZ/res/img_role_frame_orange.png.meta | 135 + Assets/ZZZ/res/img_role_frame_ordinary.png | Bin 0 -> 109423 bytes .../ZZZ/res/img_role_frame_ordinary.png.meta | 135 + Assets/ZZZ/res/img_romote_do@3x.png | Bin 0 -> 21361 bytes Assets/ZZZ/res/img_romote_do@3x.png.meta | 135 + Assets/ZZZ/res/img_team_frame.png | Bin 0 -> 75122 bytes Assets/ZZZ/res/img_team_frame.png.meta | 135 + Assets/ZZZ/res/login.meta | 8 + Assets/ZZZ/res/login/icn_accountnumber.png | Bin 0 -> 2700 bytes .../ZZZ/res/login/icn_accountnumber.png.meta | 114 + Assets/ZZZ/res/login/icn_tablelayout_logo.png | Bin 0 -> 15823 bytes .../res/login/icn_tablelayout_logo.png.meta | 114 + .../ZZZ/res/login/img_homesocial_bottombg.png | Bin 0 -> 90770 bytes .../login/img_homesocial_bottombg.png.meta | 114 + Assets/ZZZ/res/login/img_loading_bottombg.png | Bin 0 -> 30415 bytes .../res/login/img_loading_bottombg.png.meta | 114 + Assets/ZZZ/res/login/startimg.png | Bin 0 -> 5332 bytes Assets/ZZZ/res/login/startimg.png.meta | 114 + Assets/ZZZ/res/mousepoint.png | Bin 0 -> 65523 bytes Assets/ZZZ/res/mousepoint.png.meta | 114 + Packages/manifest.json | 47 + Packages/packages-lock.json | 489 + ProjectSettings/AudioManager.asset | 19 + ProjectSettings/AutoStreamingSettings.asset | 21 + ProjectSettings/ClusterInputManager.asset | 6 + ProjectSettings/DynamicsManager.asset | 37 + ProjectSettings/EditorBuildSettings.asset | 17 + ProjectSettings/EditorSettings.asset | 40 + ProjectSettings/GraphicsSettings.asset | 64 + ProjectSettings/InputManager.asset | 487 + ProjectSettings/MemorySettings.asset | 35 + ProjectSettings/NavMeshAreas.asset | 93 + ProjectSettings/NetworkManager.asset | 8 + ProjectSettings/PackageManagerSettings.asset | 36 + ProjectSettings/Physics2DSettings.asset | 56 + ProjectSettings/PresetManager.asset | 7 + ProjectSettings/ProjectSettings.asset | 827 ++ ProjectSettings/ProjectVersion.txt | 2 + ProjectSettings/QualitySettings.asset | 239 + ProjectSettings/SceneTemplateSettings.json | 121 + ProjectSettings/TagManager.asset | 43 + ProjectSettings/TimeManager.asset | 9 + ProjectSettings/UnityConnectSettings.asset | 38 + ProjectSettings/VFXManager.asset | 14 + ProjectSettings/VersionControlSettings.asset | 8 + ProjectSettings/XRSettings.asset | 10 + UserSettings/EditorUserSettings.asset | 35 + UserSettings/Layouts/default-2021.dwlt | 995 ++ UserSettings/Layouts/default-2022.dwlt | 1098 ++ UserSettings/Search.settings | 1 + 672 files changed, 119949 insertions(+) create mode 100644 Assets/Joystick Pack.meta create mode 100644 Assets/Joystick Pack/Documentaion.pdf create mode 100644 Assets/Joystick Pack/Documentaion.pdf.meta create mode 100644 Assets/Joystick Pack/Examples.meta create mode 100644 Assets/Joystick Pack/Examples/Example Scene.unity create mode 100644 Assets/Joystick Pack/Examples/Example Scene.unity.meta create mode 100644 Assets/Joystick Pack/Examples/Ground.mat create mode 100644 Assets/Joystick Pack/Examples/Ground.mat.meta create mode 100644 Assets/Joystick Pack/Examples/JoystickPlayerExample.cs create mode 100644 Assets/Joystick Pack/Examples/JoystickPlayerExample.cs.meta create mode 100644 Assets/Joystick Pack/Examples/JoystickSetterExample.cs create mode 100644 Assets/Joystick Pack/Examples/JoystickSetterExample.cs.meta create mode 100644 Assets/Joystick Pack/Examples/Player.mat create mode 100644 Assets/Joystick Pack/Examples/Player.mat.meta create mode 100644 Assets/Joystick Pack/Prefabs.meta create mode 100644 Assets/Joystick Pack/Prefabs/Dynamic Joystick.prefab create mode 100644 Assets/Joystick Pack/Prefabs/Dynamic Joystick.prefab.meta create mode 100644 Assets/Joystick Pack/Prefabs/Fixed Joystick.prefab create mode 100644 Assets/Joystick Pack/Prefabs/Fixed Joystick.prefab.meta create mode 100644 Assets/Joystick Pack/Prefabs/Floating Joystick.prefab create mode 100644 Assets/Joystick Pack/Prefabs/Floating Joystick.prefab.meta create mode 100644 Assets/Joystick Pack/Prefabs/Variable Joystick.prefab create mode 100644 Assets/Joystick Pack/Prefabs/Variable Joystick.prefab.meta create mode 100644 Assets/Joystick Pack/Scripts.meta create mode 100644 Assets/Joystick Pack/Scripts/Base.meta create mode 100644 Assets/Joystick Pack/Scripts/Base/Joystick.cs create mode 100644 Assets/Joystick Pack/Scripts/Base/Joystick.cs.meta create mode 100644 Assets/Joystick Pack/Scripts/Editor.meta create mode 100644 Assets/Joystick Pack/Scripts/Editor/DynamicJoystickEditor.cs create mode 100644 Assets/Joystick Pack/Scripts/Editor/DynamicJoystickEditor.cs.meta create mode 100644 Assets/Joystick Pack/Scripts/Editor/FloatingJoystickEditor.cs create mode 100644 Assets/Joystick Pack/Scripts/Editor/FloatingJoystickEditor.cs.meta create mode 100644 Assets/Joystick Pack/Scripts/Editor/JoystickEditor.cs create mode 100644 Assets/Joystick Pack/Scripts/Editor/JoystickEditor.cs.meta create mode 100644 Assets/Joystick Pack/Scripts/Editor/VariableJoystickEditor.cs create mode 100644 Assets/Joystick Pack/Scripts/Editor/VariableJoystickEditor.cs.meta create mode 100644 Assets/Joystick Pack/Scripts/Joysticks.meta create mode 100644 Assets/Joystick Pack/Scripts/Joysticks/DynamicJoystick.cs create mode 100644 Assets/Joystick Pack/Scripts/Joysticks/DynamicJoystick.cs.meta create mode 100644 Assets/Joystick Pack/Scripts/Joysticks/FixedJoystick.cs create mode 100644 Assets/Joystick Pack/Scripts/Joysticks/FixedJoystick.cs.meta create mode 100644 Assets/Joystick Pack/Scripts/Joysticks/FloatingJoystick.cs create mode 100644 Assets/Joystick Pack/Scripts/Joysticks/FloatingJoystick.cs.meta create mode 100644 Assets/Joystick Pack/Scripts/Joysticks/VariableJoystick.cs create mode 100644 Assets/Joystick Pack/Scripts/Joysticks/VariableJoystick.cs.meta create mode 100644 Assets/Joystick Pack/Sprites.meta create mode 100644 Assets/Joystick Pack/Sprites/All Axis Backgrounds.meta create mode 100644 Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Outline.png create mode 100644 Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Outline.png.meta create mode 100644 Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Outline_Arrows.png create mode 100644 Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Outline_Arrows.png.meta create mode 100644 Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Plain.png create mode 100644 Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Plain.png.meta create mode 100644 Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Plain_Arrows.png create mode 100644 Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Plain_Arrows.png.meta create mode 100644 Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Ridged.png create mode 100644 Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Ridged.png.meta create mode 100644 Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Ridged_Arrows.png create mode 100644 Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Ridged_Arrows.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Handles.meta create mode 100644 Assets/Joystick Pack/Sprites/Handles/Handle_Outline.png create mode 100644 Assets/Joystick Pack/Sprites/Handles/Handle_Outline.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Handles/Handle_Outline_Arrows.png create mode 100644 Assets/Joystick Pack/Sprites/Handles/Handle_Outline_Arrows.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Handles/Handle_Plain.png create mode 100644 Assets/Joystick Pack/Sprites/Handles/Handle_Plain.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Handles/Handle_Plain_Arrows.png create mode 100644 Assets/Joystick Pack/Sprites/Handles/Handle_Plain_Arrows.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Handles/Handle_Ridged.png create mode 100644 Assets/Joystick Pack/Sprites/Handles/Handle_Ridged.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Handles/Handle_Ridged_Arrows.png create mode 100644 Assets/Joystick Pack/Sprites/Handles/Handle_Ridged_Arrows.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Horizontal Backgrounds.meta create mode 100644 Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Outline.png create mode 100644 Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Outline.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Outline_Arrows.png create mode 100644 Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Outline_Arrows.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Plain.png create mode 100644 Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Plain.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Plain_Arrows.png create mode 100644 Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Plain_Arrows.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Ridged.png create mode 100644 Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Ridged.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Ridged_Arrows.png create mode 100644 Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Ridged_Arrows.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Vertical Backgrounds.meta create mode 100644 Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Outline.png create mode 100644 Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Outline.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Outline_Arrows.png create mode 100644 Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Outline_Arrows.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Plain.png create mode 100644 Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Plain.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Plain_Arrows.png create mode 100644 Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Plain_Arrows.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Ridged.png create mode 100644 Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Ridged.png.meta create mode 100644 Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Ridged_Arrows.png create mode 100644 Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Ridged_Arrows.png.meta create mode 100644 Assets/Plugins.meta create mode 100644 Assets/Plugins/Demigiant.meta 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 create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs create mode 100644 Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta 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 create mode 100644 Assets/Resources.meta create mode 100644 Assets/Resources/DOTweenSettings.asset create mode 100644 Assets/Resources/DOTweenSettings.asset.meta create mode 100644 Assets/Scenes.meta create mode 100644 Assets/Scenes/SampleScene.unity create mode 100644 Assets/Scenes/SampleScene.unity.meta create mode 100644 Assets/Scripts.meta create mode 100644 Assets/Scripts/ACM.cs create mode 100644 Assets/Scripts/ACM.cs.meta create mode 100644 Assets/Scripts/Anim.cs create mode 100644 Assets/Scripts/Anim.cs.meta create mode 100644 Assets/Scripts/Buttonitem.cs create mode 100644 Assets/Scripts/Buttonitem.cs.meta create mode 100644 Assets/Scripts/Handleitem.cs create mode 100644 Assets/Scripts/Handleitem.cs.meta create mode 100644 Assets/Scripts/Login.cs create mode 100644 Assets/Scripts/Login.cs.meta create mode 100644 Assets/Scripts/Main.cs create mode 100644 Assets/Scripts/Main.cs.meta create mode 100644 Assets/Scripts/NavPanel.cs create mode 100644 Assets/Scripts/NavPanel.cs.meta create mode 100644 Assets/Scripts/Navigation.cs create mode 100644 Assets/Scripts/Navigation.cs.meta create mode 100644 Assets/Scripts/Panel.cs create mode 100644 Assets/Scripts/Panel.cs.meta create mode 100644 Assets/Scripts/PointAnim.cs create mode 100644 Assets/Scripts/PointAnim.cs.meta create mode 100644 Assets/Scripts/Team.cs create mode 100644 Assets/Scripts/Team.cs.meta create mode 100644 Assets/TextMesh Pro.meta create mode 100644 Assets/TextMesh Pro/Documentation.meta create mode 100644 Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf create mode 100644 Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts/Anton OFL.txt create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts/Anton OFL.txt.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts/Anton.ttf create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts/Anton.ttf.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts/Bangers - OFL.txt create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts/Bangers - OFL.txt.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts/Bangers.ttf create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts/Bangers.ttf.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts/Electronic Highway Sign.TTF create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts/Electronic Highway Sign.TTF.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts/Oswald-Bold - OFL.txt create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts/Oswald-Bold - OFL.txt.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts/Oswald-Bold.ttf create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts/Oswald-Bold.ttf.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts/Roboto-Bold.ttf create mode 100644 Assets/TextMesh Pro/Examples & Extras/Fonts/Roboto-Bold.ttf.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Materials.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Materials/Crate - Surface Shader Scene.mat create mode 100644 Assets/TextMesh Pro/Examples & Extras/Materials/Crate - Surface Shader Scene.mat.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Materials/Ground - Logo Scene.mat create mode 100644 Assets/TextMesh Pro/Examples & Extras/Materials/Ground - Logo Scene.mat.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Materials/Ground - Surface Shader Scene.mat create mode 100644 Assets/TextMesh Pro/Examples & Extras/Materials/Ground - Surface Shader Scene.mat.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Materials/Small Crate_diffuse.mat create mode 100644 Assets/TextMesh Pro/Examples & Extras/Materials/Small Crate_diffuse.mat.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Prefabs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Prefabs/Text Popup.prefab create mode 100644 Assets/TextMesh Pro/Examples & Extras/Prefabs/Text Popup.prefab.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Prefabs/TextMeshPro - Prefab 1.prefab create mode 100644 Assets/TextMesh Pro/Examples & Extras/Prefabs/TextMeshPro - Prefab 1.prefab.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Prefabs/TextMeshPro - Prefab 2.prefab create mode 100644 Assets/TextMesh Pro/Examples & Extras/Prefabs/TextMeshPro - Prefab 2.prefab.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Color Gradient Presets.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Color Gradient Presets/Blue to Purple - Vertical.asset create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Color Gradient Presets/Blue to Purple - Vertical.asset.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Color Gradient Presets/Dark to Light Green - Vertical.asset create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Color Gradient Presets/Dark to Light Green - Vertical.asset.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Color Gradient Presets/Light to Dark Green - Vertical.asset create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Color Gradient Presets/Light to Dark Green - Vertical.asset.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Color Gradient Presets/Yellow to Orange - Vertical.asset create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Color Gradient Presets/Yellow to Orange - Vertical.asset.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Anton SDF - Drop Shadow.mat create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Anton SDF - Drop Shadow.mat.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Anton SDF - Outline.mat create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Anton SDF - Outline.mat.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Anton SDF - Sunny Days.mat create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Anton SDF - Sunny Days.mat.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Anton SDF.asset create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Anton SDF.asset.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Bangers SDF - Drop Shadow.mat create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Bangers SDF - Drop Shadow.mat.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Bangers SDF - Outline.mat create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Bangers SDF - Outline.mat.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Bangers SDF Glow.mat create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Bangers SDF Glow.mat.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Bangers SDF Logo.mat create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Bangers SDF Logo.mat.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Bangers SDF.asset create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Bangers SDF.asset.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Electronic Highway Sign SDF.asset create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Electronic Highway Sign SDF.asset.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/LiberationSans SDF - Metalic Green.mat create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/LiberationSans SDF - Metalic Green.mat.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/LiberationSans SDF - Overlay.mat create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/LiberationSans SDF - Overlay.mat.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/LiberationSans SDF - Soft Mask.mat create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/LiberationSans SDF - Soft Mask.mat.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Oswald Bold SDF.asset create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Oswald Bold SDF.asset.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Roboto-Bold SDF - Drop Shadow.mat create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Roboto-Bold SDF - Drop Shadow.mat.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Roboto-Bold SDF - Surface.mat create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Roboto-Bold SDF - Surface.mat.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Roboto-Bold SDF.asset create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Roboto-Bold SDF.asset.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Sprite Assets.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Sprite Assets/Default Sprite Asset.asset create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Sprite Assets/Default Sprite Asset.asset.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Sprite Assets/DropCap Numbers.asset create mode 100644 Assets/TextMesh Pro/Examples & Extras/Resources/Sprite Assets/DropCap Numbers.asset.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/01- Single Line TextMesh Pro.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/01- Single Line TextMesh Pro.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/02 - Multi-line TextMesh Pro.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/02 - Multi-line TextMesh Pro.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/03 - Line Justification.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/03 - Line Justification.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/04 - Word Wrapping.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/04 - Word Wrapping.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/05 - Style Tags.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/05 - Style Tags.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/06 - Extra Rich Text Examples.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/06 - Extra Rich Text Examples.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/07 - Superscript & Subscript Example.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/07 - Superscript & Subscript Example.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/08 - Improved Text Alignment.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/08 - Improved Text Alignment.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/09 - Margin Tag Example.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/09 - Margin Tag Example.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/10 - Bullets & Numbered List Example.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/10 - Bullets & Numbered List Example.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/11 - The Style Tag.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/11 - The Style Tag.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/12 - Link Example.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/12 - Link Example.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/12a - Text Interactions.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/12a - Text Interactions.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/13 - Soft Hyphenation.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/13 - Soft Hyphenation.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/14 - Multi Font & Sprites.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/14 - Multi Font & Sprites.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/15 - Inline Graphics & Sprites.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/15 - Inline Graphics & Sprites.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/16 - Linked text overflow mode example.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/16 - Linked text overflow mode example.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/17 - Old Computer Terminal.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/17 - Old Computer Terminal.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/18 - ScrollRect & Masking & Layout.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/18 - ScrollRect & Masking & Layout.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/19 - Masking Texture & Soft Mask.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/19 - Masking Texture & Soft Mask.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/20 - Input Field with Scrollbar.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/20 - Input Field with Scrollbar.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/21 - Script Example.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/21 - Script Example.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/22 - Basic Scripting Example.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/22 - Basic Scripting Example.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/23 - Animating Vertex Attributes.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/23 - Animating Vertex Attributes.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/24 - Surface Shader Example.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/24 - Surface Shader Example.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/25 - Sunny Days Example.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/25 - Sunny Days Example.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/26 - Dropdown Placeholder Example.unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/26 - Dropdown Placeholder Example.unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/Benchmark (Floating Text).unity create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scenes/Benchmark (Floating Text).unity.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/Benchmark01.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/Benchmark01.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/Benchmark01_UGUI.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/Benchmark01_UGUI.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/Benchmark02.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/Benchmark02.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/Benchmark03.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/Benchmark03.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/Benchmark04.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/Benchmark04.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/CameraController.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/CameraController.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/ChatController.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/ChatController.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/DropdownSample.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/DropdownSample.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/EnvMapAnimator.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/EnvMapAnimator.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/ObjectSpin.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/ObjectSpin.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/ShaderPropAnimator.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/ShaderPropAnimator.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/SimpleScript.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/SimpleScript.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/SkewTextExample.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/SkewTextExample.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_DigitValidator.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_DigitValidator.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_ExampleScript_01.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_ExampleScript_01.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_FrameRateCounter.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_FrameRateCounter.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_PhoneNumberValidator.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_PhoneNumberValidator.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_TextEventCheck.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_TextEventCheck.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_TextEventHandler.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_TextEventHandler.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_TextInfoDebugTool.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_TextInfoDebugTool.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_TextSelector_A.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_TextSelector_A.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_TextSelector_B.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_TextSelector_B.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_UiFrameRateCounter.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMP_UiFrameRateCounter.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMPro_InstructionOverlay.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TMPro_InstructionOverlay.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TeleType.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TeleType.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TextConsoleSimulator.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TextConsoleSimulator.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TextMeshProFloatingText.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TextMeshProFloatingText.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TextMeshSpawner.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/TextMeshSpawner.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/VertexColorCycler.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/VertexColorCycler.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/VertexJitter.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/VertexJitter.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/VertexShakeA.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/VertexShakeA.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/VertexShakeB.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/VertexShakeB.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/VertexZoom.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/VertexZoom.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/WarpTextExample.cs create mode 100644 Assets/TextMesh Pro/Examples & Extras/Scripts/WarpTextExample.cs.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Sprites.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Sprites/Default Sprites.png create mode 100644 Assets/TextMesh Pro/Examples & Extras/Sprites/Default Sprites.png.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Sprites/DropCap Numbers.psd create mode 100644 Assets/TextMesh Pro/Examples & Extras/Sprites/DropCap Numbers.psd.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Brushed Metal 3.jpg create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Brushed Metal 3.jpg.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Floor Cement.jpg create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Floor Cement.jpg.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Floor Tiles 1 - diffuse.jpg create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Floor Tiles 1 - diffuse.jpg.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Fruit Jelly (B&W).jpg create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Fruit Jelly (B&W).jpg.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Gradient Diagonal (Color).jpg create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Gradient Diagonal (Color).jpg.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Gradient Horizontal (Color).jpg create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Gradient Horizontal (Color).jpg.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Gradient Vertical (Color).jpg create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Gradient Vertical (Color).jpg.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Mask Zig-n-Zag.psd create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Mask Zig-n-Zag.psd.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Small Crate_diffuse.jpg create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Small Crate_diffuse.jpg.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Small Crate_normal.jpg create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Small Crate_normal.jpg.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Sunny Days - Seamless.jpg create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Sunny Days - Seamless.jpg.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Text Overflow - Linked Text Image 1.png create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Text Overflow - Linked Text Image 1.png.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Text Overflow - Linked Text UI Screenshot.png create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Text Overflow - Linked Text UI Screenshot.png.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Wipe Pattern - Circle.psd create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Wipe Pattern - Circle.psd.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Wipe Pattern - Diagonal.psd create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Wipe Pattern - Diagonal.psd.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Wipe Pattern - Radial Double.psd create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Wipe Pattern - Radial Double.psd.meta create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Wipe Pattern - Radial Quad.psd create mode 100644 Assets/TextMesh Pro/Examples & Extras/Textures/Wipe Pattern - Radial Quad.psd.meta create mode 100644 Assets/TextMesh Pro/Fonts.meta create mode 100644 Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt create mode 100644 Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta create mode 100644 Assets/TextMesh Pro/Fonts/LiberationSans.ttf create mode 100644 Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta create mode 100644 Assets/TextMesh Pro/Resources.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta create mode 100644 Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt create mode 100644 Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta create mode 100644 Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt create mode 100644 Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta create mode 100644 Assets/TextMesh Pro/Resources/Sprite Assets.meta create mode 100644 Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset create mode 100644 Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta create mode 100644 Assets/TextMesh Pro/Resources/Style Sheets.meta create mode 100644 Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset create mode 100644 Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta create mode 100644 Assets/TextMesh Pro/Resources/TMP Settings.asset create mode 100644 Assets/TextMesh Pro/Resources/TMP Settings.asset.meta create mode 100644 Assets/TextMesh Pro/Shaders.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Sprite.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Sprite.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMPro.cginc create mode 100644 Assets/TextMesh Pro/Shaders/TMPro.cginc.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc.meta create mode 100644 Assets/TextMesh Pro/Sprites.meta create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne.json create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne.json.meta create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne.png create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne.png.meta create mode 100644 Assets/UnityCommon.meta create mode 100644 Assets/ZZZ.meta create mode 100644 Assets/ZZZ/Login.unity create mode 100644 Assets/ZZZ/Login.unity.meta create mode 100644 Assets/ZZZ/Panel.meta create mode 100644 Assets/ZZZ/Panel/BPPanel.prefab create mode 100644 Assets/ZZZ/Panel/BPPanel.prefab.meta create mode 100644 Assets/ZZZ/Panel/Image.prefab create mode 100644 Assets/ZZZ/Panel/Image.prefab.meta create mode 100644 Assets/ZZZ/Panel/MenuPanel.prefab create mode 100644 Assets/ZZZ/Panel/MenuPanel.prefab.meta create mode 100644 Assets/ZZZ/Panel/NavigationPanel.prefab create mode 100644 Assets/ZZZ/Panel/NavigationPanel.prefab.meta create mode 100644 Assets/ZZZ/Panel/ShopPanel.prefab create mode 100644 Assets/ZZZ/Panel/ShopPanel.prefab.meta create mode 100644 Assets/ZZZ/Panel/Team.prefab create mode 100644 Assets/ZZZ/Panel/Team.prefab.meta create mode 100644 Assets/ZZZ/UIPrefabs.meta create mode 100644 Assets/ZZZ/ZZZTestScene.unity create mode 100644 Assets/ZZZ/ZZZTestScene.unity.meta create mode 100644 Assets/ZZZ/res.meta create mode 100644 Assets/ZZZ/res/1.meta create mode 100644 Assets/ZZZ/res/1/img_bpttpm_frame.png create mode 100644 Assets/ZZZ/res/1/img_bpttpm_frame.png.meta create mode 100644 Assets/ZZZ/res/1/img_role_frame_orange.png create mode 100644 Assets/ZZZ/res/1/img_role_frame_orange.png.meta create mode 100644 Assets/ZZZ/res/1/img_role_frame_ordinary.png create mode 100644 Assets/ZZZ/res/1/img_role_frame_ordinary.png.meta create mode 100644 Assets/ZZZ/res/1/img_team_frame.png create mode 100644 Assets/ZZZ/res/1/img_team_frame.png.meta create mode 100644 Assets/ZZZ/res/account.meta create mode 100644 Assets/ZZZ/res/account/btn_closewindow.png create mode 100644 Assets/ZZZ/res/account/btn_closewindow.png.meta create mode 100644 Assets/ZZZ/res/account/icn_finish.png create mode 100644 Assets/ZZZ/res/account/icn_finish.png.meta create mode 100644 Assets/ZZZ/res/account/icn_unfinish.png create mode 100644 Assets/ZZZ/res/account/icn_unfinish.png.meta create mode 100644 Assets/ZZZ/res/account/img_common_panel01.png create mode 100644 Assets/ZZZ/res/account/img_common_panel01.png.meta create mode 100644 Assets/ZZZ/res/account/img_commonwindow.png create mode 100644 Assets/ZZZ/res/account/img_commonwindow.png.meta create mode 100644 Assets/ZZZ/res/bg.jpg create mode 100644 Assets/ZZZ/res/bg.jpg.meta create mode 100644 Assets/ZZZ/res/btn_add@3x.png create mode 100644 Assets/ZZZ/res/btn_add@3x.png.meta create mode 100644 Assets/ZZZ/res/btn_romote_arrow@3x.png create mode 100644 Assets/ZZZ/res/btn_romote_arrow@3x.png.meta create mode 100644 Assets/ZZZ/res/btn_romote_arrow_light@3x.png create mode 100644 Assets/ZZZ/res/btn_romote_arrow_light@3x.png.meta create mode 100644 Assets/ZZZ/res/icn_achievement@3x.png create mode 100644 Assets/ZZZ/res/icn_achievement@3x.png.meta create mode 100644 Assets/ZZZ/res/icn_bag@3x.png create mode 100644 Assets/ZZZ/res/icn_bag@3x.png.meta create mode 100644 Assets/ZZZ/res/icn_bpadventureroad@3x.png create mode 100644 Assets/ZZZ/res/icn_bpadventureroad@3x.png.meta create mode 100644 Assets/ZZZ/res/icn_coin@3x.png create mode 100644 Assets/ZZZ/res/icn_coin@3x.png.meta create mode 100644 Assets/ZZZ/res/icn_favorability@3x.png create mode 100644 Assets/ZZZ/res/icn_favorability@3x.png.meta create mode 100644 Assets/ZZZ/res/icn_friend@3x.png create mode 100644 Assets/ZZZ/res/icn_friend@3x.png.meta create mode 100644 Assets/ZZZ/res/icn_head_frame@3x.png create mode 100644 Assets/ZZZ/res/icn_head_frame@3x.png.meta create mode 100644 Assets/ZZZ/res/icn_honor@3x.png create mode 100644 Assets/ZZZ/res/icn_honor@3x.png.meta create mode 100644 Assets/ZZZ/res/icn_mission@3x.png create mode 100644 Assets/ZZZ/res/icn_mission@3x.png.meta create mode 100644 Assets/ZZZ/res/icn_remote_bg@3x.png create mode 100644 Assets/ZZZ/res/icn_remote_bg@3x.png.meta create mode 100644 Assets/ZZZ/res/icn_switchpetandworld.png create mode 100644 Assets/ZZZ/res/icn_switchpetandworld.png.meta create mode 100644 Assets/ZZZ/res/icn_switchpetandworld@2x.png create mode 100644 Assets/ZZZ/res/icn_switchpetandworld@2x.png.meta create mode 100644 Assets/ZZZ/res/icn_switchpetandworld_light.png create mode 100644 Assets/ZZZ/res/icn_switchpetandworld_light.png.meta create mode 100644 Assets/ZZZ/res/icn_switchpetandworld_light@2x.png create mode 100644 Assets/ZZZ/res/icn_switchpetandworld_light@2x.png.meta create mode 100644 Assets/ZZZ/res/icn_union.png create mode 100644 Assets/ZZZ/res/icn_union.png.meta create mode 100644 Assets/ZZZ/res/icn_union@2x.png create mode 100644 Assets/ZZZ/res/icn_union@2x.png.meta create mode 100644 Assets/ZZZ/res/icn_union_light.png create mode 100644 Assets/ZZZ/res/icn_union_light.png.meta create mode 100644 Assets/ZZZ/res/icn_union_light@2x.png create mode 100644 Assets/ZZZ/res/icn_union_light@2x.png.meta create mode 100644 Assets/ZZZ/res/icn_worldball.png create mode 100644 Assets/ZZZ/res/icn_worldball.png.meta create mode 100644 Assets/ZZZ/res/icn_worldball@2x.png create mode 100644 Assets/ZZZ/res/icn_worldball@2x.png.meta create mode 100644 Assets/ZZZ/res/icn_worldball_select.png create mode 100644 Assets/ZZZ/res/icn_worldball_select.png.meta create mode 100644 Assets/ZZZ/res/icn_worldball_select@2x.png create mode 100644 Assets/ZZZ/res/icn_worldball_select@2x.png.meta create mode 100644 Assets/ZZZ/res/img_bpttpm_frame.png create mode 100644 Assets/ZZZ/res/img_bpttpm_frame.png.meta create mode 100644 Assets/ZZZ/res/img_common_frame_01.png create mode 100644 Assets/ZZZ/res/img_common_frame_01.png.meta create mode 100644 Assets/ZZZ/res/img_common_frame_01@2x.png create mode 100644 Assets/ZZZ/res/img_common_frame_01@2x.png.meta create mode 100644 Assets/ZZZ/res/img_common_panel_01.png create mode 100644 Assets/ZZZ/res/img_common_panel_01.png.meta create mode 100644 Assets/ZZZ/res/img_common_panel_01@2x.png create mode 100644 Assets/ZZZ/res/img_common_panel_01@2x.png.meta create mode 100644 Assets/ZZZ/res/img_decorate_star@3x.png create mode 100644 Assets/ZZZ/res/img_decorate_star@3x.png.meta create mode 100644 Assets/ZZZ/res/img_head_001@3x.png create mode 100644 Assets/ZZZ/res/img_head_001@3x.png.meta create mode 100644 Assets/ZZZ/res/img_homeworld@3x.png create mode 100644 Assets/ZZZ/res/img_homeworld@3x.png.meta create mode 100644 Assets/ZZZ/res/img_journey@3x.png create mode 100644 Assets/ZZZ/res/img_journey@3x.png.meta create mode 100644 Assets/ZZZ/res/img_level_frame.png create mode 100644 Assets/ZZZ/res/img_level_frame.png.meta create mode 100644 Assets/ZZZ/res/img_level_frame@2x.png create mode 100644 Assets/ZZZ/res/img_level_frame@2x.png.meta create mode 100644 Assets/ZZZ/res/img_main_bottom_frame.png create mode 100644 Assets/ZZZ/res/img_main_bottom_frame.png.meta create mode 100644 Assets/ZZZ/res/img_main_bottom_frame@2x.png create mode 100644 Assets/ZZZ/res/img_main_bottom_frame@2x.png.meta create mode 100644 Assets/ZZZ/res/img_remote_light@3x.png create mode 100644 Assets/ZZZ/res/img_remote_light@3x.png.meta create mode 100644 Assets/ZZZ/res/img_resource_frame.png create mode 100644 Assets/ZZZ/res/img_resource_frame.png.meta create mode 100644 Assets/ZZZ/res/img_resource_frame@2x.png create mode 100644 Assets/ZZZ/res/img_resource_frame@2x.png.meta create mode 100644 Assets/ZZZ/res/img_role_frame_orange.png create mode 100644 Assets/ZZZ/res/img_role_frame_orange.png.meta create mode 100644 Assets/ZZZ/res/img_role_frame_ordinary.png create mode 100644 Assets/ZZZ/res/img_role_frame_ordinary.png.meta create mode 100644 Assets/ZZZ/res/img_romote_do@3x.png create mode 100644 Assets/ZZZ/res/img_romote_do@3x.png.meta create mode 100644 Assets/ZZZ/res/img_team_frame.png create mode 100644 Assets/ZZZ/res/img_team_frame.png.meta create mode 100644 Assets/ZZZ/res/login.meta create mode 100644 Assets/ZZZ/res/login/icn_accountnumber.png create mode 100644 Assets/ZZZ/res/login/icn_accountnumber.png.meta create mode 100644 Assets/ZZZ/res/login/icn_tablelayout_logo.png create mode 100644 Assets/ZZZ/res/login/icn_tablelayout_logo.png.meta create mode 100644 Assets/ZZZ/res/login/img_homesocial_bottombg.png create mode 100644 Assets/ZZZ/res/login/img_homesocial_bottombg.png.meta create mode 100644 Assets/ZZZ/res/login/img_loading_bottombg.png create mode 100644 Assets/ZZZ/res/login/img_loading_bottombg.png.meta create mode 100644 Assets/ZZZ/res/login/startimg.png create mode 100644 Assets/ZZZ/res/login/startimg.png.meta create mode 100644 Assets/ZZZ/res/mousepoint.png create mode 100644 Assets/ZZZ/res/mousepoint.png.meta create mode 100644 Packages/manifest.json create mode 100644 Packages/packages-lock.json create mode 100644 ProjectSettings/AudioManager.asset create mode 100644 ProjectSettings/AutoStreamingSettings.asset create mode 100644 ProjectSettings/ClusterInputManager.asset create mode 100644 ProjectSettings/DynamicsManager.asset create mode 100644 ProjectSettings/EditorBuildSettings.asset create mode 100644 ProjectSettings/EditorSettings.asset create mode 100644 ProjectSettings/GraphicsSettings.asset create mode 100644 ProjectSettings/InputManager.asset create mode 100644 ProjectSettings/MemorySettings.asset create mode 100644 ProjectSettings/NavMeshAreas.asset create mode 100644 ProjectSettings/NetworkManager.asset create mode 100644 ProjectSettings/PackageManagerSettings.asset create mode 100644 ProjectSettings/Physics2DSettings.asset create mode 100644 ProjectSettings/PresetManager.asset create mode 100644 ProjectSettings/ProjectSettings.asset create mode 100644 ProjectSettings/ProjectVersion.txt create mode 100644 ProjectSettings/QualitySettings.asset create mode 100644 ProjectSettings/SceneTemplateSettings.json create mode 100644 ProjectSettings/TagManager.asset create mode 100644 ProjectSettings/TimeManager.asset create mode 100644 ProjectSettings/UnityConnectSettings.asset create mode 100644 ProjectSettings/VFXManager.asset create mode 100644 ProjectSettings/VersionControlSettings.asset create mode 100644 ProjectSettings/XRSettings.asset create mode 100644 UserSettings/EditorUserSettings.asset create mode 100644 UserSettings/Layouts/default-2021.dwlt create mode 100644 UserSettings/Layouts/default-2022.dwlt create mode 100644 UserSettings/Search.settings diff --git a/Assets/Joystick Pack.meta b/Assets/Joystick Pack.meta new file mode 100644 index 00000000..0afce52f --- /dev/null +++ b/Assets/Joystick Pack.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7f89baa99450301408c3ef062847ca5a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Documentaion.pdf b/Assets/Joystick Pack/Documentaion.pdf new file mode 100644 index 0000000000000000000000000000000000000000..011e50382ddc2315eab5456b29fb519fa838a70c GIT binary patch literal 181873 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%0An~j}-zxP{|^+ z=+HQ@n;wuW2K&09J4(x{S>kA|MyalKo=BS!8V)Ogj5Z;i_PGWuS1A}pXHg~YG|zT) zaZn-$Xv7+EqrSo#27J^*Oz@_Nr52!0D|&;-0fT&E3+MpCxzBWWtt8Kevc`Co&t^cGTsFj$N8`+nU)YF@R{evS@<-CFGWec7l#2cbJ9 ztmQ(_@UO3O{-rQCf3LJPBi;8l+Fs$YEOpfTy4XjHReX! z4UqVD6}C4!%+IbBy^DfJVbzzr2GBhM|IE;!8FGX;hH9(7xUIpM4-l757b7E2^&ufI z^&#&O&ZdUWoZ|d0j)nBRD^ZO8h%}|7>V;7OC*e?MO8ZfUDrLb^0mgdZGt+;}A15Lu z8MAY;Eq4aIphIjSAi8!jKaSx_e|AbjV7XaJ@FgDhQWpIS-D0bbE?N zaaFM`af}NbF+XQtOEGQu-TSB-hRRgBU@)6<{rOaNxy>V|-1#{RzglbRg_}9PYHzC%Hk(ANzVXU)E3E5L+>Bf^};02&{JUOX_@j_Hp;k^UjxSz4%4^BY#x`|9*sFe5$~2ZN$ux zU-&`Qv&0t%kwc-mF0H@WXGKuJE`o)xF`?a^<>fFHvAz>JZT)P{sh0mB;BrTAT^Cmp zYbMi3CR>f$ay4ZRgdeKn44cQZniH+pRSqDm#wQdt@Qt&W=Vm=UDeN&(7|)`PRlo!Y zDgtRB=*sIMI2(EnYmXeDnrkqFhbQg)xaxuPCHL3fQ*j5XBgUItu19po)rHH?M@O7*!{bu<7LIf1+G@85&GytsO`>zfGt6+ywV8 zL{p~zI8v3|vpCEK2bV!toxXque0@PHlrDc=-f4}i)f>7OJ<8SZFRZr1_}&C(T`W*DJU6g$;RZN!7khQJdxp?U zEl?Xp_f?xXZvFepb6RRYo~bPDwAa|R2w%{I4B@V{H)=KI4?*yQe?~MElC3B!b+F2s zF$;ZZT!S{~;GSJzR-r7tYS-XpcWU$)a7o(LKk_W$!2-X2E5m$Pv|_8bS*>xBQjb8V zTA!1}R`|BzaXPch_}!;w5mdpJ9ehlv>$o_)VX0z${<;GXUYUxY{s4u+tn9||F zRlu6SiqfE+*Jxl$*gRNk_A;vNf*j=cvRztsO7bske%+!O68)8c&~=Z#+S3BXyvzUo zntV=o&w2h;pqKrG72 zs^so3w_DEwFUY0pT+Y5~`?7lOYL-fSGfTbnC73R?H;%!k$sQk#o;eBjc7=aQ@mpJd zwov&P{c3LHpoXwUl2KB8sdUSpK|??u&Iw7}wE?{ovM2{!)W9g0rqNLV+FJ`^MbDq3 z6_e;u$U~0=!Rip8U?Hv7FMoKKbznZ~O4nx+?jB?$t{9~O#y3hWHGp(stU{3fcYwX^ zMbEEOY;)Y)P^8UYgAW<+l;2-XpNUT0#=NAwGm=ejdpuM&1p7meV`F44o7^sTkwily zwRqni30G$`z-NnXJ=u;fZh2lS`T#Yxjf|dsjC39&NCYvY5h< zp9#e_S=$`NMqbz4oM%=W_+~taEH2Z3IBC}Qi2s_R%woXIzzso2*o3_hRU)-5BC^Rj z|IKv3&9bXn@H;Q9_e3F*8|gKaT)2JN@YFP7{i$DskJN7@dY`-W^=ymwDi|<)jZgI` zJH}(rRm+z-ze7JGb!JHbr%}&?6j5kNw;;!y?TBYF8f#G)VvV`SvoGc0AS4)z0K|wUX;7sB@d~G5Rr%5%R?CM$7ztM;zdZ-{JB-vTy3iWs1+s z@-~o`J(V^*TY)(gNbmQ@OeHfkXkHtmt;A5#1I#ORo%0pw77G*E+YDWfTFY12R z`k{W_i=FfFp|kPU``scu{O53WkY2Hkn_C55FxYoMQ?w%J)|cPx&Wxepry@7n!L&p5 zA1}UZ>qoRRVP)|zorkAun5U(*V7#w|vm2BM&xrfopkcR+f;%_s0y2{a^JQ87>;P{< z_LKSa)*B|L`L^qiPCI;Lo5OfG~@c5+< zaVFu3az@*x9a}|YNshQ^%5cHeO||qVvdzY8C5)YRMaNW}Gt6d44-j|O={@&!-INZF z`N-EVLI{t8!TSiX!emdPG&IP<>dT%D#D6xfsxG;_9_(~0UCo>;EOa$1)kXGExE-q8 z36MDuo0hJ!*g0!4A}eiOdWsu4rIK74#fcr=wTjlZ+S;ao#cfrddDITmKd`QxC6aW& z717fM^=lWJ9CEMZl$C+^v44>qF->S?Q4j{6ntjQf4La%Tui!AZA4l4js@2&mlG%;56@5XS*NEM8QrL&+W>F{?= zQ({{37}{|{+bpP!*K@r+wZVg@pIWh`$Rs}pUWJI56*6aBqWS`tU_r125vZK8k{2m3 zQ?20@XQk^Wdx`1ly|Dq#8#<%3Jxv>=Tmc zfi?9k4K_rh_7%cpm3lN9W$kVo(gjXHp~^WZh(NjPx#uI~BXVokmxXhlfcIj$SqIg= z^E>C+!E?43nmMBblLtz*9=K(bCVWd4bcv_Y8nkYfIX=Y>a`j(HgG|5N`EoWsQx~&E zY`^!om22My^&QtO{<}F{{f)#JFQkDKdBB1q7=KAOU+h0r>s*fxEjPLqx?L_WT+2gl zRgXlaDCq6KI5K0@$&)P>M zB*eFPWpel?aOJdAE<*v``t&WIypsn`iMcXc$S8vRgZlVuL`nl9^ymlkrGWh5rA5z0 zI)Xe>cK%4RH)L(?4Zi*#06Qs^j%tWPb@vlm5 zjl^xm@WAGJxKYzW&J+aaDLT{KI#|5;WQ#1oI;hZBVDEeRh?m-lyB<$rAqfM1R5}_1 zRe((CQi*a|Ru8c;(N++zm93!yS5s|@8+O7+o{{0WspxaEl@t}|$26kraNbpRz`1Gq zl-X3~A9oQ!F45&@R^)TQRKIGmC`7O)a#WaJtfj44@fyOvB}V|%sB-;|0yx@3-W6o$ z)sXa7nt`y;jm&7)YIgC*#t441j>9%?8hH$lg#0_LhdmDDI-TYe^;sfbtKd1UY7cH2 zFYxn^Mo7S`KFTcieZ5CWHuMRn6RJ*Q3iT(uol77Qw)X>zvi3&g%j>{zR4K(m zb4qbAJutihLxEzh4>}=Bg0MypPY3nqB@E3_DY8JF7aDp+mHph+AMK(mH5Zlga!C8)#fVSPMNCXJ zh!6+*^lXXR=@P3B*DCJnV!_#$3>1$jkE<~Me{uE>K$Zo;!sbkK+O}=mwr$(CZQHi( z?rGb$ZM%DW-oE$Z{r~PC8?g~}PMyk|m6dfOZp4kcnfYb1%P*&d60-}iuc;^0LQ@2f zx5UU~H}0-TtuS$uUE$pidk=yM!S)hRb@( z?DArVSZ6G$L=gY7b}M6CYaJX}V6TuzMSc_%FL7K{4^w4%yzBo1}UF<7{Rk6o~^ zf2~@AucU`k;8!Bvm)mqD(!~VfCo9kOaHE9?R6d@1emyEEkCJP6IVJC4`+R=6S8QYLHi9sORAzV`v%J?@_iFSR!jR=XI{C z-IK?GLEsvDze#dU4N70xF)f5#B9qi(J%AvbIaWOj8o0CwC@f+*`PC)A3GA*x*JOWr z`5ftDS(G(D)`>TMiK|Ey!iW3E^r57G>;{~E`t4Sq**>=v%$`m0)wc7+4vwjYfqV^k zNM$qCC@EH%rJOd&UZzvFybf@1H|q>^Syq!C_73yQDx1zaN^z1LQ{Tg9?u(ZxjzIcngrh)Rb0~Pyzw0m@7wQkIJmB%MmM4(2SBa z5G;-PUE(0m@DPKHkJvzdLFJauUE@Ntg5-FaZq#NbrNl^N7fYEolXb=H_c)PuVIB}} zmU?m3(XrV(DE%lLvw*kJM2y6s;#0~!bGm3zz82tji)_gL=h!c}_~t}Y#q(8HD>wNf zeuR(_3MXiPwzS1z1_kx>PPjc5u>g0lYlgu*ly(-o;*Z3gbl2ADID&Lopf*H^l^>J! zYHP7ven31}VS8MOn zfkHPRgV($CwOtWW0YQ^i6S8>U%EaTXFvkEHd&6eF+$fRHm*e-GXm0bjVT1caEy2Pm zUr*M8WVcY(ud9wQy*=zbK}z=%f~MdYp!fSIzFhRdo#`5L?i#X84=@eYI4FR`hTj9D^MI~d#&93b*ENthK%c@U7U0he8 z8XYYe7Pb}|&yC)!JDlumtu4wluQtY6O>Ov`GY2!~swKS_g@uWu>*|N=7*(||>aDyv z8VJoE992uryso%siS)%WO^>Ktcp4flvkEGyHP!j3E+g2bvmNHKTA6v>Vjo!d>wDgV z4%GP5?L3ytMyZys-a&Tb_(~e9-h#iNqZ;mwPBK%H?& z*7TFA7GG^!xUa*H)h5-q>06fSHa5{s$AIdW=pzHOd`G0bQF1R-i)`iro{uaFMZMeB z@u}Yh_Wi$4&z_){8N>^af$Oj~yYp&E14a+&1!V$5h%1pM<7%4>3VRiU^`=);9UOK) zIey}imCFo4)BCfclA554T&DA!XUUIvuV8m$(mHV)=w(_NExwFulEy>lz{g)d%)hJ- zC`W1CpA zw&}b2@_%Nm2ZCn2$-}i&?eblBd0_79W=SyuB4)BtO_sDv?Do1gdPBmfKV0vp&9VoL zT2X%}dlIF*QTZe7SenE32Z*M?V&5S1b_Wx*ouzh<@tNL3KdF7&CoO5F(V0k`pSEZ- zZ5VT9sc?OZNjj~aM zqcw~hEOwQ3jC%4W_9C(2v&6`$(uyht{G61r$tm&4uvswVFR4&3J1DIxrI0Kq`gA|A%syR1Bl))%u=;f%Cr(NbHkgbF zWQARhODuQvBk~nv?Sd(K;!xYa7Nq6(fw%_55~#^g6sQYo z2@(dnL{Vi!Q+2`+TjKQPgk4_Ux3wcJs0o7wk0X4s0{NGS-R#U;@I==LHE=bHJG;;T zHQtVI8#{K#QP^!I>@@eT3(=A65{9lYAe~ekiE(17Xa9u^7jziGZknU^hO+ zKf#Z)Co^QF%YSiwHBdiL&kztFDJ6@kBEf=bl*xLOV#x|!uLJ!pk%I<9H@S=AKk5EtgX1(WgSEu*YV&Xp}i#K?iSMUD*e+(C+mqN;#w&~) zEkzDiT#pi_kc{KGA%ucIm10hMfXIo9C+`?F{Yh3H6fsR3D`Z()AiOs_Q?XYTCJ4D@ z@ga!g_ld8wmluPlNBRTSX4A=608OMY3W1x1G89J_J0>7#;Jg>EIi-G&9nq)X-lwjK z*1(@3XL#x$c)jF8P%D67{BGrFS8jtiJ)dD{7`n%rB_t#+ylt5H;w6ms33jFi|B321 z3$7QNu7oRGt&k~R@fVa4JOI&6iySnGqLKW;!03U=vs+lK^v~z`fK!>jGEwLjPM5T> zHL}U&2O4@kA18ytOY#BKZm8rg(Fa9qJb0;*kpR^^$D%wIxN=@kUkj>CVLLg1PtbB6 za{XNvPppnXG~WaY?gd@Zq0!Wb8j-?2<`P`o7KV)__Q&a*SWeXLuUD}PnF({@NmDH2 z1OW=B5lQTheuKc9#r;~3UmZW?&qzM8IB`_Y6u&#RlnmrZDVeBKrYmJry>Qibvvd+H z;tNtqOeBq7DW*Q8imIVo#S#7{TrF}OpKX$E2t-Rwnqm?cND(NFKOoVf(2p1fi&r%9 z(-2_EciV`XQB)|2q6P(ftsCycvSdzb8^w=HDV-=Ha!F(b*umNzhL%mxka5ufqn6NA zM+A^{Z3*TJxUADPkqzq?OEZuMs2j-AD+g_v(Xv0*_c379e^|fa*yZ7-a3UsdWKkznop`KqjX&*n?RRy0fQCFn2P644#jnOJcTgz)M zFX-5SKlPkkpIfZl>x%$tz2;Yzm#=>0Yb}4|m-~eZ+U&OM&j<%fOWufdNo2qm!SwE^ zrx!>G)5%TfH6JWkCiMHv^HkqOMMHOj`XC2)e&yxm_4)MbEU3BsqPJ1IL3xe0h2ai9 zc`k_P^OzxV8`9w5d~vGb;dZvDq)$bC1w#q+KpeZ2Bovn2zLnnwvAHwo6K)Ol(B}&f zxHeRRR?@C%Vf&N9e-wKN)^}yQqBX@7v`MK@S2^S_?0L9sd z^=ZyWQDvI*J@P=I9wPAmST@c;bzBaTEWG8ko5qt;D36nF&8S|MQaN;Vuur0Y4|;CH z<%1T50;8~9+@7ZeDu=*8`X`A{CN-5QNnE66mHMo{NQF;Fqy{==>oX)4v@4Z_>XSG= z=uEjT$R>8Na!kHeZ=W?oK%zTBiSArkVfPt!0=c_TmKJE6|JY2=6DFMPR=@S2s+8IR(XXQb`!emO=qeMsoWr2$nk0u^zmWbuR`hK5qR zx786_iz2mNR7z<;$jZu!Ss7p?%8H$$_R!G@CpY1omPO5jLiM$ScGEHP2F2!! zPcul4UWu_D>dSr`2?+`HTGc2y0}AQ1NBEsyt0M62gcU4l46PSBGbe{+@c!=h+&i2T z|D|CpTDCGAe9G!A_Uc%Qg9Q@ntiLOr#w;rC)?Iu|ORSSm8dbU|`>^DfM&5j;y)e2R zGi=o(lNM(po9k0Y1A{qK$E8oqncim)KAlUpZ`0B}_FjuyTxp_`mv(FI#GnZCT+pKj zT`AL!p8Mk@+=*ANmy2B#Ap}w)^jz-^Aq2Ao<16evQd$6=m4Ab1j1$}M|AtBRSJ6Rg zv>CUKB%_TLy9Bf38rCIt(QSxpfk#rq6vj4ZzNKW!o!_oHU{$&2P|L8i@Pfkg$9dwyCQ^3a7=?E6Zx%wjpTXxoKs;5A)>=RsEn^-DTVE{(b3 z809RUP7np`$p8v9dw3+1x76IdLK_K}CitR9`2-ZelLq^K;pyzjlUM@wRz=6(yT$5o3%y~wde7Qn)%KV5@0FTbu2xnqQ6 zWPw-7^`2DWb*bS%0I&OhH3yI${hs*7evWZZJx!f(YtgW#*Onufik2W&cLkew)ec*PTtJ84q&10c(8Zh27Oag7}51>{b1?IFC?!RH8e5{e!E6z8zeQP zNob&9TimHAY*8*9E&~5EbKuUz*L@#;K|My&!9Nq|i3LdjZ)IA@Wh|4K-t)+}n)KTr zH+whiVH2;&S|F!Oz} z4s-s^mwP;c`eRzgT`P{eGt9d-4N?+qGvxFY9xWttd2IAx#V@<}!6JJCCTXOed`2p+ z@&I{kZG(4~>OtatrTIZgq*}Dc0ejo8`v|;a>-bGgh-b!z!dqh%=pk>c$MM>Z=kSYr z8Snw|Ir=#DcwR|yF+s^j3FZr8hW}Baqfz1;=pn%VZs~(ZaQxq>y-fI33$a zo)iL9E26l>*cfeK6gtwJ{74Sm9Q_{Vqc$ED$(dYmjnJ2HPMX1|2>6;HofluMaU3e@pSkt2uo)jGYIZPm<)Jmle(p-E!J!D?} zm#U})-gj|qGMv^@OJHLrt;UzUD8-+wDk0H^gVZXWAKST~Xn0ll6HhgN%$g#bePn)Y zD_`}1n_=Nma95C^R;Uj7x)p%Q=l}W*x$q4?*Gc`tSOdX5dG0UsYuxLK+yyB zm{ZgGS;c-Ravnr%GoL@_oWUdwzJ1CNCj-o}157e|?yk|UR=8Hv0MGZT@g225tNIjG zvIYn%OGC%!Ckt- zC6uSH);_;koOvKKCE=Q46Nmu%yrNlstMpHso!fssyMej7C8UB%*9J2-_o9tx{k78a zt+TT7HyEfv%-up8lwc1{*CVt?W*9)8W zS%WRs*533-YcsHBKX7D!`Ap3CEpnBETNo_S-FX-*u4d)cNQLIm= zPAM0t{0%z0%7Q%n`kymA2#f=GuX#k<_<>6qu*(oSc{bC!gwS7E!-zx7Ewc?lz&@yc z55SdqYMKal7$~?Xi>v{UL5yv6OKuw?u?t1;`d;g=Gn7NP0dYqjWiOa>y>^zDoL4Bc z+Md&sNL_KN>VjtCwT6Taf1c$OsR>-G>?r zZ$)WiytsMjtp>5V`kx!rNpV(o^jd1Nj(24Sn>T#!yQ2|0m7p!G%>$NKDEUT3ERQNG zCO~2dJ1IM_5r^-R@^P|=@0wFKbd@}LwBfnk%3dDGuV_AA*rGg~)KTAG z++|1IF3_Bt<+#UG5g8TAwJz{Z>2Wwhx>VKwq6uM{b7q$Sp$Ym>aYy$%b? zxS&?qR!ccSMmX6b30ZIhx^@2ip}*_(*a>@>So!`_8__h0Lqt#1!C){ufhr>3&Ffw{ z7JhB7>nT6?88+EXC^UMYH3f&r7?>-)D4rMh-H-OPAQ!r(Ot@n5Z(zDe?S#!uyD_*e1e~z6+LVC ziCKlY?@m)jUt7LUv`KxzsEuaV2^Eepd$7x}dn90`hGlIot3aK*?_NGR<|l5nJ#fG+ za=$O9RK$)^b+C>(MzTCI!0aPzjdIr>L|if{3af4X#bE1R#sF*puErq%MTS30VrAcw zheC6}Adqz|QKVvzwJu9$^+gf+9b8)_!GB{trfn39v0XlqJEF=FZh7iCzv|wXXAxlF z*2?!}*aZgOu9Y3U;E;7nj29bJ+Y$3>16bu9&xPmUC2v4)w;RXej1)TrBzFUjbLiG7 zvj3P=6K9y4TH5vnT?>luRjw3*Yh4Dj-|9iYD#UKoPV@QC0d&7hk1RA-9gKbSUnX&! zzuK`jHi+4K$E{#`k_T*AzMj>jyTaA*twM1PaINSeZ=iu4Ua~F#%ONi!m&11MjUy(S zJB=^~f#$+aSAfyMw@71L0NVz#SG3kWFyj*r9N|Wx{a)J1-V?vg*(gWGQUqQ$h&K4x z`9GillM2uJQ6Y7$#a}K1uIY9#7kz$RN$$@Os(m5MvQD|el-z)+xA+=+`JF-O| zu56siS%!VKD&i!+*v|6rt+=~g37sFTv#Jh(ZDY?_vC-r!IkcP-cv9_s68IOl?D@-H z_ow1^L!)SHl^HLve3u#L6}=h(z2h``_tgjl+Ihy}UA+@7FU+h=MHQAPC)Z0buvu@< zi5r^{rAg3G1-Es-x><8_aiomf@0VGcA8MMjS7M7wRToYAuUsc z+)zeMogr>l7Bsr>;AoznaqQ4`s_1M^l*PBV%UrC`X6Vk1K@Bi7dMPpW1AUv5g$t$2 zPS?tksoqFZAI%q0@0W_|`*iozp@i%tYTFREXK#wtWE-cNy!k-X%hFO)pUk}|D+-dd zr^^}(4pAvFPgwm``xi@9O?^#uu@8O(D4!Um0e3{)Jvc**y6~9B_IUn>zth2K3-M$Ys3+HEp;ro^@1N>kt1n> z7oDrVmOV$pBzJ6ZF=zoiaiZA1)t@p&O${J`*O%||C)w|~jSV(aA^=r^jk;^(5El9` z8YciP4ZjBNk)b=X$^=WI#AZrB$h?Vy9-OvMvW6(N_D->KZ@FtXoPI>^aT4K3ef$)D zQE@y3<}c7m-l&Gy1gUM9K?e!k88$-sct8x*oppX*nMooQ-?{~HSL&2;M`8Tq=^PlE zQ1?H8A8{K&6LS~h^b9U|^hp_N>Jvsm`S%qHqm)y;hvH-7UpY_RoY-Se@7t75O~LUa zs$5b{rh>V z074UZ3e_?MO3|+dZiAK=>=TAb+3T`n?0z^U*BUCEp z-(Wk449+8S%%v1;XiK98VpD?;*v8@7zq)9G^Z{vlkUqqlzLQ{#ff~WO#nY(0C%*fK z{r)k+suR;_w(ud_vFkg2p8zSXRv?mJzadJ(`qSt45ZA=R9(#B&LIc$H@x*ba-84dnW?9GF227%GK4yFi8L}!|(PA(2kdGWsP9JtB+#VZ}ZsR&KrgFxbOfFJb4uyg&2*x|D>U&=$T{<^btdo@#6 zOKgllM>AFyL?mE=Ij+U}8VO>M#PcGpBvv8BT}1Y;!DWR(6Mm7S;0{LdSWU3Yh`{$i zoDlebH#62l0B;3XK?EIvq_fsau&fQp%g`qU_QP+ED6Zf=SyS_JUP#yW1#7*^aKO<5TX!gkZCln6z-9STl6Sh^83LaA#Ph$t&dub&@q#YHf;`;Rmg*=){+l&7)gLaoOWpa?LI)|St}8;#@{OF zx;=q(KwlJBA+!&H&lKr#v&GXxTdg|{K19p{N$Y(}>cJeX1o2^A#Y8m)Rb@be6ycHm zPw?U0@&7RTn}iGILX^(v|6wT;aoes`HF}A`^@Bm-KCF91!Lto-^yk5C66>3}^RA(J zqlAv_UY2_?Gn`4)P^6fhpxPmu!^M8X9}vJI&b`m)ZZ7H%T*t3T4_#wPY5 zu<4JUt_tC{WFm(;P=I5}9^DLLD_(HiO<@QqotmE}GXxFj=-;e-R5_MlAJUA&m>giT zelB>_pd4i18}nFl&gec;Z;TQ;0kk(oYA!~|b90G6W2uy(>7WTbh0e0DwA+oMTr=h} zutBVE70LvE!W}y?$nX>Wh-H6c2=xZl<_X#txmv8GKq5IZWCyE@<1>T{$vv3D{of=HaQA+CQON1=uPK;*gpQNx>|@jJkS<#!v8q?9y@>v+OK&1IzFX?EEM z3_5E;J;0mI><|<#+WPb~Fv`k43F>%e45{{HK6p7QpOCcADLwVXf*9-)Bj|7CGV&|X z4C2}g>pPo^B5IkCIH*;CVo^ROjn*`6l(KeYR$|U-atU5)DB0^77BgG2_91!g#2bG7 z*a->siZMNlkk$!y{)UW>zBp>xF5#?2M91YE}93=^$A z)#Dog-XTgB`>AwWiw)>RkDb9&Vxz+lMW7IO2Zf!vy^M(lwv6N>DN(}0hQ^UuYU(JB zob5_y)pmQ6KwK2{q^onmkg;*!zQM$~K#`Kf6&e=~qZr*bGtIQ@Y1g2Y4m1tDbAmRqRKn_v5*wu;j&_GVJ@wO0yNsIQPmf$!lV(m4mIt zMKc+bsBU$vje0pts1^z9y8WsaeyM2bcOj{4$~bJbmXg!cxooQIbq7Nw7fjDiH+L%! zhi>qEyMa2?1mncABT>}$(l(is7dP{J;^b%-%^oxg=bH0^Ya8UgogIRPSME7n7-h z;LDl_KZC(!)E}SbwIoKdLT~ZF*oK^F#RQLf)2{{j_fG zaH?;6!Z{M1v-E~d7sHe7%zbcmCs7IyER%pHJop}mv?;^qwg=Ok=*e)iIDF3GeY&zM zd)E$ksKTf`z$QceJLUD!bu=be`AewyBB^>w$+?UgIDUP~=H_h%HI=ughoz#MtS#vB z=ER@RU1u=Fp7ddn{4Q@Rl1XY&|54|-iwD`7+=6lS2Bzcn)*4Mp2+ zUSo5uPoj?D)=8JEZRO^9b)8bBv75emz0BUaWC1-}$;T_i8xOs$|5o7}@W5$-I~GWg z5B>y&@Hg07Bd!7WGsU+n@OgiU0@!UMn^*^k?N=z;yzH;27qpp&YxY5szu>y1Bs)@* zHl3$K#(;M~Ge#h^pC_6i$*8?h`VOfZrl}iv3L~iWeF&0~xDLEmK%6~hK)sXSSMYDw zFI+veh57g02I*Jrx&df0SeM(EWrw#_GL4r|jnP9LtsP=q!n?sLMaBG;fxSesTgOnB zX-U(I^em7~dLV=4rFqsQqGhkq{18|G#ipk~m}8!v3WV0X-9PBj64sH3`#YBBHW4qO zgVNS;E4cW8i}!MD^Oc;c<&wjc$#DEVf|>*8srAN+*l5l&e68C`Ln-#Zeue;UsR=KdH-_p%W5Y3X6(!7 zwO-cU(TliIptzbEai>MS=D&;jw|k8K{5TgMoeN4^5{YsM5V=5 z;giP|z=c6tL5AJ0`hIn~9iaWlGNMhoM*y&r=eG^K!0QkL>%H)4BMyGnqlkTjsR{9` zIsA#xq7qo0^qTR=XT1ArIvJb_1qZw`zm_GF9BsO{P>{yhNN=ZMTX=3HsSolWY>y zRhzkVYo4GGd5r_d|2kPM^|Pv~Il|L+$&rbJwO+eg`3x?<`CCMIdE0PVVLiOWErkP1 zx8Z-bSyoYo&HS-DzF%qycp8(xsdtP>=EmVq#M&W)l70=gV53TT-{+F{*jQ<$dTuR8 z)K^0B5@d0c?2b8FjG~uZpg~BRg+g?~v9-a*^+{y3J_Lf$h4gNrovlG**6@U!RPcmu z&W$msdK8sPjYl)@EW>^N`LPYqN&X0xXx=Mv|jl#k1m7G!Zkq8gMMz$AjXC2166Nfe0rz1G%BrnYa- z>y$0tr|45yf7I3Kf^ok?l)!~rLS&@IGh%ayLJji@BA77Lf>$U^lSA5I$9d-jpw`{69&3u@LM`713I zB7R8I8v*9$i~bQE6!Kwk#oN~g2xbo&+7{1}!)8AQQiN4Wz{zH^&j47`xo~G?dJG{Oj86W*5vl81a&roPd<0fM> z6W%?+QFn(o7X{KF9xPei7#MWyyrPyymq+h*Eaao@1vVf6`FYXVb z!4FE6j3n)0;!`|6@l86uO?am3ms9yQ3EUCvjvX$(t&OZDxa3Cc)%^>>jeE1+r&YwJ zEVH~JAKdcYN9Yv}|`gSumdyWU>(WVWq9G<*6J0z7Gv!KRJI-B_D+y@HRs#C6RY>(tH) zi=;T>Ub3NKh`S^2JHP(;Q)*p@Eg^3&9xJP+^M1UWlN9EpdNNXDeR-?p1Wm03wZN;^ z)l2tczN%Y}dl-sk`*x$Dl2~5j-Acza%Nd;7$gfP|vVh82>~T*TswLbKs;z^kJ~+Qt zn|0zYsl%aCGm?3mLMHRemgZ1P_?7M5Ken>D`f1=GY-1JF-sDXOJf~VhRjKjL@(V zzul?q#uOL{T5fKuRP19bJE4C1?DnSdYr|(>?^J4@qjaN=YAYWs3!*wL-Y+n;X?$I! zz|6p%Z5RNRNzWH02EHUF^v1s7v!2K>^48zVhbAoget@?^YFdq^L;)FC8@!L2qmg7W zA9M9q^h+&55=Be&o{+Z60#2D2c^Tc=E#B0#oHawcH(z{5UOnhe3HcL;k&|WTEvp^v zE}}(M77FTxoUGf%85$O^qP8(frGC;^3gc-)Ez;$J#ThQoZ#vBlk>Rtb1C>0fW1Eei zTH~07T~~uu_9ifx$jM`u5O0`_6>MSb}7bWCVhE$VduAQfwL5X}GT_HM0P0AS$ z4aPVg^2LkGZ@RL@lo}ii<7z|l_Pms3T20ZpE1$)D-|5d=2!;+}67VQAN!T9tA6H&M z1A~M#41MNQMNvrCjltM^l(iF;`x5c~suz3Y)|&u&aRGm{tSGXXhS+%T_>1n}MaVFc zR>9B31}(BFXN)dtG_H;?bV~MESQxtRw{~X!HuhmwiKs--Yv|BC6Fj*_T#41fhatA% z$;0K5`(#V=ydFJEFw7ovghkP>)!@)W>KJ*GY9`O(EohtSbQ#h%hW3hQpGF}s{)fSjT$;A=UO%zgrYmxl1!)#lFnKF%gj?FbO_Mg!%Q`sN4^8I>(aie z8Z>_>f4+YPLgE;<=Oy?h`!Irq$xIk=n>zB zQd}Ht9m9FGx&KU=aRt;>K}dwN;Wn#~*SmUR;=7Vlo`Py=`ELD%5J}lPs zzMIpUpXzv%;xW{do>@zd6AtO^Pcn;kwh6_$YiZFtyjj!BUEWvCTaZ`RUWK$UqpfBH zguSvT2h=qN_PnAc~6i>cs5)3X#|H( zf*!)aEDXO3Jjz<0@XA$YZ@@C?U@NGf9{D8sZ4{j{N_BYEiJggyVA(a93T*u4MPJ~v zX^Q%iM76R4Wdpl0?De9)ts3>K{njE%9sj$KGX{^_hbWY~iJ0cKoN^;aDs(Ie zH&H8FxBS=3NWmMzL2Bn?+f9NEObH7Jobd(i~K{q47H$%zdyS zR|WsFy45)zTzVz91h9vu%JZ$ak+sPECwhtGqK_9|prNt1#eOvTCySPqZ8SR;942I% zd(kwON$?=e)D&3Q8+Gia4hd#_y$Tu4?XA^y4=9$w1qZAEd${zR(CeB`Xpwg%aXp?p zakLB^dG2?Tn%dg!cGHOcrKl(6lDUu8w^1cHj1iZ(gFlmLGsX zb#1^ngbWm^8u&@l+zej{|33*Y473cm|E_<$6ndr~W(qCyPyY`J!}P-`{;%u*jm+|2GA5QEx(egJMVRTB ze(sD+Y`Dw}bhym)4F6$?f$krxg%+3fhh_Yu!%UCMME8$?%=AM;{-?|MLug@U{E;%V z;Igv)$ba?SXP+!TJ~J}>^W^6}urd9wOqhR@{=b

7h0g6ii1zw4%gPqRtcMo{LFeRYVd!7_(>2)ANXcu0WJ#028k84py(!KAX6`0X=q^c#s}^PjYdg}Taq!U+hK>ZoASfZBASP`-*O_pJ$z+7WV-5lvfK%vvTT_KSqlZ#9 z-zM05)OgfCYvbGDsVgl`R9UwkmsM$m9Z}-Z%T%g$jx<&6W_b&q^N768ra?6vRlkVh z@G@Q#;afaazBQOw`<&K!gk7o2G+L}(w4bfz)V#dX9YhFse>LpZZsm~QqvUP4J#7d{ zzZG~hV^+60MU?Zjav^b?!=kcEl&}chd)seEH+NEKZq1xPwAMDc3P{XKeN-`P65cHwOlOi} zI88rAU@x))b>bdA`E7YYm=eJ$*puE0lbq2+i4w-FR${|6JQ64GPj)10GeFV0*%F`e zCB&dKGqk^S$>zNoCfSq2oL*oyCim*iktoBEO@_f;HdueY*gPE-&Q!;1J zM8{*>s^j512Q&UkRFr`Z^Ne-B7D_j)&~C(-eeL4Iqdk<{qw=YpN&iVaM%#kz1@qWY zn&Ay$gn4)^d^kK_WL1cN2~oa0gvQBlQM9`Uc2=n+QDUm2&{djePSw)ZT6O;ETExN9^Gqbd(BRCUo!`2>VEf=^$lk>lr8zEp4h&PU2)<3cn>`Ia ztSM2jJv)%QC9@>q7B+iwNt~?TKp+zLW+4Zc@l$Ke7xl3%bU2+c zG@ag?!*DpA`rR!T_}|+9V`6MjWmnk#7uECsBKsej7cq2IetW*Z|B8L~kbP+^r-}*q znf-n7>2g}<`hMpE|KC0NKiQE~U+?#Eg!z&x28|o*p%Uc`hfl=DO;Cjq0dpIX)RR>n z%e7tza98+^G)syufl%s?Zc0{F@=nIPE=Xg=t1hh`)0l1cIS*0{B}QQ@)M{A`viw>t z@e`K6xM2LjjC)`wr!tn8%?Rlx9&5rWRcNkm8_DVQgL4XSOYT_0hrx?6eTVbPgyanO zXu^0=gDR~O_E4vp4Uz9@=H9L}`)+C(H(}t`ka}1xk2$od+TD&O^y%S?qmv#&MHiVj z{o!X~e0QV1`UovO%DpwUtLWsuj|e)CY#8rBUK* zJizt~Wur>z?U59~@L;`qWXmr3_aKQEAYimG3eQ}{spjQa(8h#4aJ^}Nt|J`Lq4j(d zqp>o&o7o#5QqIiY+p4m7n@GdjEmVF?jeMET%TP;hO(w{Y8wV>Nf?dYwBpsBgcA3xi z0h=&S^pGwTVQY zP>)}kvzD*3m48sTibKcTc9cibF7L)+3r=z3&-KS;2gLOqq4Nv0AGd~YQh$#NS*ui( zl0Nd)P}!$+e0V@{EzJ~D7U&A$abZzu4vscNXnM;Xl0T(TW^Zb0Dg}B{$;Aa-^|g;& zu`R%(0iyvQUY}W;!fAzo3z%v}fHs*TS|_DEo~I2iHhqB=b?@PexVyLQ7Vs0K@Kny& z(Al>gjd0HoRwrj-O{O%inF=d8J63fxyO&Sbs1(RGXm4zE4%tjUxj3M_c2IqCq6t*r zAGbz?f38{+VsPE=00(YonmKf&`w%*Ab-7IMW}oGfP|iOQh>?Z3+NR6aFy`5u;Qf^2 zq<*)zs|Yd9-LWBmv|ANo!2Er8V4U*aM6T8#ut?}`B$ZIkw$eG4MQx*Gr*z|SdtvA^ z52^BuInjNa6=t*0@!_t#7@58rUvZwkDI~;cW5nH4@~2M$3)8|*Vp?-RMMV$R;eavm z?W64q#K*tG7jVaR)PvR}e%ch?@<@jCK|x8XHi@UDRrG0GX+u+K04uR=qo~_zq2w|l zxtn^pn0p~*%!ubhEa>M{ZE&)CEzR2`sQ`KUSTbcg?&>+w;B9QPyWQR`WrNwLMaH(x zaX(y`BJwiS6p2#AdKA*-l`%w{`WhLt8s4)NA~?4%c-;u`5Q_?R?+y&Kj8>Bf6>m|` zO?HL>LS%$oiu*_!!?+uklYxi$h@f97CP`?tJW!?Py2p#oatm%Cy!owaY%*o#f4E-Dn&0 z)%A(k)oc+G_r5h~PJDg8xMt2U5l>NpI#MG)X8_SEw39~Eoo#_V0uT zbDiJ4*fSA}st@+4FJk<2zhQjy3vKnvadrBNjcOM$OIukfv`O9na!O17a)_d$u&uqR z>ZdGb#PIxvtR|BO?2=G}hoM!2N4!mF|H+5ow*9cY+a)VHm2e6YZjvxCm9?FoS;YUv z+BXE}!bEMxx$%u{+cs|S#y7TY+qUiG#fmM$j$ngiR(!Po4L~LM-CR3AyFV;r9B%*JW zLJXj{AWZ1VFtASE|Kz^AElPT;`pWU=zaHegaH{ywQYH_MT;eYINS)^UH!W3x&h`rJ zYl7rpGxVK)#!b<&+V-%*5resJNjIGU!Eqg;uebTUnQx}E*4;5oDKJhg+m0y}TkAn} zW&y`vx>g-BXO=crv=7C-m#bR2vCVAgWw&pn4R?;LX0alh_W$LP!alMrD@+7OFOqEN zGf1t*>lsu;f}^Vct}9}Nxr=1-jndG4()8` z-t@eL;?vt(4zlKIp2T@m1(|@JcHh<>x>q?PSSpN};84ffo!Q?7aPsOFYbvS)B8C<0ul}DBOU~y(5Ar8vr zwyAMkd;k7k-)h|&W@_l1$c^9*GP)7v`m9MP*{{VHwXbbmaxUAz1SSZ;P1yb;^X4?} zth_ix_AKEOUct7Jp4BmOHRh10$F*ulv^8R2c36Ek9gWL0^$@D98XuNf%{s``0ne(3 zRNKEY7_Z3C4pB?-CT)+_(zz0XNn-k&I-U>?PRe3J#0a{U)xJibk~%3$aNy<30Ud^` zG1nL&@B@KvSVc)aJ^5^ff3H9d%}Am8x+qXQah{N_icHwA?IvmOgYUgj_A;vsef-$w+lBXNkkoY2WJVR2z1}GN9e>~SGFsUU=ZpI(7rz76 z3$u;j3;xOT%6{v5d$2nKj7v z5|v`EY?y!om%^nK0Y!dH%Pb$!4p^jh2t_HSWtNCo15ExkEJ1MrEYc_z4Z@RGq?G+N z>_AyaE>kwFKv7CAQz+Di$wMinX4ZhIMKJ-${532@DF(}fp+Cx3%4w;X9{D@f zoK}P`;8B@GErI~xtVSXcVNEWlSeS*PlX6-pmWq-Aa8~WF77Il=1GFXE)67Xlu#x{w zv8PHX6q6uNOgYULOGJqPkWnGmie;m?l3N1?X^@M8RU*vE3zNf@Nkk&-$>{*W)CQ{k z|AK3ROM(>w14Wvs9fTsj0G}m;wSY^d{XD>D;ouD5^WR_`;4^SZJ zy;4MJvisi%%H-98L057DwS8uC0+oGaaspMuER<@1waPv*c?(s&MuaQ?BH3KAzjiPP zz?VPx1+Z2&3_^LKcBn;pp>k+Naiex9MRB8Y=tOCycBn+TNNM{Mk(JUW6@i=5CLD2* zqFy@a0?@7;WCv(h52^sP%Lnt4+e9KJQrcu9q*K%@2gw22Rbq`OnA8phC|1ep)q^zT zi}ey^MsW%w1O>7DBKTgxJkP&eE|JeyN&g=P_55I-pI%ksQ}xo~vIj>&WL#q>C03Xts%kDxE~L7GoF&IB_70r+{!Rb#3%7Ais2$1oR0Z)HteL67q$#}O< z-InQ2_jGK~E+N>g;Z;IZ;#i=T*-GzVaoJnckjcnyWKGJV4pJ&*ZEwp-Do0hqQKCr- zq9%`LL0n9r=8k6}SPYO1v_zMz-ha~RLq_Q;(ka4?^jAz<bNXvs$g2aAn<2V;Ejm*(b##OzdR8~DPL%td<50o01)8BR%MM$LW)E%!uTdd+UfLyVTpLj9~n6ACoo%I3MEmZdMLKMq^X0^c9|y`Gp3wr zwy=#U)660Mtg)$!bW84rPzxv}b|v%$=MoFPQ^56_atSrxDXg5%H0C{X&hS>wB<8(i zDocr!3~B}d9EM;vSSYZo|5Yf^yK4jzMKy333Z)}x*nZT!L@@v&8*WgNAx0l(dOA_4 zA6CJE$N-^?D&C%IHe}sLv1X+RovW;c5SH?Hz(wVlC$itHdd{ zoKg;_grQ^#WH2lL?+QDa+D|*n9q-f0mB?)}#89V<^(FT&GV51DkV9K92;qaZoaK|1 zh?PK;xR-F*>YqSyxDK-nF==EJa#h^;E!VC3W5%>Z5hfR5gzl*~muG?#?kucz$PckT+&M>)Evh$YKIAPp zl6cOQH<4xe!*`j zPUWM_38ZJPQ}L)%?v2fTZfn7qSB+b{+feAycG(e$WxLVa>Cp+@PTl9%QEpq^sL6Km zwi5^4Q|=Z2M5pn9#&%fq5}T6N5%#`LSHYZ>rHr}uV%g6u6$e{nq4->*qWPk^l{5SK zTvQia7aS+u?R+2%TqedVW;)adrgwu-5hO`Nv&~2eWUL&y{!9a;s@7P>_S<$S!bA6i z>GV@>EaLQ7)=^HkL8_anZgs1zXmu-vU1%#$?Km%g?L4oIXtA56Ziw4>D6E}F?u-}C zKIKV@M>pWT_>#0~9%H+SQ%A=cCSo^~vg zvRz9~$~sJq$9r?H6S2fyKFpRMKsA?d4JyV;D+oK^-zz7dAxGDrno6^?z>5<$G^wdM^pIC+%IX7Ag*BJ zA4PDonY`9&8`H)KcgkhnYH#aB#D-1nYSXGZGVTUOrHA3%+bWh>G=<>0p|iY9Ehu@t zYN<*Rp^Ym4m{EvCY_0TTa6{rMm09xfR2&Xru}9%OoHU=}mRBks`?RcMw)fHHpM_gy zo4rEo1KeWAIjX3&dD>n~1`!Qkb{vy&fdU6C^LLR|k|S;Bebt{G+0Qxr*BQ?5EWUyD zCb%+HEtqViY-l#n6EIr;BOuEzo<6lbM;!zgoH{%kSd@PVFhdBOi7*{{67oEN)qf#? z8)&VM!Gu}{ZW(~152b*h47w0tAwAiH!h}o(Nda;Y-~d$D zhiAgUf{ca`2N?)J$;YAsgAD-F$JzzG4=4bZ1Apr?G5x~&bqEUX|1Bh#&o~Qxitq^L z3Dz!zl+POvZVX-uvgKbRgh>Q93c&+zO9U9JES^?Kh+t7_tzTK4?D(t3J+hs675G2U9MKsS(J7k9T7_`ls!0Hgm*z>L2jcpg|D2q8EjC?Oaj z$PM@n=ndEnh#j~cs2$jUxSIYe0W1D$0c!p_zzLuOqWz-mAkpc%j!AeX_?Krq3lfPa7? zKpcJcx=70~c9<%^fG5VfZ^-3d;5(-J57>pC{ukW;eGvm>6&&IjB!FK?AL;l1SM`7P z_6cZatb2xB?g6f2s(*l4>FHm=RsFa4BXKkEv#0tk;kGNdX};I*3e9RUworMmuF0EoDXFH_Fs`yY2sxA~&mVj|k3F>K3M|LsIHXh@Q(UXexbAE!SDLxUDXNH|? zQl?>;IGwgtPdHdUO+2(m=P&{$x z0{I0qGoa$kt|Pj#*WMOj%h&H!z1N#-TcUM4IoeUV*FL1s@T}+=+A<6NNW^bEX@X!H zVA+WqJ%%M7ET$eQ;)VN>K&Wx}!Ezso2QZ*fKnQ z{?0-guHhVSUBGvyydK&L{X3c4nSWE_Ro8M;gwTYn7v}6W^a-+Mx5+Kotl-ZvXSz8S zW=`9T^NqTMKhaBliiG!QT@-eP%tsuzfOyF!zc1}U5M<{y+qrP-@FwL6Yl1ygY<8+~ zslYfJ^@!3fB45-r@#>9Otaj$&8MKX|TDEd(<$YbMHkGFYk1!DTgJhIz_s@du%FoG- zcYcyOS@L4T*Mhh53eyK-3eAK|$aYX?T_$ap^4TMdBqWJM)~^I&ee*d<0DaTt$Ln|v z+SckLc5;;+^Sst5ZDC9V+=4Eq$m*-I!6z;ey)>B&hpfd~ijD^M#?}Lm@^_3j*FbR6 z?~q*eB-5?T#KfEJbw=xITf#M(4!h~rs-ZJJzaNPYx1;MHbGuF8W;e;pfV|-Q;&ZFc zb3nU~z}A;VZ7!m`NTiDuf9A83UG+_ASatQv)muY1Wud@Mk;d{esg$Fy>v+wjPWxJC zLjpyoS*@did@HVG_#9noFq4}&Qng-M)wj?4BSFQ}Mb^=D_#C|6&Nq1IxsRvY{3FB> zcEwo3tlm$x2w|_FjMmq=OEmu_oEfMDBkQnSWY?&yMY-S3n`L zi!P#Aw;NX%P?F~N`v(r@6Hyi}Q@?JqjGn)?@E)uR%D-1CAM5&*9(XTS{)AeU)YUD^ zjp55VR3pm41DGGflTZt*EWKZY33r+XKg z{@^&@d|o;>&%!#eMTo3gZn@!<5Ei3GhS`%!pjn_0tR6ONx;s0gVKH%$OUBw*%Sm|? zbyjwE6wl)l`8n!7%2Yl?8tZA`m=csPJUoSdqzYI4Ie4{Lg< zzq+!yS*R=>t%2|PYHY;Mm6OEIc@y>d$i8|Ys}zG?FeZhw)iwS5H{D^RJO0Ej-ryQ_D< zUnG-=mTDD~2=9Z=jjIz+pJa|DQzD|F&|VoZDq6l4gqD90CrJW2ZACOt$N8o@T}U}l zYz(TG(yRKa-~Go?h=geh_)c?^Ur822I!EO%lb4AePw3-j;gWzl8QsOh&VFF>4KHcI z*UG1^M7my}5DV=U$!(b}rMQTKwa(rk(3e(5S+_qJxCi_)%o-Etrz-k)LV>bYCtHb5D zMpRA3Sxz$lWwNhQR42h|UZNT^OAvvpjbm_TjQnldUbBBy9q5woj_qh_BN73${Z^5b(^H&8OO;8aYL?Rog< zMD(_jQ99<=+fwc*zWMx66fqL5zGdJ20 z=!Pe~5urV5)1tfUE2R|Rs(9Tk+Yc&=M2e;9QE9ZRFHtOIgY)d77U(fjuRQIbE@~>$ z?&{0oa4Y41jei_gnnz(2ZCxbg5QVa<;Vi5dL%J>-{(W`c?yrnng43vL8rh_YXdHo$ zVfAlpHun}n4d5s);@*m=8L_v8oo9(8$kcD>L^jNOiTu%9r%rFmDj|j_r&{o>y zW2I^6swm(y`ohc3&Y`h=W9-qJbo360jZTF%k{wp(S6$!!)7IhMq3kl(IS6G&&A}zT z%kP*9+!@!1M40|t_35?K?(;`)b9rg6y~;KI?o6oK)*i>(moC<4ToW$sE4SuZ7t5jY+q>C zjjNJhm-d`u5<+=v9oY3WJ1I~)&Q)O31h^m6vU8JBw?_+rmB8=s3SJ31>~eDszQ zHP2JYTU%_e8Zb5z>r8Nsjieix&{m;P8@cpTx!}lzn8?V;h#&4py*yZ@>d3VM$e36| zgUO83-?G!Bz`PwW^d&Q)J&*$HmvX)AR9ZD#))G$;w~Egzv|MK1Zv4KTuB+wd(fgGl z{$2L2fn1^%Mti9?w&B;=5(9l#jDx$y(WhXGVbq>t0(8KYfT>bKgo%t zndhg{?B+TWR%2r>J)p}B+Wd3Zg$LMe@T80nj4Jgxvv;Wo>qCBwXDxb8qd2#LVc4Eg ztvZT?JEg`CU^m$hQi1WWI)a*kT1Vl{wLc1uZ!FeMXi49o$arWqa`eEcZ$#RJEeqtf z);9W$$Qfq#F;DHLo7&5;a+P4?dEwb-TyH9k1Z+9abFm;Yjk5&c|KSymQ*&{Q=!H0qfLQB3hMb<7aH+$0mHj=|A{Hb%**li`ezej1$em zGz{Eg*s1w2ci)_3+|MYA%y0#^`-X^QR zQ!35v`i$%m0pZzMQ|-pS4MWg4KcJ`&(*o@eJ{}Se7lE@q-|4RVY~Nje5EK}oU^jR< zk}VDfu~Xp6yvpn|g83(uW%Gd|KeYj?CqA9kqHlM&%62?_yBA-R-kq>1&!V=mDYO zK_f2|+^*m6c`(ZR6gw+w@HNhX3WN&4)!_>E?wdewb zJ~fiv0BBJ4{Z%z(8`A*sCLvNy{nu9Dt=)e*9m*OQArPl7NNDAa?dJ7AX;Ro-5DAcf zh`oU!i8^DVB=S8Fb4QjZmQz^vK&D6WRt@2k!BvEDc=vJlhazS~p>2%g4l-rH%0P9)xSIz+~VYI;4WvhbIlZhLNZ?GE6a7IEq&;#>H}f3f$~PZc;kvuVydmtRawMXp)s%^1Yg{I(a8O z{MsPwDd|?$3m9)jAzseyy&N8MQRBc)m7|0zQR!3wtCMD3j`{*29->^DpvODag1fYW zJGX+n^nw$Uh7+2&BU`*1>w-ssYB8SjZ!i_oV9l?>RtSw!;eVPZna1Bx0>VLhL7%>e z*iY6VD417JQ%y3?9&zi}kv>7Xp9g};!S}PqQLmTVYpXW7d#DeOdESFvtX&HHT{w1a zoC@U}+OJpFuz`&x-*-bVSf==l0R}8*+0*nq+&GEdz=1tHRJOf7<+Sujj#a?tfj6)fl1`J~l>YFUX8< z5eYi3snjtL8_VE5cwA~^rG4r;L6nQ9vydoCq>}8NY)-Bgrs8=d?_#D`nq-!6PopU}M3XvO*6ggp;c3(5 zVw*vvFlm1|=0n<1{~{3}8E}E;Xvsh z;}`fpdIgr6y&9$%{F#QZ8!lcDt8>pIjECKHoQB+6Y*u{I{!vJ5Ou_$&j|Re?ZI>?} zKgrfi4yLSVb0-Ydc04)}slWx}DfUiT8Hz^K)tdOUnAm6;wLBztUkuxBshc^!PX%5w zW$~GAqdt4$b`(unZLqGzMszdL;DG*oqC_|TcKuC_E&*!kh`sJZ5c-WIE6#K{M#LR@ z5Y602HdJ{h3niJxnc$HpCq?5;{g#Np@w1(rkS=sYXk+(>F%Ys8QYS@9PUEmWvy(EM)*^N#W>$PvC!v>~D?YUk49- z#rF>nmj8osXvq(!5WU8xwEBMv0VP@4cK&&YbSW&Kxdw7&~gXV9^;xvKh?x3w4 zPJ#{j(1}!@k2Lx)j+G_b4xhv(HLKO%`n$CLLnN!jONPjjJrTdI1M`?MbL$S6`E@S_ zt?=8N6iK0*K+D$@x4}7KDcUB^?0F0of7*gL$}^XfCnhMg@dfH${$sKbU}sOs1hmJg zAv)zB5G9Z(iVoeWSGBhT#*M8xLdj#5pv*R{;CPG^$fdKmH-ww*}87WQZz^}1Cc0~UeL3Vy^ub3BLd(bzHG~}W*9TwN~Zy0 zsF420yW%7<668&kkzsiDq}cuVplymP;VbOBF34RB(XG)d(P6j{4Lo!8C-)w^Hn&I^ z>rH8$`g}j?5^uYJpMo;d39S&fttB&q>4UoDR$^qQnS`je6u zcUQ$X;Z+c?ET#+0Z3wNiJWit*aTCev@3y5=CjW$M`cMz&QIKxMaCJBg14lPD#UqVD zkvwh%?L9H}OwKIAu?XiKFsh(7KIWXLk>f+~k2d7d#nSyHMz*3Yvgd|>>Eh?bs`XUD z!+U42rcHq?2J>%hZW`7^$Fo~%S{(uMFwKqlPNUW#-pg1ING@ZhJ^nIgL~DJ zMt212k@+I{$ku!6oL#GYtUG#X-Nv24(>*pIJa!@sj1Ca_lGXG5ttG||o+`R#W=1S5 z(+r&O{}G-?YTt8%gMCemEyAiy-D08nl9&kL9DSpANB`KUk|f#FkK%*x2k8}S2m3eu zkCKB9e-4|70)c1Wqcv}SEVS4Tm2Z~;}&aq*`_%5BxkBEU=M_^*D znmC`Ce78|hff;BIvt$K_=%pQfh6&RJ+%N*I(+fYth-e869xB|=CI{ z1sbAU%kawOf{_4|oun8maO>1*16T)NdB^X$HABEuV^o1$1jcHq!_>++lzvl*f9bHI zHMtxcl(9;kkHbfBIez2yM4{k2&LFC-wpQyP*LH7n9+>%bf&jLz> z`t4wg7RPcX>D1n$Im4sfa!1dzpYEs&d6ms|YQ#2SPg4cw#ZaRx?gtC;7%o{a@?)rH zY3F`-wF^{Di5cp5vAtEls^`4UiY|_v%L*@Gr>>Z1&%OJ76Za5b8N3Cy6IOFC96X8< zB?mIcoHyzDxI37$DLl)6c2lYg)!f>g495!dP9?6sQ{Tg=B79p&)BYZ!u8+C)DtbR< z4uEc2|%Sdv%7TV(jL+p#5!GVlJMg z(;d;6X^6US#jM|!x{c?-H#`1+a6|k9bBCDS!fLZd1h0>ctvk<+GYC?-`LuX!?Z(rD zcg>UhT+Ii48C8szM#e~!+{CccU}!)d?^2!%GYZGLMLBg?z8fx^bcei>lW~hi9uG@=2ePd1x)*xV*NevV}I-e9lw|%tP|e%j91=C z7KXb=Cj|-fGPV(IKNX;X=Lv75ZzyO{d^wm2``JE&6) zEUh?C@rgP!ia4S+=C~{Y`U%%_8U113q49m+b}jJ?fogvvutjW0{ALpF|H#cs>`1qn zaHKi+y|9p7MT`M2j;2(w^mz6&7DWl4vSbRGCuF5-hhQ(hFr}`kq<$!mPIMx5LVH4I>Wine5_;X`Ll!tvH$kU`YQbK&oTVGi5B8lvGIFTLX^g{-x?hCx z%@Po=taRz!rW{}}fxSe*!1tZ<=<~fI_C`aoqXf8tVTp3fq~60SU?(V?)_sAd?r+uR zAVf1@|6Z>VJt!H(CAt-#k|n)el3)3*H_i{hL+gTA0N&Glh$M3ulz&00v5XPeS_ghw z`$8v!ly(ym<_2%X*Fh?&qNarPdMs4S_t+gJ2#(Y{>FXe&l4gs|UU!uP-~X z@`BUfh&VdM7KnqzbSlu_Shom|m9E6d zHi6FM0LGmB);`e+@d~F80JRK&7= z80fy|#%%7(N3l!K4(AET@YN|S8_+OX<6|lDUFn^{7gjt`9(5o(S@vUm+ILJRP_bC$ zRUW8|a%}<;M3-FiUoVny?E+W!D|%gE(IqV_9%Pj-2E4<7(PH*_qcCN;h>*wAM z>*tHmll`wt9%0+G*i6F-cnzPfUg(U8E~m~5B9JXJJz~jy*wTC^2 zE#v9RLpo7p`m@IS2iZS`7%BV9+2kfp1XSHy&yvLVveE%2Kp`V<8-&1OK>W8Lr0lJ* zEz(k5_z#-U+yWo%;;Ml%@kvEN8MBgb*|#qwEH)L0J_8Pt)?&u=gJ;y=1W(7cj6+=F z6_@XHWl#2cL^216>2ZRr0XQ!&Ay+Nqn&fqmd4=0JW{*q6+DYdyux}z_cs~m=Ha0#q z&36MAJ?kh`?_$fmmW#TbS(+=m@I|9{-6Oq`tXE$6fUhF!~UZ<|MpnLrmp5UNiB?3h` zt=F9o?75iW1?+HOP*0)7xHXF};i@WPSzU!q4yE>}9X22Cn zLF05_eqTab`czjeWl(~6jqV;i%?53^z!RPo(`-`=c+o`8Uw-9h zvYmhnn&(%GS=@`fi$IM?G6-DQh@TTj6vmJZrRn+B9E;biQLE{0xok)({NZcmt9jXU z3`5y^iXhDIl3%7ELCSi&PC2FB{LYq?L=120z)gLMN&mUWUmaBRpd}hS8p=vd**GwS z69rCB0EQ(GP2tk4y|;Dasvh`DR7>U$vGZ<{qmRYQYk_JMaSWaXH*Liv#4YVeQhNvI095>DC1W1X96c^Ku(3! zu~yA=VN6o!kr9Er{jX@Rdz^=)1y7-O({^0R+rr<~i4I)ZgUxKW-)YgdwX%z6g~rqE z%^2!!x`FFdH8Ue@OIcMy%#}v6%ez7d!1F|{?*uGB1eoZ7yb$zo7P!%F%F(#A7`%egQ9mu)LDqM@DY)`Mxa1l@Fm;e@qwIpYb-+b84y z?)F{2 zOJM|VpDLudxndDb^S=QCw+m&Dx3P%DWoq?l;RzTJJL?=r%*Q}{y9U8(;Il}Xa8_W5 zJuc*W)k{ywB2olCBUPP_geI*)-yd7^tG(n3AU2nbYV}_U#0C%7loF|Cel%FvDx7+o zI)9O4^0IssJ0*9FTrKS-`-*MbQ6lPdhj)WtVJGJ6 zDe-QR-mF(WP8B$B==r6;tV^G%4b4A|EF6pFD#RagRXg3m9qP7f>NYYebP$Pu`It)f z%N&qjshVWYkOYnAnQD;KIHP#)>ei!Mj4_A6W1~kZ*kT~^v$jXOwB_2p()Gc)2eZ3j zfZC#xg*$`)QyGqRK=W05ML2G&E|#atGs6i;m31RA_FL5DW4BT{``4Gl^kIu89|e@L zCy@=iL&RQR-(YMf1?o-hkv8*2RZy-Wk)9vl#$MR;ERM2YzV?L;nEejjjdugLz(npeax!$N#;WdC zFWWxSYGKvE#+0U}IzQ6t7&@=E4|P8(SYfslp{?&NvNwML>76u+i`kBV!UC2SCM_IyW5*V(Af6Q%N3Ms5$#khhp z?TTfSj7ln`GG$Suoavu(KB3vFMjv-2&yS$S%8qA&CT{lS&hb9hU@5!kRy*@8KdU;X zrQD5l`3U>sb-#q1hHdPpOju6B?r&82?L~@q5yYT1gUFAdh}}Co`R#gYbg2;TMzv;| z2i$k4OV3NP3Xf?U+)kA5SbNb4tYeKqdBT{HR*hVsyb+$lrAS{hy~-wkyq(SpfGrwL zJbXD}IU(S)G9#l8bap7vc7p1dSd=srnX(C&I~W8OT#q?VMXgLm)&iS~?%PbuTsy#-q$tpe2yYiTJpVZtDBdtTiLEZ=WC4h zoFwHrkZR9X-_EY28G-HIuwBT*bJg7mvbd?&G&cp`NW!mK&`ED|P(hc82fliPweMWf z-qtDE6m!^5L~NUHLAZ`|7iZ;HJu)*rr- zgY_CR5WngScwvrK32@!3m-vOFK`nNE5$);m($1&6B@e%paG-0B; zzgyyV{k*}g97FNsh;HGB=MP?O6~i#P6RL7Ye*Vtq#RV+k&ilbZP4|TR$&{W*C8E2} z5vLF^{xPYHgnO6rWRo4vCfJD0+4&9LjsIW22`3p!69`7y0&n=M^h=bAfrZ zgm|Z?@MF9V9sottzLkbcZ(M!X(`PC&L6&@ZVTM{-Ou8vUFP zPVwWeR$m5lzxrz$wM_RN9e5rq*ACEF;dMk|k2iL=^FZJ5@se zL2GhjQvWClTI@!iv!D*yY-85EsC7Tk9d-jDk1+@6N#MENQ%Ij(@i@C?)cnvF|Wi7CjKDEeRDKyQh=GI?;WalnbJ%CXyy6GTAo!PF=w z-J8N@yYt{muUQpSBL#f}m?(;WXC~)0{pI&@bM=)MVMfn=z{CXsx!vZDgN9i+QMkMP zYiP`qYFY|Am#k-_B3d@0(}`>p=heryjZgQAk4Mtm^S~2nBRvz2_)NDn9@tzR{s&qG z#2OhDQ$n4y70fFJ>{08blUog@mVf^Ao13I)6%ThQze_+V@@KfDJh%Km}aCcwj1pKhBOapeowqM zR|4MBQQkI&^rYbASCz09bHd=HY@ppT?Efye1MVe^fm!i55CI=AvIjt;k8d6*$Um_gd z41~D}f_-(_>uHyD-rSeZbx?qhB`l9WC*DU za6VT@YZ9h{d`LZn(+Y9mXJxC4*j~A|LH=Gx6gq)`3LAN%BmbAxX0N0cC;RPqs-q)P zNZ<8~kH!6E;18tk*=#_e<9D+r0u^0TEC+A`9RgB!mRnI7NRA9>dd=@AFPf^(J5lcf z^M9B(zK|GJzUAL57T{A%z*K!6F@cY3Uxbftd~XR8SDLGs&~8~}@-AYm8$ORv=RztEI?oK<ow4Yi=?RK$G%-Kk+)6cA&PV=$DojG|^dJn!oo2yv3iX zP`5r}z4_xI zVzqTvzyxAr5FaNq4J=Zq)oZcVmkAl=;F})NB%pc4&!KWOZQCZ_nCQJ3D&;~%(#qr+ zW`ZbcglyW-R!7CU%KS}*XbP0s4@cD&J|j18NY;LKWL`840t}QH)z!7gUnJz-v^0GG z3rnUr;~;WwlJ0)07i%z3*?JuynOq4JDg_?$-WMPDut&GOC@6R&C=DR;eDynE>fK9M zxe;`|{?@6UJ?%8v&FuAgML~a zNRs*NXJ(JV2ZX2pVMyXXS>f>5T|@f&BbAa!DXiSP&D|S}J22yX|Ar(3j_`cn92u1% zZj;A>%4F0doWGBayw_2NTQT7uL-W-c(1FYu+t`-jX& z30a#>`1dMc;#^_#;%sz_$^740uFud}zyuU0`pV-9q~lO--=*Z*YDyb)_)~ks*n~=3 zUXerjUt41MOd9`|k{5LJ)%8r-KaedeNwhR67;0i7_JtSiNLNWO4oEHu>FxzHr<@*M z%`=yyX6DK%HShV%hm1%C|4>85eRt)UFpbhuP1(_E<(7dPE_RgyO^e(a~N z+q$KBHgC9Eqjp|F@IsVYyN$SlaX~aBgcvyNlLeckca4B=zl2I%x|0&KcHMA$7z5wH zP{9J?r38-aj~2k82w=bycDh?D{++wFHpXmhS(Zz;I?uSyw4ZGLxDWm>09HV$zqP|1 z&JVsHv02%Y`OZ$6!xx~bg?jZg;;UbNJ7ldmv#Tz_ z5yauTgvRiqK~73=6xq6#RhGhWR_CfxIV1bV?^)}-!`IF_vx$J2rbwOMq&IrA;b1<< zz85Y0kH79Xyr}@+WHfUeXZLfA(d5Y2YShp>(#ghsicWrpcna&}t+&p9dKc2a>tc{s z2O+OE!YAdz9AZ@DGxH@HH&lGV_dFkI zS78&sVsY`iQRPcj_Dw5NJx_bWi}`3}crWB5Ry`yNLPiz^ih-iQx}&~eKE%EQ?N%1Z zsAKJr20t5{w}M~lPaKY~9Kn+X@0 zBJ@N8dRxWoip)7uI>Q&?*XH;+a;_Ti&Tre?SKl)(Zm!RZGgHH2+mt?G2~AmQ#F$!v z(%evLI#$@N`hEFTjhO7|t4na0`OS6d(t$j!k<{I$rRCLfexn)Hg7@S*QyUSRP+r3m z^LkWRELcni2hN_b`okn4QXBbyZoV;^a zTJfF(&;~p}yeL zEtk}%m7%W>*CjOgwhz=LH2j=cmzLZ>4wss%cjYqavUlwwue_9N-1B9^W(XJ@F<(m@ z@M;dl!BUjP;cffK%PfHGmv^THmQww4uo7zfi`0UaV@qP;c$G+gw~i1-Z)xToc*1}$uUR0G9H&VG`u3MI(AJT`uU~> za7~U?9CZm^t!`l8>pjgtc}a}?ZbM?~EAK&baqR1T4|<8q;bm+4uTVE{l(A;2#!Z_# zis7&s)9v)`VsU6c-j}#>R|g_waI89XJtX8cr-PL@uB*d*fXV}XiNE;WR*81 zAaQxcOO9MWb`2yj8fEIrx`f6V8>&m1kvvPa?41z&-Rl+oud4D;vhujzqw+w8Wi&yp z_diiPR@g+8cPf6X`+J;YxDWfo)d{o>Vc8px6J2}vTE@0@63EgDoMi@iJg!~SRk2eX z7!dOH!1x4VsSBbWCk)H7J6x&At0m;)dBjG$di3zbEc$mVqfOeV%z4WcGuU@Yl4gAWL~<--VJJ#(pbbux)9H+`-~j`wI*Hf~zd%4C zcJ`M&qL2)@7c}+HtT+?4}PUTMwD{t z4~vp`=uqjJ`j+t-QLOil-R8HY>m@Nd<(#?`MK6q6)K+eVs1DEy~8F|Y! zbqS5#3l};(dMRC(PkF*XRO!%(#VA&v&QyRLznYu zQLZjM8iGo>B((>QC&p0{FK$KhVbn9uApQfC4|E6;jezP6Xgl`{EFVrNA9~%DT83U; zSLap~maX$U@7$WT*_4;z8}Q5TUtNaK>HKaO-`-7qhZrVih+ROy7TRUckE1$)af1c^ zh;R-tHQre{ckvCBSgj}(0`T#bGw4qhW)}WhwX$|FHS5>09aJa7pnNumv#{T;TH!DG zPR8$NI`cY|xvh4g)a^EOi)|4OzHM7uvTBBpNw$Nb`X+v2+4L)yYj+>@>mji%vi8Nk zi7Q`>%qoX^D>9ho3vwDV*LeY@Y~4@_5ughXU*s<2;QyTZ1G`>$T+75yB#X+zN`88mRT6nw6ej zwQ@yp!w3y@rJBXB2yh^kPTMHu8FjaVy(Jzf@BH{o@B96B_ejrc>lWq;UDtheasNYC zw{y`_q*N>?!-=jPw@hWn!+_)YMq}^Jj`5;<@0BI7=-#wz4_h9q#M&dZ*gg>`oQOgKND-9=W{2{zL!HAkToG}Hew7_ zDOfW>Vy>@N9^Mer#Ya%5!2AS^b*aqUB{ho#c{H}yCTXfFe8^wvH& zTD@v*Bs(!ao>ogpvg7N=vucL;k|L7i{)cwAo9!+u%Q-D5kLU0@d~5bj?alTl*y-CI zx%$xKw~h13!R&scd|=1ecpaCORMy|RXULviS3+y)L(r@IJ9?2Q%gBVMDqWzh1;eY9 zG-&X76}(=!-nv6F6e%(;|JrEpj6N=!NhXl$5)nNXUSMuPmqg5fN;swbSdw0DSvgTWOqSQ zo-u_HLN{toddkbyFb!X*=af1drN&8yclM%-PD}DtkaSPyI#xQ4?m+G#vJ}unfZ^q| zakLK(1x2U+=4{3W;6+z|>Z zMM1Ge>%(18{~v@@uMt~_t7IwtCNV)SoZOJvff~YJ5gLYc!qxyMr_9hAyni?pAFb`$ zgs8TCx=`z1ZVg^2!=MO5wzmwz^RIF;=!dyEz%&}+jD&`W_pfLao-XIqf!@k4Tyku! zw?zyMPiW2W)F->H{o89x^Rp#4Ly|h$q&H^Q?-{M^SQCn^ADc*Rzi~XIuISF(+M>UI z&1hP60pI)%a4ji$84K2lhbzB!~{;5nL-gTSln-xSSq7{yUQGq*_*n;QEn} zClTv%7DBmB0}v(4eiJDQvDD=C66FHYg97BoW0`QxiQGb&nNS;KF5=oLStF1>oPzJk z6tGIbH_%S(=P7)9Iw$jsUIJYxEImuOL{T<|s(Z#Gd5=*CD8|U>LNBaak39$oa~js z(pox!ZS0t8V_Ue`WADz;wmz%;sp#jRpS1ymFrWQ)1W%895~MKRUmAn`EzE(jOY!<; zOjHf7|8JUpLMS94#Ntp{MvBIm(HJfoy9;Os>+A-EG`V3otqiLY}XLc}w(ocXl zpu@re{mIFR1g`QPnHV0+_to-KUX8S90g(F@6k8Y>DyVYE>%cu){U;`o<8exwoEX8Q z*`%ezsp6#IAY9HBSeV7>+`AG~o^aSE}QXUb2sc@s62T_~z*p{H|8 zIOIPeJBDUS^By@x@s|8pO8(Vd!zQ60oPG<}a0xLX5qBfc5S>GN8B!79Z9IeN7^q}H z#tyPPLJLhdP?&0ha}-U-|CR$3SzhVA<28^GovHbghu|HF29}0PEBvjqk7(daCPECl4I%7 zkE|Qs-s=OuzTsQ9jdQWCcw<<#+PYt>q1}huhO@4z+aEcy{+2yM4j9`tKEG+((4L!Q z4JW^b&kD;mkqg}*#VRCiwGvTC%PKTy5ozrj7+^$W!UrjytQvC@Db^LKxuyuk%;IG^ z*NWv%UHrwd^IXn5W$www> z4bbc`IPvI}wDk2FzO%309N6 zg`Y{h={1SqIX=QuHcA2X{wYTDo}h(asbbuO@tuq~4*LMge9YX8Q zRj%l38!h|O)eT!VR@2$JqjL#yAnRf%3g_x$J+)$6HS5Y$=eBIBrh#p}1f|67btb|N z=z#hoetWzpnd-`fW4YlghPtn+wOi~i&cX^DLKPIef+OA$NOxxb<_u5BK8tHAk9aJ1@OwLMAmWi4ircXuwHim$lehL%Q{B(>ZWfYrjLr@`jN4| z9s9;6Uz^)7w|j13jw;L*=C*b|liD}2^;culcd&J@csKIMjj~169!=xWW?(-~1U-M= zF7E=`f6_14Ll6<4NNywQwZZ0whIfL)Duk#rR-fe8_uOxUsFI$(q zqVaC*=o=M#y!4D(j+gxr?SbJHPoj~_`Q^GSe>LYBSJ|4T_meut63*aELg*-KM`+|9 z@fOx*GwV8h@t^_47{*xlgqF#d7m@si>xR8KyWsBFaogs(n>M%o0%4o0$qQw3niqJp znN_!^wI|g|W7+CNAQD%AQy3Y91%1+}3k_=yU3FXQl3Qd-+Vn)u$6cr_K~%jY{jdtx$o&Q`k}bH$_Edv6%RKw28V>vtWn&?= zd&k|0fYU%5>7}Uvnbw!t#K$z!{e}Jzv4=R0*YCNJk@B8SGCoKmryS2=X0O~6I@RhfkFBq3L*-_k`g1-?!Y1VbjtzeNo) z@#`-^i5`(F2~HMAI22jtLZKXstfYnN&W(s%u0Gf;qTPnalG8@{faL{f`#=$wg`yoZ z%n>WRv^!Uq2CLm-(uvPh;_LC5N?eVL>xTr_yP@*eLxOs6x>0$YiO-&tpWH&bmuk`GvbIiI2aK-L{i*l%hkI@J5to-^bU=J zBUwJbQ%+T$M``8e`DKN4UU?Wo(zsc7=@0jwR}kM4Ce$)+^OeCUXEP~O z*D!;3@>Z*LHFf}?VzDgvPm5U1vENu$Kj+9PW@A7WW5b!%$l z+U}Gfq`KE`q={?ij~+OB;967tuJK#M!{WNMZ@zvlLaET5+%}C$Tu%>8H_v3s{42{D z3&=TSk>vGVlWtZy>B9rxWvWZfp|72>T-zV>Jo(vDqVnevEywA38 z=gxgL%0GiDgw~eO9^A>Ke-m1F+rzs5>97@Wsh(iV1~e;9-Z}T*hCv2< zwJhett61C?i^+9CH?A&12+T!|*tCoaRam8hA} zcaYalKY+Kb)KrkWD0U1VUC%hfC=q0A?q=P%WoGCDcVA7$nmL|7&hA>5+_r^0(#p8u z9yrudNX2$wRj`~dzEO3f&EGKY0Fw-Zko-#s2nsb^%A>QjC5#{K&8}k?e^>2AEz5Y2 z;z61N85+bg@P#!okcfdO`n3`Ti71HRS0f-10cjT85Cu_mbl%9j#ApP@%Td%>#|WM5 zD8f8I&k(<&XnYHNV>DBXnte6%RI7_f4)t^1iFdtn@_*cIMdl9bL6h^JCZd3&@r}&z zM$Iu~%(@&@H^n$J%_f7IOuvfG7b2;nfTYOA1&m`D%6M(M#5;?&V}s;@<$|ifiyazK2H#FnsKr%K9ip^8s9wB;yUYOjAqDm#tNBkG(x7M!Y$Nc z)uTQm4JIf7S*V$lPy&j?S7Zq&K`QVF9R*po0k|Ya0Vg&d4OB7UV{3P0E|de z+E88zy=RC3eR0rZ2IdIbx<`CAn@b(p8frpRSu9Z4L`fA^gX^jV~bRS=!>TfwSOiHiuP5=}k=I1en#ME}dp4+n7got#O>X31?iD zZbg1biEd<*{2=QG9-Qj(fRwGrMy8Fxhqmbke8Ag>$m#{*n%Cs0nI?6!#H5m9Lfx!# zvN=I!1;M^)FH#amh!jyurbMqJg;2x0n$WKf`G}O0Av-^$FO_`}p48uDQ;0_Y%%jK;6hvxPxR7Ueje9HIl|8e-4n3c||sjQwEbw0L+~ipv8pDJ(={POHNDh z8q~lDr3fb9A^K&AB!8qg*bHyJ;PNAh2cK$ujB}u#Mx@TnTNw0O;|Tbw0mcJk2=Fox zjoAdj%aQw{NdzXWw+Vd2=5hPDHy>a)KS2_s=9(6ilC1heQD1WBK>K7* zI5R1&+iVSYrjkSXkilxV4enVpy0hQ+iMh;R%3f}7uO!HyTP$X4M=~q4SK12e^FrL; z7O>h~d_3TAhCIQZ>Eg#NLPSWX6KO~*3DW9IdIymrdWjvFR;F;r6JRS!SAlz~JmCnN zZ0(Q67QOpzhdNKtht=drf4>5(j){V=7Br;nq{+dHf8>+^lu8ZIZ2W5vvPHeL>M)azr58*(Ng z?isRJQP~_7pb@e*{Ly$OpDb?JH<}#nj%0hDEabyo>k$4coVkbg5*@^x((fpF4$hc0 zxgHG0KF2On54C5$$Q+itH)9NOxw%nQ2)Z7Wf^6(_61&(=JtVa=nJ-Gr;U#U2aEGTR zM>QMcdYP?w#-xYTF|qdze&U|onUWO7*nPa9iN(<$c?1T3irwE0F&tb8w_sD$agzXzb8z zE|mfW+MuK0nn*V`6$+8Ab@9YlcQn_Ha)je>&Ih2rCy4@a6Rwvjz^LfXQ+}TJr_O<` zRX5>x9Jkqwg<}x}GUdtM8(B2o?>VgYN?KGJ1*m&hhz4PsvPT6k3C0iUCB%${9aN>$2HlgVI<qp~V2?wboeBSh$Ho?qV9KL|pW--$D-aocD)0P>V@8QQL-I=Zsvgrx( zyWnwsfaoEv!28g4J7E*ffo)a3Efq67&~YI4pzvVZ!N4KgLA-xamk%}kzIk$9J|MUa{o}S*hZlA$uusR8f zXald4d!fz_5mUsK#4qHG&PFgwWC%N$gG<_au<2|m2fvd3HRr&llMFG9jG3R<46dkV zlDgyl2QwRwS6v%iq)R-;78t4rx-}L{q?5y`IaHP+_git4C7|K^Mnsv3*uRAWm8@M(emk1XJZ(*^B$0U50SMXhWs>dXB zA1G20V5KxS^58&1K{tc9%5hKc%=I^MVlH3b-E&EKH~eNUE$`Orm1pE$t8vn9iwyk;cSo(@FfKEWFs-r5-`y3Ux*PY(3@vwrJ9S0LxN7P^af z#yyjxxq&#V`>9uObru9cYS9hZx#OuPRI8wk_*QrpS@R8mH7W?*5^_`vCGHO)>ua& z8Y^@}Tc4Tq=nZ<3gg?%<;?H?r{-CM$bI3E6Qq|xB?R-e0v0N)3x0O8Zk#mbZD}Qi6*z;nKP!Qnf zGaK|q*2O0i4C{BG$yj2=Vl-YTM#*P7W_m(;hOs!ffSaPJd_UQB$!uh4x(Z5D7qK19 zWyDOBz$a19DM)YuPV6-F5>4P7>O6(21Q!DPc~!0yv66dF;o4vA6`DH2rfWm3AWprl zIzq-F2;^0aJs=1H-bnvoxlEnXne0AX>S45f<-2BsM!52ge_27WVlV1VdJ4_h;Iu#5 zc+JkrGba83XRN8d-g?T!?Z>lHtFQOVGgwiI{;>RWwLVAd-ioGDzk%!S7;yk=YEK+4 zwkHciJQ9=uF$Py&r^$9=WHEB0e{rZMTVBW>a%-ro)Zi6g?T7ynf!!leZ$}pUBPXP# zZ&+4kcNr~S{v1h^T;e4(&z=4TP7F&^S9fGxM$h^jE zSuA=6W=hW0Rekw$(qn=D)^-+pi-DBaoLDp0r%2*aNUe6Ib5VkC*)Qp zDuLvxH)Pc?X>4iRqmt$dO^w@SsL`4|vS>#ULmhCcJ$>=N?OK`+y2@;<;W#y=-V3!09ZtoH%vG}H0V zso}v}my-364`*ku7iSl0vGmlDnTZ3nr~6+f%)PD>Uzxn(c-J`8VYgBcod z7Wxx{R<}HDskp-y6&UD`|A6<{7+O!8J(*zR>q{kWJe+YGbOyZ*bz)gdJ_YJ<78Mz3 z^_xUL*nB$D9%;9D&w(w~AYo}c_Dbn@C9>3WueYC0E}D*gn}3ccdEs9Au(lu6&ZP~Z zs>xE@F-dM}o9ww)!tdox$8d=hv==-r+^g_dhM>i5p?0oZ5!C|&dfn2R0wwN)6sadF z+q)x!g|J0W(TvU%%=9Gl!)?R0N;cBJu^j45`^+@_3#}It#c&xq-xHNK>c-sKyvNM4 z7Prglu+W^Hjim!ow>wkqP7mb-qs3~1f8i~(m9u7jp}0p#;*P#?NUulehl#Qr6+A}7 z!)e5I&cT|)2h$IF%?~;b<{n~XExmvbte^k=Q$NH}t}A@dk$zC}I;sxygOcMQlY2-B za&f7NilT)BoaO%ik{AJnyXZCWh~6ZGqU`R?GiI~dGObslzfZzv=1)f2d?~$7Pm>fU zc;K?H+c6JP$p8N+ZJ>2J_~WBEI{3e(GOIJ&u}nWj-b_28mm+tLHOA#IH;C*hA2(9j z1@}Va(Pog_1do@S6Db#1B9Cgq+vbA4G`iKKS%f877V>6q-0rs09eX*#Q3C!dnb9iD$FR z;Q$Xa20aDm(N2Dk`d@G!>xd8GQw))4NhlVbc{rJ>IqI|zIt|R4HO>m!i{lw*&q8sH zlk#U4{D;(;$?Yba4W@8YDYe6t+E1Ka{yuHr$>ozyuRedxuhh*@BpFKg70Td<`utIs zkvss%y_C_3o;gj_f6-A4?{m5XJVSn%ByRu==XJTfHa+!mlDr-mc$rLQ)}|rTUW=vi zg%;6loViIfiv>I^3xGl2*lAXtA??jTe_;!xVUai_udgw1itrE#xLz3x9{5GL&6acE zZ%zs3qS$WR zMhl}Op*nx}yU@(x`ea~f7_9I`JwreFk28CYA z<=Wgq7U-s5Vt_5=^FYsCcbxnLspo?pPlyFH$y&`igVl6`6j-N4M=}<3;|K{p#h9Q< znH?N~SFZ1aKhid+*Bg{QcktsgAt(GIV&}k%RkJb5Kjb~g#y?MA4;QL$!~aX#OjT`B zFaMAPub|_fm*6$f41XK`S686s9=jvn++&C9Fp__4djE*J_crcfp=g?z`p?Za?Bng? zcoX}ZKjS8i2G(h11eeFevYZ)A`TREc-0t=|0?x)M+Ui7J6hWQEXI#yMg~+J=h8Iui zjTA!1effeMT%0meRg8A)d-+0Z&sz@dz((~5Y2y*y1?9k7;{+O87Xg#>9ZSc)5s$rR z+1Ptl8GEw5zppLV-}820u0f=e{%H<@V*Lz( zMxLRQRs0-<)<1hz>ylEb=7GPZPAYg3#&Is!|7Y(@z~d;cg!`VO=jxuT=bq7w?pqq& zvJP9eWm&dlV|>VxZCRFN*<<;TY-1a23?^AaI1(@+glq`e1PEXw$u{B&$udB|D*}Wi zUIH7~BnzAT&Yf^d-dEM#qtRiG{qyhl?f&w!rmL%~yI;Nc>eZ|2_o}?2Mj*BJu-6l| zYfU;=Mj((W>2y+NAdunGk$Y8deEKniXka-|mmgJxvOPTS$qt2bT|Do~MU=g8@d9~@ z*@!VLms`7o+Cl^gJ5_O(w`2jneFPwDiL18sS(I7lK|3J2QT~)+X!KG@pMY_+-Qlrt zq`+AtUQdcuqtiJeK5v>+r*o!xeG!L_EJ1rk(C|ZDG+6X3%bN`!2Yu-h&r9h(UxrJs zcV&P~XHEPoIY7KccnBZvt9YlEu)K;^G#KIQAPw5uJ*IpF(kNSzmsu0241i519A}MI zmsN1;N#;6Uinv`7Cx3GwnwRT(5j7w5nUl0$?Fpi>Xb|4{)r;?u{qRnn$dvc9i_snAjk~Kk^=}QOA-Wr27MDX?{*{U%Uuo zqy~8I7^R{2fL(G6yy?1$d&xhsHxOZ>NM6f=MxSMA6b3-!k8iX+z+XqyB8M{k@!K$>$Q?Rs&tSvfLY}SXoR$H|}tHEfl-? z`H6L}{dA)3oI&7O=%U!3m(Rbsd-ogv@=7nmaWtpLn(826_zqwgA{NN4P?UW)M8&Ha z9nT<4MYNq3`fNbq7wcxt4*g_Bp|R(NbCS^Ca@^_K{N$0y028!0{i*)kCMqwcpm6^eheIvQ-Z}d>Ul* zx{C}*BxyMPRT1sqradkPx8lVYNBvzp2dQ+=f;Z{ zm=dOV>W|7>>d9&%C2`N%f(}4`1`h zzA|(?I=ZiHIMRH@Wy=OyG9u0UFIzU)l0jK_JacRh4lwYB48c;9iP*$j1Fbmepm zUqXYHgp!qqDjJTHKLeDdD)U{?=i7r$N6^lHh&(INR+wZKV-P^H1ER*ILw2c#*VF56 z~MQvryIQR>)fJ{YX0Z! z(>8MC6wgHHW$>27$638uH(p_Mn6!+}Y$WZA+lsAH;nL!oElmYH$Ag8*YK5vbd*)w$ zY<<4FVPNfVs6wq-&o+u4QKu37l0E3M>V93lsdZr}y)MrkOb>FPMNJNi(Gp3K(wlcK zif-=Px9BOIyst^)#S8Rv)8%g=mcNBq{+zP>IcJqWrz(HW&n18KbA_>o4j;XLOJ>22 zhYnwTe|P4?(!9PEOh&xwOdM(Hhlq{@J zFbkDD6N92$$rLe7-Z5aRjHb=lYjjdX?_zZzq9rD~Swrj122yHjE3|ZW&FflPWMp|A zt9R744b-l?Ze5P6VX*B271f&g>Ec=2*}5pQtSy)k(h6RyJLHIjT^UPb^UJ!oDWXXc zy&#!yOqa|uESY6kGEKwg9uPf~vd#8X$uxmv_8`eLCHC6>Op^IV#h&l&-0|&LN#(BZ z?Lx^B*B?9grK2z2++26;pKcrc#-@zQZMV0>F|%sh z?I>LN;)moLOgd=B%7kXLj)bsgtRL~p`)ZFri@w?;%{Xj8im@IPqq3uR_OqAJi|Q8{ z@(sN$C^-Xm?Jq5M19Xad?FYQo=@F%Xppo!!9qdnf(@{NT^f?8mU|_zk(a8gMz^@(T zE1M}Is)?Pde05H0#cNcp7(H9;;PQHqN-P=TdlkY$Zu>>Sd*-u!G z#+<1T%RX5lIsi$nQ9J&3CcBYi^`h~WhPA~uXYPW$;#IZTI^+aLFj&50OTHlriv+i*6VJMNhW zrKRbH7p@<;yDP6Ic47@2bLYiQ04Hw*PUe85^Xo%L*>vHqYU&?`|x=d|rm6qpm;k*P+fe_rG`dZSUdZgPnKoyS&WR z`lTmgUp{wrWn{sIJ=YPc#Ru&uk2GK|L?V7N;v*woGVCEEZZhH`k)yMd%*5Ogk?(f_ zUMUkXq<|z4@rg_&nmJP;d8QI0lc|tAQ*kcO9EDbD@=NF@iATS@fFcOYIPBxq5qPGc z?8}{${{!?092TO3JMI=p0V(3zk?_h)%P6T)n-0>&N~p#d+8Plr{gnL-rah5888gtK zD(c!ZF?a-ro-x^qW>eLFb7Pf0e?l)Cs}`g@7=~mtJonMf$XHcuRjff?z&tT#mXg_i zGSi2mH0luXorw5#qyx1E2c9Z&1hMZvm77pCGDj*NqmB@~OhO*TWbkOUozJX-&{`de z7E+{`z|j}~?-kNCqxhpWeHEg&q%}IPb4j5=!{g5eQq{WcRkA|*!p&b^qc(VS)Z%hnz5Vj@--s5^^{tXDRhE)r-q$ zl$=de6WPV>f*euFSqnMsILC@|u&&FbUZ#jPeDU=QA4))1Q<#c zCA}v$ww>5kS=xJ|`?8%2eCdr_>*454Yut*z6<;hM_fkvLc?jrT$&;sX=Q>JSN4!_C zhm?5;xr0^aA*^6-qf3c-2=A!kvAK-QC|K4s^f(%7 zuvJ6p9fHYb)U!KD21a#^h6N0lUM!`0fu^Oh_3|iC^v`Ewz(cWz|CuUVOX4G!12^jO%EZIgbH<)ks`5A*lusEy&e|y35x>6~>+UBrv zW~asB5nXmuuzY!Lc;V$+8@jO<@1}`UWEb_%>TDsJ%RG$dGOtE+ndAc__5gp3sEtof zW)7nasWvWu$3lLg>Sw#DlbM^UDyz#Gl9%jeyIDttOTvN}iH1n6(J6>715G`$@55`Z z{pbJ+2Ba94sX2V~+J=T>M~~D}Xd4wR57?~*?AkGQQFSi!FrLdKAHs8)SC5$8dKo=5 znTch380EpwPJ zd-QM(U`C->#e*LlyXM1vDBzQ#S*rHP(PPl&$}j$b>ZWd=Y;$#@jqvL&F4A?%d?XMi z!>8D5Ks0v4e=`4vul`VJbEjhFBW(Co3@(1w5iZr8vS@qblCARtp@!{CTDI4@zhnuO zriP;-ixujTQ5-Omi7D6ib0t~%S-({EzfP#Pjnf~Xri6x zuS+fR8%y(2O48jLM$6KyDZQjV43zZG$_RJ&kVZmS>l1m)BfR5$Ab4URr^ei3pCsiWkztP67NN=`NPMaqrK zI8Y8@A$o{5W<9f<&=6+ANd!Rd@`*B{mRL-*5Nn8yL@%+E*iRfGo3S+Zw{DHCij`k+ zW%ZRAy9RRxgPXQQwrCrh4b4Pd1JhtBh}xpDD+jkUH$y*I)l_8-SEJ9$Gv)0&+`nOUOJ9ye_i564Hm9T! z`D6KGg0d)qvR29`|B&bo@$=k)_*?#8!>=xlkn-K17e(AQ!zm@v;-YlrXjP6*<)~iQ zOgo=`oPJ&7n0lT%?fL5a=vND((SqC1&wIs%#f1@+nkXxRe-9NG78X-0(eJn$Wl+~9 z%8s8bh!zz^$iir}kbDkZoM=bC@1fGSp%i^P{1m|1#7~Qh3x5tLD*GQ4rv;+}&Tpb#qP_`s4W~V$ zoWD%{0iQpD*EqNd%Ga~MBs_{Q6>CJEIR=}Ku(5HYQDEZID0SVCfIX??SeaMjmT~MT zW-zkx7?hEicuXxN$(tl3zL+MtgW->{0{(vLpz8I)#2+qNj7G~ve|nnV?IyPfdiFkF z;4MeUmojnQWVM>8rvo-0;M@k*+MDd}0q4h*I*d_cxQ>sj=cI(spTOrV^#VB$pFgQw z|1te@^kqx?1AN{_{fPFkzlHOsmFwrI!!uyB88DcqkEM6Vx5sNnv2cF&WfRGHw&YlFN`=9C(^{~Y(O-5xsVH3G2-Hx6+z~IEpet7c_U4gsq{$2x_JSQMQgG+ zgarbOW6b)hs5{;7HVA1YOG~4zrCzPss@FSg4JMZNm87}T0xq~#+61&?fOab}?VeL; z`3!Xu^WsOCmTtKIBlaE8nU%6PuFegTGi;+xNPy@8H9j8+*rQN7`I0ovb0?jiEok@| zO(@gp7kTP=djHb{1a za|(5i$p_1y(>{-J_5#jd1Dx~axRkTl1pC_*hTZZWg}bK}ktXY@Du6`Y0*b+c zxpsXZEiL$pUc(3dcDF^x^yU|IF*>tk4W<~hdWM?#g;}RFlRol3yJSRPEw%r;ch8$z zqm}`#IS}TppxL&9CJPbEBk{1$U=XpmhzV~#7+YVE zt-(kM!BW@zC z`1|A5f7*RwzXt>3k8jqoy&S;C{G3}lyA($1aKeF1tBrHfjO(Xj~Y?tHU5=rWt)^Jhv z;+$8^F1Km4v14A)w=qwQlxA!_?9WcI(nFD&qBOVBDpB8; zte)bf`QGB}FwX^x7LXP86v^;UVjyecNpH5#{I(^BInckkSbr%8JPfFI3EjPB8bv0&;zn!vhE3_A-R|TszhPmeT znx#>)ZJ5X~qiASDlx6i&JS8PxAFn{2nk}B62%ANJ2oOX!PhPt+n(6AZ6}jt zV%xSgv2AB!zp-sk{KnSAc5?Ik?sv}m?po*E)%C~TgKI(iUOM(vygz#zP0Qi%|X7(qD$BP3f(K$)Y} zm(8ok{fP$mFK14a?>Z=dKg#c(IuSB7HjFu<9(2gF1uHrju2lRsq*Nkq$1Ia_b7u75 zuT`V@9#zh;3FgO`$PANqqJ=@NcdR!&4{6~ldV|+qQ&#C`Whte<=uxFr`^=bsP+As+ z9IZ$Ts`mgGtu8DG$8)0Rp>>6|ZEnr+g3IRvFMjJd1ywg}mhVv{xANH^K=$ zN<`nJu@PEcbI3QHxJFWXbAy8S0UbJ_RaA7o%Bu1+yT#4!O3|h*{tptWq9vTzu7V{W zJIc;qgFU5tte?iaQBi^F4u%h$9$8Y84Nx^~0>taXKy&iSgJ#w+XFX|<0Z4Cp=v}l$ z$-5l>i&cMfZkc+sVpiKWp z@(X@-K@PGc`12-yWvwH{ql|n>|Bz_SG(ikPtubcQnPi?vtje1DW7&Ww+2me4-ouO* zK}Fi5`qO+g3&D0>*w=h29k-T$f4!Ef^&;AC@afNXGV+Ekon=j>Jwt;Iymn=k2F7Y; zZLEiF75>|3-1_cQ=D)lWt@g=|$)krqCdkVjz$B_J@lt*d7K~j&sufhQUGUUWsu1a% z{Q{A-L@#4$!UbKWQFi?MTBQ-B8g&K^Gx^|q0COy#d;_OoPKW2+fSNXXR6mE!#=sLl zBHahf?| zDS_C7B{Z{wEGgFRW-#0mnXRrhZjyvs?->W!UTjSf$K|15>B;iBkO^x_%yJ1W{qBPM z+8+Kwti|~hA2;?5g6hao%B%E)XRG2;cMC;W&rsAc1YYixzpf`9xqop^sR>i4^)5k2 zc2F1u;}dP>`TVrDoQtc^g-POHKm$s7dh3kZ0kjQ>U+KTe61p%9t^1cee>H=L~9fxzCvx<*uq(ovLLjs5|P| z>Ej@MR5)qKd0Q{cNZzineiZJP$1z5CY)VW^9NbwG>f?uOu zxEzAjW2dg*3FTF>Ln(LiC=!`iTt{@zckBGAZpBI~0#;7vHp=y-6y%kxvv}jD45Q|( zM)Hd$5{Xb=16e*1)MEcIS=B(kyeWJRZmSDCTWofKnZiez@-FqC58N#Pd!u-{(AXMx zM=M;!5xfUABGzn+^#t8++sWEIpQ4sOLx1=E*`(9)U_`)gI9@!)SSiaS;JMq)u>Lc` z>F;;kbqmzf%kJrE?C^clTVIcF3WL|U(rNmXwkdXe@E@vSZAhWDFg9%DQ^d<9%t}Ws zWFeJ!8HPy?Y2z9*H*;TT>XIKfHIZe%QNVH6o1ylKC;~@Qb-)@s~Tkv}Zn_ETl zaC^_(yl9!__K=dDiq(dM{7R z7*-1QInJ_Lr=Kj?-PJgs3ir(mHlX%cWW_wdd-=tnj;S9OcFFTT*!Hv-uIV3CJj24? z43>W&bm&~7#NvJm&RE?=YFNLto(EYrMjt>|dHrgL+)xjjvmOnT>}hW+aCUy zB7(&>A`T$|f8c(gH#9Hs7bfOhl@pb)1R&9dh%CTZ*>Ji^#c%JUZ8Y(mpu*hl`JKnc zgnp1&>MWp)2Ad)cbAxfocs;U)PzIg~W$$cDF?n^L6J6-%H!{O{2$r^I(*AvilpN5; zm$axAI;BZ4**vN^Fu2R_P4K?`%~Nefp$ks6b*^p|#s5zf)N%?Cbuw ziS#cV>q!QAn7&+()_4QmypJ%g^F`E1&rl&7uhThSe8la7(Nj{hp z0a=R>4GzSesvmmK5Uq=qPm_*?pDNf+2aTULc$0_j+zkiKv25QDGe^fXL6!;js>41P z;t6)PwTr5o%8!8cxx2AXY3Fn2N^FpZD^!XsmyM*^j|Hvn+Q2kl zJmF6C@{IO?K!ZdmaF>s5=iz+?zDJ|2{CZ}9FB;3R%?d3lUdpAkuYI-ffH+85^7pp9 zXuHmDXtQ#lfzyR+IlIPZLsmKGRN(e(ryFPas%9q*DE1i?`gN6QxsdAD=X>po10xWy zlN$Cs@F#Q>>(hKLO~OD&7w}va9k32WzP?TBp*YSy;_~yb+MhqpzRT);-$qj8Fvtkz zdF~B2<51Z_g4FM4{(Ld=I=cO%wYzpGq*6#xb%+vXqhtRJ;d$o(TBBCOReSw2Sd4B< zuiXy!{p1_;#;3IZxw59p{bz7G-s%D**gVt46@R#1-t-Ff9+darT%zbhf$LrhH0j(cTI9m<@y}>7c z!8Cb$)}0#m&!H}$Cc~I)pNB`*c)nf!ukeMud&TwnQA!^u2E*GvQ^hC6b;hz0v#XIE zu+-di_N4Q##kY#j4C%=5e}$a@c8sZh{QnWQVQNnZPj>~en;tiScMfcY=|emD|84(& zSM>i1v!E|u>!5b)3MB=HUrI2jX8noc?E3K|A+t(Zr1DdPvRRa*Q%|YiRCr+&!-VSdyrkvrk}_u%o#=;N#?42B6n4Z7>{oPFMUe}Yo>>tYWMZ*l z&EsDi{%e+grt9VTc?-lOUb5gJpm zfCLB(5g#xFE)p7Je_n*-2ueSodpVZmMSwy?rY5Y&*@oJHKUd?$Z7O*az1#mzlKg|J zoJ~@e4Me8U-m%)ej!_!|&4ELkzCHlI-spagWs!a`mJhmaMW4VA^jY$NKx7kP!mUB=g&nILG$ zmwOvQL&=`1bYPKpVs^D+kv(F&0lU_H_qB3y6Zz?~pU0aG(Uy1`mj;W}wYN zxXpZexfIp=MIfIk!r`myo(BY`{!>5toC;qdzV|XH_d0Tg$W%CJ`L?+oDGVx}*Yd`0j)^M29JhTN@h)XcepZ_wc>WB_&%wu;EwJ}Ua!Q9 zqDOywAkum3V+ybUCbHeC(+iLpu6s`&G*`2OYbDIE^BKdc>>**_(r0XbI#Zs`>TTj6aTNGkfv?9j|5W)ldMZ8d4?52ERRI)Bm4 z_OpNE$I~b$R+o7gbv)9&iulX6I&W2+9N1U?dUZrJJLfdvS7lT@1{OGn(+l~SAKa7w zOSsEq|GhzH+s{s*>P^({H*qyB(`Dg}Xv)w*v`_)xTDEH0Vo+g4WN*c?QF@Rjl>B%? z*lsZ%c$=w0?)g|Y$^EWjmAxT&uq9A_KO3CkqNnmYe#((?j#;*^mP!s@PU);?Y9q3g z>VuXxina0dXd*E0HJ&xmu)-rzY3c`1c}caQD0|v_Bt0u*Xd^mPagBb*S7i-r{wgt3 zUEceEv!KkcZAs`MuQH}v_V^m#N)P04atoN9HdR!@z_u2Vl8}(VQKF@#9m6$C9`2Tv z1`{WVltFPsM5WQjZd$I1Zd+J`4I&S7TY>d%Pth3TUbO z5OV1KdJ>3dgK+cx^=(O`x`9)Zy9BBVsebP`o zZZ9M2f2-&!Ao1c&Kc{XQdIMI;o(y755Whs=-8GKq+^b%mTSae`+RioM0c`F(Di>VT z!AJIKez3Uzh$#!6PA-hUOU~ukxFnxcm&gKsXkgCFObFFE16^R_##neRB)9`y=>Gzj z_ZnJejy#BhRxPUpAN?R(nI-@)t1~8X8c^&0;W{FUkDIbV3o{rLOR9(YGZtTgO!!#J zXy-tCZJk<;bz?QNb(^z@+8GWNIrn|afuGrN0hc;$3fB6^{p$j`w#Dw=qKKR{?yI$mVnnw`difkKe$%Cx>5m6l|^bHd-{&0=090~|53CDHx z1FiC9aFbTKlCE<=TD7>r^qKaMyTbhGeM&S6EhK_-r_CI>SqHUaxY*e@BA@76(m`ZrLVlY6oW(FN>Xr`}N6LtGvXs5&8Ryj0Ys0cZD|7L#!K8y2WO9c4de&n2Lq3fMLZ|ln}LHSDh4}FA5ZdYOo}Yi3w8Yz7G>qM9xSw#k&&W=g3+tw9H5swZ^9+ zL+u$A@u44gO2iObYvTYr8vRZ0>j1$KR*ecepENclPRfVnZL(t#Vn^6RhTyGS5L;Iy zjdidb9o*Sw0TWt7>6}F=CbTaM)TM*enyb~KZ$cCCZ?a>@Fr|y&uNKl5O41$WxsPeG z!j-iRp)kobD)@z9wY!D!oC$K5H1=8u!B%F6-;V;jkDmtf2ULG`B`h^N{DN(QGsrLG zA^LYCtQvK_2>V>=xWCag8z}qeZIK~+rfP&|8(R+XPtxURz$!vfEJ+QeYEIbz46d!3 zZLnioT&U15q;-mV&3?#aY0*>+Gk8YDsq(&|Qhv5Q^5ook z`flt-#t@m9vM5wMIA}7!Nh=2ns#eLaWXcV1VCzf=P;2^KBF0hqe4mC>@oSC|_^)t? zQnQYHbRvNA$LLYO8BNpa%Y6I+(K}bz#&*|B(#P-L6K{dAh9AKhnl%&UT&D}u@)=u} zfALbyYxIvNL(I)sBG+Q%8zW^FGuTJ0aGUGonkc8s$IbQ-arK;gLvafl^Gqur^59z7& z98ANk78;sp&9F>#P>)WGevK5*vQ)AosB>vpEi&`)Hjj*DuyM#&lV(QFRkHIYo1>V_ zTjKn5&yuWJF3+T|P5)&hPg}GcxSPnah})=~ZFY;OVs5n%qumvjG`<`xtSME&_8X&! zGgn5#+@|q1Q@4gEndPuJvynaK7xJ04+m8Yac@CR~U4>j+1j9wE7)k?4BlCF!h0Fh^LdHn&rbjqXt+>Gl2RM#c@P z9lny^_|1p+BS#Cr6Jurjj2E*25*!n@l%s*^ppifRn#?PNpPCDRWQCE?{BRWJY{jCC zr&Y0n7-pB;7XK-!kT!p^vn2dB56(gaCiOcK0Iz?8c>9F7a{_XAUJ*$szzD6DSJlh4c%(RG^ zFaESH9r_lWtEJ|L%qLiI8k&Uh`Hv=JmW~65Z!_@=5`H9OdYFin_cfcx zA{Q-ZAqX4J6hakYNvbhRfD5JWNXD}0*l-57HTecjC`d75UQ0SO85Hkh`hG?bcoxk3 z%JgFPt(;@tx_>N1bNDCS~&}(*;>of)#UyO4I5CxfGyGI zcHKE{yI9FBx`s{6-!zFUPQOzVszyxdNXxP}_Up{WP0PEaqx~Tzry@`b1bQQ!$$1KD z49praEb`dYx&dLD0nQ7yZSv(Uv1 z=D;O{10FUz@3!s*MvX|(GOgdk2!hbYZE$9?El&wmTl(LiArP#)bMoiv1GhC!GN@VZ z;Aws>>ryzq@;BcB99Qi3*mTU+j^wEAZLfs#l@hO_6|)eXPVgoEoQZF5DeLUf4lDY z2gW)=1c3)+EJX$kOT6rGXNO}~0Z$I3kO+j!$}wsguSr+(Lq)AUFr1>jpk6DBIx)Lq z_7gsa8^Jk-S4mO~qWmF2ERr#qgSIi(@FzdiZB;Y*HIy@kM(JspRSsOOg2M>OAcac} zLkv$TFibwPjj-4%OQLojwj7noffYQnX@^wm@P!V1$1^(4Flmo0St^`Tk~xZ;l7z)S zg_NH(=M*&y;(}0c%2LAF)mN4koDEHEKWUWpCQ;sUL(@EjlyM_G5+^wUCoyGch>A4| z7=j}KaZj^1V5~fV>GW%gxs8dD@LvZQDQXDiD4VB9HnoH}8Wt8_A`TYf^k1VW9En>^ zB1+{%{BSeLpub9#Bb2I;^FhYp9(8vA8j z{{{XnhjG^6mzE)4uw9FdizC(p=u`WKQqb+~Gsgg)+YZDnUqL2@Oh;>qFlA5$SV*32@_3HP!8itR-W@6Uw>hrt- z+dsAa+@p}ZOUH3P>+(#z*^~I*-TdS0s(UP9O$Z!Rs)$cbT;ObHRggoN#Nl~WSkUiU z13G_p>=5SYx+~A4CmKFak!_Z**G!H-|LUgePEYT~_xIb~jKdP#EOv|6){DJ8bH3uf zqGJS&VCHPN5ct@Wx}l{*`{!s#xmE2E2>yC1j zjy5l#Zvr`;lT8Wc{9|RwmlY}~aW}`(gpw;saYCvc>@Vr_7hE+A_ZN?16s;Fi(SFxu zdDcog;S8Q=*|p?f6Hl3@M6R^F>1^@Y-P4oQF0FgJE&h(Q)|j3_9XX)`Kk=2j$H06c zo48z$0|&!=NFX-IV``uunc+5UcRuK2a^MHQVIAaodLY{! zhJ!w8_6ZUKsz5ri0B4|Y_L<=MLbH41pi$eg0s8fN#DlsPo=JEq>IjSr;*QFFhsLS?ro!M2PdbK!G2C zGB9^^!+dZcHuxh);0JhL4?G|M42TT=SO@Zk+2@Z35GuX;Yy3*G8CN@6FZ*O2r}v(T z{@u1tF2gHiAQ`9+oYyE1%HL4%6)7bL(8qXCA4o$XM6z^HAA%T8W%C0h;0LG=jA1g-u-iCaf!_ym3)4D#mKCkO{9 z19b;C%!dU=gTCnm`mq^q!vo_%9v1>Xzzn}o0bdBffFg}~hLd$ypN_OkBp^7b54WKr z$T@nJNxFyQz$dHW6(SHC^bs{s;JaFo$C5xlf_r?3^KFpFv%n9M5=l~8^yV^oY7oFE z*rR-(AU2>E6vzegND$bK4+sDSGJ!s>2Yz_4#~lahAG(Qa>l396+{D47(kvsCDO&m^ImHg#ql#8Ov4Mqb~*OtfdSe6 z({&6GfO4RGLwtrg!*5Uk1Mu(OiIx?={I_O~umhg9NJ~{gs!-OO)NmH;{0{U@wht+% z%me&U5!C00p%8pG7w8*!M;cSX)%E%u@{7QUx4(h(nV6FRM)c0)($YGgZ|M>(7IA%f zX>oCFTU(m~y|}THo)ZcF-yO1gz>M*4rs&WZh)^AR2kbEDM5rmNKJ;Oj$QP`2l2RI$ z{M|U#dYs4-Ow8;Z&F-v?WDV&!{;u+b>WHg;+yqG(Cl)RC<{`9!wzT3X$P`UY2XqUA z6!bt6&6?fat*zQx;~x}hn5>~w*9p5MWV@#H2-FBqSdvnWwyv%usH(a-34O3ZlHdmC z6Cs+oAzL3rz_qU4aEqjPx7|*2-A8tXPQMFi2})M*YVt(q7Dnw618PxlpXL;O`wNP*1v66r6GM^LJ`!Qn4K}dsbxcsS4C}R16!si(S ztt|KN8YDjnBtBolv=bm?#M&D6zdZ* zGxVn^mSFJIOq5{uG%Mj0pz(*M{F*zji*K5vFVq*;%@5q4zLaG6`H=jwvd{RW1vE6h z2=^6<($taS^3A`|s|etH%(~LVBgl|HkF{vG}Kq zwQQS_;3*mSFJM2HH!y)KU>fVc$P!5-yAa~sNX|sl5?x4g&{&eBgTpa*z=w=DBH)lp zq^oeiV#|%FM`VBTpjrI>Zps=pe|jP~e`KWnMO6hliJk9Myqi%@VL_(Hgr>QvsxC#HgJ1gpMM#;>s-a^~dF}U<;naY9`nA|5sU~Ce9GJ%m;83`-$lpvJLO`(Aj3S6>T#vp%$ zX@!;XnTEL$WTQ%8WU_4?P-PONd$KDjGeh_yNjX>DOW@kg>^`KP_W53bTHq=9nf1v_#2c;?t`qdJd|QJ2khli~IUNAQxIDb$Ll=el*DgvG0P{Zzb;4cG71c_uqDI9?~Cei5g4a2Z1 z4tT-B^%7Arvl4LmNwC%hbqchF#eK1*nwj9Xq^r^)#b}~(_#}wREJ?C>)gk?me~0Xy z#J`6<5^QJ{1teslm^8YgE%`#eGj3sc6`5%(vvA@lDNH1br$ z`U(>v(Fzg_BNX*mc;fI<6p_$S^*^|jR+V%}Boz@!Q3NCh|CD0kCBVMoMaWA5>I`r{ zd>$;}$Z2Anev6YvMtF!P(Y4|tQ81=)gWXzy1(=GG4|aJVQ6@5EjNyE(&XEuH1X((V zB*ToDo5<=E=+4?QJ_?N_%Lkfr=beL6h)EwEWPhoP8`*l1M=pIVpi+qOXA1oJ#hKUE(HMUsY+2{Ue+L$OPNPL|o!6A{g1^Go2y8eBcaw{eVIn(|D% zL|c@)PnuzuSyP!Imzs6)pih#@LhwRYlwzgyZ*n`a)+Fl_>yz@8@>SAFl4XwQQRH!C zjWOv`urddHuac#Y66dDO61nn)9ph)U_*0kY-*`v`?4xna4OO68Ra(ckYUxbl zh)sx~@Uhkz(zf-X&EX)i5=Fuc3t4ng3W~r`Anpr8Y1hh!uI zbvDc`O#k3KlnhVcm`BhBCh}7bciicEtq8joXI`rId`@magK=P2j(WVmg)ChL7=nfe zo}b{ZPr{vS>zyYI(aA2s?2Nibs>xV%(14{1|If_%Rp*_d!px;WbJv>!o26+7m03+vUz289$vjQ+v#v>l|%q)K87iqLPy@b=I^I0YuUs_{EZ5)Ad@@!=HR zd0=tWn~HE2Qi&P0#MER>tfH;{%wOQaZJP8}rLHDpHMKH>DuaBTLY@DiZ!b%~*JU-I z++uaPv?8**2eN`(x$`s%!RteB|_nm+pi}ls3(jFH2jOA1I=in?0Btp#m6Lq zr0A+_AC=&=VE&{vX;(>S52)Abb$` zlk}IZQX1B@a=hcI7k&F+*V%2jL?POo`@jpbbg0AJR+WxK*Qsg!9%lS*X^eyJ7e;%vgEwyFzcP;oLk{s8eKV+w%%hNBKJ17n zC9Re}mT(f|$8fJl@ARHm!*pg`AZ;FWDO2ugqZqwUg2cO&tB!R~vcMyk3`S%_g0>he z^`SwBX+!6?M48i@g^+LLl7WfU@hb77uW?w&v>7=!2V4;M2OjR%4k-xzRO_oUIK9)Y zPKPy5kq*5A+-|C}7fmc%T(p?W%2htBHitw;HTU5q?8rBs_I@J6;65(hrAXmPQW%1L z9o$W!Ig0h|;y-yqnOyfv$X`0^YaGSSDG6%W&AwOS%)4i{Q|*59N!b4pkLA^=Q+e|+ z6>yASthrzlB0b#Bya*Y!;(98*F|}(cRZP;#v@=8-5M7PC(0ey9f(Cqiyg@@foCzUi zi75PRFSk3F>`3^12v?l9a}t7>^Kjk&2j~9-z1l z_zU{E39Q8@j<*1l-4hHL(Ef#O0Zs-gq4P@)?zM!UPIU1zz~C(4Ypgo~9y-_>@e1MR zmDkH<(FolrXTBBR-8WR(9g!w-U5$`eTY>c+g@H;wI{dn-f!<47$=>4aaBldU?kcCx zLP1S3(a&3jt4n>1#eV~9TP}1bjGYeURpDR0CYKu6h(1ygBk@@JI25^^mFAx-y;v1< zK6?J?mz!M8&VBPbL`>Ojp3C!76lo@9Z_=calzH;prmITZr_gsHdp52e9@P`)J}>3R zy1fnkr{Hqlem=|0o=f*88myc@t?x`f9)4^FT)pmysqGhZrw%S-i7$C?z0pd)UZ@RH zPM0*?*FB88NJ8m$p=jN5+XNV@pXs%u8`M6mw*$o9By#Wgx$LBSx+Y8}K{&e~&g}Vd z2P}gzW%@|LmeJ+^tp;t!ZJUojMN@A6KvU~^o#_e8+W(=?V{nfvLVd8BdNtG1*mSy9 z_qjeK9o)ou&}!9taoJr&>gXZI`9tw!DBes85H(*uAMuBIz0RsCMoaM{tHme^>*;k> zkj3=Yr47|5ksDR|6kY|$BFZvUB1|kAK{SYDQFLLKrh)NZ)(fqG^%v($v?0@N@YQ|a z1a3`yey?mVafF@)9~KF|6Px!lFYLwav7qNIyleIICh0zKNp7Zx5W7u;&2zsFomP?G z^Fv{qw5s;Nx9A{WWc~8k%Tg`{ZBqabF<~9+IFH zN3HYq>(a2827biAAFtGi?Z7O-&LZqDg#?tEXA8`4n5wj z2NTPXdvVBNm_<|duvM!DgnCg^jP`udKRnDm#1+o@74L!vI8;0orwO(sHMmQQ+?`hs zn0hui?@3*p`ci+0LFLlpy-ChZKk8MM(f`2>(yT%e!Rp*i8IIe^Fc9h{-jyU9HVT%N;ea?<8Xh z)kLm7HX$KuDFH1ZdJIB57kA;MT3Ruu{G929e%o#Q;S+DF_>?^mA6 zD^D^I|Mc0I==tZrxGyR0*G|11Ze*q9V)c471N>gv(QO3gZnlfKIvLJ78(dt4KTzu) z7Hemd6sDFQ@C_Wfq%B^aey`g%=sen*f<{jr%>U%dvBwYPk&MAll;ta_Ny;;P zY-HIV3t3QuZaJ@V)ETDS+g0}+lfWwi!USNekECMx+xm+B2@v80;exd927hg+4iI)w zLs@5HP%1iKa1hq+75o5ug?fPf_a-Y$*(7{Sf3^3@Z)PjpyuBfAcnb8!o-R=!Y z7g)W@AKUGIIi|VJ{2}YWoJbGj3Q7nb{kt!tH~G3%(DqBv7DeW_Y#Bzzz<~KM4W#7z zDCD`;HB%aMqjPl|o@lHuAwM}gvc=kjSPDR|48ACyT-7bsK#27!d+l}m%k9K=wOfiQ zzVc_~yd>-lp@7%hXxP&JcFrR0Sf@P7u6iS7@3Y}+8a%Z9jdI5&-UbH~yN}L?fc3`h z5u6 zcX4pvy5snrq$jrM6zIIUF(0TyboD5Q^HAw%u^y_HSNZ*PQ(YE1ThE(Gja~XSNa(_1 z)DPTqzf8-{ZXj2N?4$_K1ZD!>1IOvMwl(?9LR&w#=IpqTC7S9KqUnIi8zj~@l|NU_ zItWuA1bEe!Sc%5mx86is%wOV@x94W`o+h|fr;@!a@aP`vd?jv89kXxM>;$RlDtl}g zwv+ZSk9w%Q_4Vf}q{_B`yw11U9T^xjaV}JGyZnV7WpLW8i{=|G_YZiBZK?Nrijj@| zGJmELiN^C|y3A=}v7I>fGPvYtHXGllUWp;v+PGg|izb*sv{VYn6A<^cJKD(ALAHN( z9Z9E?w964ZGCeDATFAZPgdloI7r4j!v$bfDpT+EI;3?x>UJ%+_tLP@K~cRcz+||oQf#kC5$dC1deNZGW-*<~&u=IFkV^lq%^@>p z@2N-EaLv!$H@y&iw9SCFC)r80e)a0jz79Fh^PhX~bx9s{`b3#l_=bRY&n&N?gVTLc zC$^Wt{8=GPL;=jkVN{^%Dq|zj_y?ill_6E4D{U(Mnc!FKo1pc*G9NDRp$Vpu_iMlx|c#{yYot5FLH#q|b2W+x$|MQDdHF z}tY8!YPmD{`mjy%{suM|2wtbf{@R zliZ}%(FHS$!NFGdLZ*%wX?tJta_)h#^A|sOO;fh@`9voOdPJd|+ZQ&EbZ$SNmV>+B z0TR_!O2$>NcBq$yz#uhUdq!#_cr2~8rsuINT-M6b37gFgTyMQJ%5I*=eOq)#{BkV`N$EGy~DIFz5`b7z75$O;aa9`iwj7OP2!@(VCsUS&KD~QD# z6K&g6L||U|e2inrVv=8T-i!dvXA_W^=qJ}2j9bs1HkYAHw^Ad2a(j*{_8SlFb$Xs{ zN0L5z3|jSjnfdI#EVstFM;MGAhEGX^;sgPHQ@HVydF3ZX;9gG#LT)}N9e4W{a>YTF z5_3Y!6wTc@y=JRRXVH}T%_(0^?>&DV2>nc~nCckAw*BqevRcm?fce$_{GKAIB{)cj1z83Jz{?*?d+fbPu)*pLUY@Z${of>`C zv%3AMzH#Of2l<%SwtHO@+-N#z?wf0R?i()PM6AeW#Ba@Hx3G8bVW<9q_Ac|9vFZ0- zE0m?7D&V|0dxeu`;m1yVbY^ge9B?8iP;hE9$rA?tj0--MM35T+OSx9L$h~F^ zSBYI7#|Qm)D?e5It96baw|0?>{%M~D7@#CHpN*F!s=;^q=lP!y%&urxc?G}O5_Ot> zEzPVvo^uzzax-aNyOlc(NKJa!POLX{x=JX7JEV6Xr7a9I?fBK#y1ozChs#}I<(>Fm zs*gU;u5A2TN@LjE@wOdl`$j;XA-`#GkAFjVapBe4xx_me3^$340ZOXoFUk}^X zsclw zxJY_cwf%Yw-dZn}YYAvHK95{P3c@>G@JEt9-&(tR#c~=*?;L#U_Wmqq%59{$+oo## z5^x;oa7QK;s)1DwC{}?!>ei^VUOko{!+X&1M`_Q=P3V=GyX%;=D6wzPXCU%@YNhKQ zZFi3%IPCWCs4so!^NWf+wy_yZoB41bsr@0r6u@VCJfIPfM`Qrp{p9Vf*N}sHSY7s* zs`nGigUDI^iM-Wr^VU$XTDD#P{Eo(DZFSsdj|uMjk4GlIXVdviP7hvD@HvH1``%G` zvtnovKE2l+P~F(RPVRBly(G{T+);ze{GQ5WajDxfU37MYJnulq_p|4`#?wOiCVo?2 zV8LrBVW`MQ68YiJSx=VW)|KrFU6_VWT+Gy_o}!-MGwLkwsi@ZaX1M+*ui4N8=$ZD` zNhSA5kC3nV(9$j3{ypx#Tb*1unFdj(&ydM|XnVB%C@pYW2g{&C!2jYgEShgVfZjlh zx#&^%BH}D6FMG3Vd!3(d@OB}nsY|Bw9j^Ds$79G~`_|Tzbt7F@`ZGQ3DUpG{m;Up6 zQBsD9fdkwfTkngKM*e8bjgt?@!!(E3-W!&GYf;+=^3{ldX8pdQsnv4j0>^O_Hm|h> z!{Q9yEOo%o;k(RP3ML+V%fbCgKG_QL+wn4H+9of(53yhF{(CHsKgRBuVBd;ki7#)b zr$;|}|MB(`@x{^EKRYPx%bCbYVbFXo8@vi{h%Sl(cnM`G>;0%8Are@*<|?Kr8enZV zzJ4fk9Ey*x=h&fyq{*Jo--YEeu)xibjDTZP{=PEXi1j?h3;k2XdZW}hw}>VUhX zk}$lCD)+V6;yMzXAWPFd$t63VYVM+l?wi4HRl3l$CijgHgj70mb_)F9)^%lRec2X# z!`3aUe(J2#edoDzzxAhBC|NL3(V<*)?}QB5+R0RPk(tmrYK&F!_#28C&`7jie`Yn~ zZ%)^JKcT*QOOqC_Uz+1uUsJC9Nw3>!D=Oo1mA+stZ?7HR0pZT1H9o=iW;arY&|LxF zbl%)R#-Du1!*=(_T;6B?{ZRPJg6qO3pqlBN!!N(A1^=RJJWYgd*#qfk)TN#nF19g!tut*hld!YNa_+s7 zw#0x?{95(btfk>VwXa`vTKIZ|Oa2h6ulBA_63j~&3-c@bZQwSSO?_u6!De)qC-_CnD z9u$qVwkN_Mf+&_HhozywBq_w*b9<;YA}zOzJIp&hDr8efW=UjXp}gM_W$Cca5!I5o zx32GvyVN9A#Ywk{5Sy!z?U$!V-9c>m(<&q%t4~fV0AJOGE5mB+`XWAAWG-?LzobHF z>WDdF)7YpJv%YiZ!+GW5ZkABbjkDAuwSIFBd;zI=dgmGc%lzUz5Tj)?vbSq#BY=;~ zx%cd5g5l+e&|{^__~vu3ThgIRZ+JmMnac0+7!Z*l*lhI~4Ev;*zvh3mxe@7Chpah` z=7l6t8a{a`BbC`pl%DFd1ZRLf7%3AF}i(5Ex47148wb+Q?Vp^3YtTJ=c5n<96}eAu^&QdH=rxTxti2Qw3JEdT z8qb4pDypJ54VeRn$l);1AgHE$K+hsf@-4+=lk1_-#$=N4Sd7MCn(!G1t;diFxjETc zS=hN)x#}YZq!Z0H-i`9X$YkXFF!aHANbc^%MAPo zbBGL~90E|^_M|K@ zuZkrVoT_*t@9#I|o7QX-`a7{)4O* z<7;edI&4_5ezM=JAazzURPc8c7K89m>Ap6H9~}n6{25CeMe-#yv^wb)b~1pHqokc= zqBPsFtIiLTt*Q6`U7<^#fOd83x(@BMbjC=?2!AH z);bLT3V43QBEOp6#(h<;KUH&*j*8*oisVxQN+VxWDsqFtZV}{g^Bp%RB3Sf}~!N6Wpk0+?; zdF?Rk`-cP)p@&}T3Fok8kObSOZc>xR1Fy|T@1ZjbozaUhDU{pj8d>viw{#YCIVa{p zWA=jEtlutQeH$52fGAAhGI2V2+_C*NNg3$&1~O8UwX(JLxcPcjJM!oX)Ia5CKWQ!L zih04EDx1{-n69358rO}!kAjrxI=v3?)Wq8bv?J|&EPzH$Vl^?IjkS@mU{4+w_S%WO zB`vpJNoRuC?mcw{STr$O2B^Dq!f9^gfY*U+6num*a1Y}jbM_1H$ki3bEhid=*~WC)ssq92+ZB5(%pRgOsg z5qBTf4f3@e<;WFx$%G<-vix2)LsRuR+x(ytVT)nu@0QD|Ng)Wm5U1mgxup^;uIuCa zDNf4y(UoubZbd||h%Y^h{3P|c;D+%)#hBg=+mnB`V2FxLWF>dRZ;p>OFt)$U13lGy zgx}l7)G6}TC}=QPZm?ck4LXCKUHB<}D2usBhoBnQgDAD6HjrW9jAXlZ|q8d1p$~T}7oEyDMzT#P9+O2s1)X}PgnzX^H!Uh6M7mz;k0`ZCzNlauhp z+6##7y~as_+wNm8gqlde9AH!G*AGegbav;IPk497@7Dk0@FI*0@P|Y&gN|RsqwahY z^051w4ssy^Lic(wk)kC=h=+)`!G1aoG`w7Ack@IN5J#xJcVG4z48a?|Ty2I&y!SE; zoRK{JM-)E@&@zo5+}PgZ55i}Kp7A21#{&>?C&fvN|Cc3lQq;)*77x-VBDdI}C&;d{ z|99N~NG2!!;ux@h?)E|XcHsXL|9{T?{}+pz^mnk=1KFPpbuddbfFYuSIh=+BhV>aA z@x^d31y#ix5DY!i$DIM=VkDRY1#bjPAO29?r)*8riqKkN$1$T94kTeA|JWp|Ho_~P z!>z49;pPyo>=)fO)CdcG4DSJ_SQhNVVKa;$2|p4Zw@AOv?}gJ01@+!XG=A0mC zi~IZ@YQb-<&|9#*!i03T`JpF_CIo<86T*( z=>2~vJE!1EfNl#XGZUQHwkNhRv2EM7ZD(R*V%t8kCpJ!On|J>E@W0)MTh-NX{kCgY zcdu{lb^5hAdH5+m<#4?;mC3cYe=?t$z$o-5&vSZwOPWhrI4@tnCl5kp25=#iZ^4H9WCteV9g4j{p%7ZygE%bYa!%> zjV;bBt5;qsK533QEqT_Mf)3t##R~Okapk>gNbRgvo4dBNr5JMkY}QJQTdc+U)~P_e zaHt4F`BO$*9B~3~x+o+;Q+t*)Kx#(*3^S*>+V(RtDbvb&($aD&5nfEn_642vL#mu^ z-Dk_ZZE`88v+(U!k95**Y_^$eO-tVHHo97)T)XPxvS-kK{KlNi>Rt2S@a#cpyQd>= zE2|GK1e+?u+de?L{v|87&E__k+t%#U%WUdWohXRa?>p}pgQG!uU6%m-3dcFIp1u~& z)r4ucUV1FH|8fz<__{$07nq*BT%*1Ph@9tDde^6`sIu22-z%ClHoT&R{9TiqVRoBs zJvA-5kij?mx!);E-=%pnmnFWjxqDqvS$J=0W&df(0Jx6Rv$U4$gZSFovLiZqG{9Is zcID{uY>dCS9{`CP-~awoRw>1S&Hr3NplK4YeCusx?a^z~yh+ElAh?xktTeAi1#@xn zvn7KAU66_O&hL3o+(<#Ec~jQb`C|#g8FzZ7y@kR#b9+5zVENp_%KlK%3F|}C`^Lp` z4!c;(!*;~uiRX?+om;hqqMw%i&Z3}SEgVYxL4lUhsI7=L-r_+)8rz%UR1AXH4E@4DT{&<3t_aY9b;mkbl-wZiVgk5P!U3v1J+VbVo6E zd;lM=)$QF6#)lS2IgCS1F#Y;TG8^emzxKmMjQNI&V(p!Ac4^L{F*_HqWA)DdCnApLEC`aoRrCD7)BX{him+IEv# zd?49wtBrJnXyqCK7_HVO)~ct5p&Qd`hF@bB*P#|ZWl?!%cLDD@b$NN?)yZR}eW-fP zj#s$efv=nymRZ~*XQySzpOr_AgQFpA?5am!!?(zX(Bh>OpH`jATy05nso1g@D+?Y7 zAl0tO@}8@&vaEz(b{nI1py9ZUi8c3-PGTxde4ocKlqq=t#%k=0fh0l zP_AO2lvFJYU9On&EIdjx#m^Qa615&blAa};mU^W{AH?9TlP^Q0J&boY9Ce=*`#k9svlI_re z_<8~*N2`0d*3CHh8Dv?VwVmix+R&cC&2T^u;Mr-9^`mIq3xPil9r-#wmbrtxu|w@;l(hbDv#Z z!R;8S=e14PKj3~o?4zVeZ`~aXJG?Z8|2*OHY_Bk`_8QyRtezw6{T7=hCGd+?=og(I zJCG!9@TdOIxV}A8BmRvL>HwMhU%00z3w&kFO!AXq%ym)ihKCWWfy~yg#_8Rtt}GQ; zYk^|oVw-9|e;ZZeGKu5Cm>Q8k55kymHNbKG(2SxL#2}4MKq$h`2x|&NbQ1BS$sLa0 zWuzX^Azzyt`eq@5UZmp4=?}=eZxT9)dli| zv;ypZPh=%~2VZl8*npKG>d@ZM45)e}@3Ge;APC^yLgZ$MZpabz%$((yRIWcUudqkv zHJTwMND_z|G6LX%j#tczM`3XmE&6cP=Mi9!#Z z9*um2+5t@iI6_uKnkLT{=FFg@A_;#Sm^Gx`HsqLZLJQ*npAQ~bh1Wv3UH2N*lZqjq~m|`E<3BVO%BZNVmlpyGUoE;bgIg2=NfY%OOskMiL&j2#Pcy6G4Xi!6zvG7lri) zTXQ)H)mRzPD1bRg0tq?>3`HXXi42e8{THVQr^GWR$Q$TBXSv!shhA?#>Jf0w2BHB9 z0Nw!lC_O~?$o!N(V$aFf|F~PAxJ!@!k6rwTUerg3UB{q$L;&HB-3g>C)JMo&agr_A z!DXT?@-ATy9whx}4;m!>aF3*GNRX@5>%U@JSfN>1AplNBhddTD;r81QeGKZ`{EMs z@{{nglmD%(6OsRv7Glnl{EEag3)=@6$PWk!^bHY!*mc-6eS+K-Bf2Esz>mNUZ=*rt zAaFD%vir6h_iMvs@FI|tVVB)WQ=Yyxae{8&i6!OZH?RGljo5w9?;u1KkQdN3uq`se zy8M+b#5JU{Tw4A2QObUMs)Hzz9f}dWr=DC}%wPNnTOl2s2wSl#gu&dHHZmlh@AcG3 zJdlo#L~h)>B-EV=ybMHXcip(Z-wLg&^>I$Cyj(L7iTdwHDNfccVXGO!1z@mT}~NfE+Cpb!u{1R`V}P>L)^4o9v68H0x&;v|G^2wjk@AVfuhh79vv(I*!J=@u~i z1GQfwf&>ft6%4XC?F3pYC@i0%40=2uH(U#p6ZihD8S%k+VMakf^yA0C3&Ck;*;Rf| z>?_7;R++tlhMu@D{Db0xxI$~8ov<&~gBjcqp`y1YX6*ecIBMSQgr!3&@-zu8xeJOI zN`)n!7*baVHP8Xb*s;$kL`xiITuBur)Mwp&r>NMM#slv5CyGQtf0|gPpiI6bSC&ME zOok|i@}F!+&WbdQB!+qlD1>$m(Gr61my;-*UWZl_qV5-xAWjF2g^&r6=$d^a-ttDh zWjsYJ3s*q=^9lR?o$u7WZ2OO2uou{ab&B#|WD~3~HtQ#oB)_gm$%@8lt_#TJ!VGjt94)8qyKp48h z3;fAS`+v8QjKBZwA-q30;9Uub(-MS7DNK-=0oXtO*{SL!DLJ8?f?|kJetawBLFsBG z6)qE8h<7y57xjg3MLeA-V<`B9e-K^3RLC0%+=}w5KW@?^>!`+LZhZ)PrQd$R?eL*F zQ-7XbuLG9qDz^VI3@y_&6w7Wj8i;CDqnfT3Sa+WeYxHesG@ij=oj9AhrCWDMmG{P& zr>nlYXLGwe1i25M^J}IkntVFvTwL8cQfTQb3L`e zIN;vkooW9XX4zxro^(ZapLc3^|H97tTGB@OLSdi2pS449g&Y6qcnP_^0uSHAbm_Hy z4FAv*`CyaWIjv5Us^th3sPgVoEE4sP znW!%|dQ_rqj1ew;JhmQV1S(u394x$1a^R6@;qnfBS@fLt!j;5==l@LyUWq%OEB5^a45(`pBER%s)NEvX&#>{bv z`v!UV3tJf>Mi&sv1>ZgXcOSCXYS%?T`@&rgBz{$7={IC0@LVEme`rN0_+D5sF@e2~)oGG$6#A_V7448^eA2bdbFcY$}?ZWo9Z_M{Z%*o|>{Naa(BR z%JcTi7Cd{@M~#7i7x~4c&$ENmaY^RH8hl(EEa(irw>H95X;~0~|&I3>qKK7v){~7*&S=E|~U= zF^$L>zdq!Tuh=2ZwPlsXqN<+jTKATQ1KNMjGMgWK{_ zapyKbb^$VLAeawu)qR@|PH`Zv3X(Qp(}^;!N10FSKd6JO321g8*MU$U;BJGg2|e5K zdj7rv#sQS&jN=%fbFglUIkNB1J1bJsbK=>6_YZpe?cSH;fVuJg$>@_G@8bCWzwY>wB$E)GF`{Mle(#3?*bm#pY-iCzA{Twm@ z!bm{0_$^nZ5W9rk(ZZ2J=Tg>bUIJXE8B&*-Up54NOnzW{W6r$3#+*3*V%r3G{hv2H zpJjZ6aR{+bZucPLerdPxk=+ajG7p}3gauzYYFLSfTr7)+(TF+p9%c)dEdtgs|8Rc^ zQsF}JVsWu}?{i^7{_(EZ!jZ@CRnmnsXHIWB++F9glm0=K14o>5*?E$`pW*m%B>d6n zuYwtNq@TsOFT?$Jy>8j?`rcbDR^!_Vwd0$8!UeVmdUuG#uAw-2sobB_69@zXI}0cHIx~)Pdeq-y!t>Zuyk8&h4=@>(GbQIVg7a0V(GWVd zsm2^qFwoHvFr}h&5jq7EY=(-3!=gn)%Y(4i?Xl^vc~Q4t4TChiIdwI1)wqg(O*>@+ zmatN!no3S{L|e+j9OLFDP13z8(0Jj zB^@YAIX$(f2i~`RhW;J}X%fI@IH33oJ+j$CAl0neFmX~;-b_6eqz{VNqTyzZ>ic)! zmM3VW_;8xb>!aU!I7mze<~dF+zy zRwb+1rtHUbL-gtesxyad)fviF>{t(BKfD_@jh9a0U#X6+zd5#3NRg)P1^P?7$sXtL z%49bjX+?ABqwfKve|jK1od7v1BRnN@hlW7SJzk zI=kf4$+wL|2U&~SR8G*O-Bj%P)LD6F%biMP?AFazIk{>)EiqSW9fK444Uu`Gz}G8D zEZI6%OLM#c5$gO1GewMRywRVNw&6VLp6dJ3?zZVL)u>2}5R6H`Ct7%}%MiOEetI7X z@1<(+*iTt>bB2l4B86kT?t*v@=iu+~S>29FE^~{NPX{})D`^8G7*H7Dcm4XRwf?*K zeEgQ7<;u~Jqb3lSKc%OwCgC3smSZPQHM97>G*cu=z0NXm@vI+5(~8pIB4_i+)U+n=@1qY=HQRInlli-- zDw%0ki+=Ob=?rBz;$=8GDPkA$0JaTx==+8~f#>QRbxK z(^U*IEJdAzmAWV8i_T{(Ruhe`6)_d%=XlZUX79w)Ai#7Bdhy7Q-l!JL9T;Z1`wWka zDikRL4I*Ub763yq!mj3+Syrg#`JDai5llDjtDwA~YM?^G`h?t>;`E5F@k|W=NuNXE zN+i?XvYW|2j54&8Xq#x)$PyyCC46Eb_0Q`Gc}{#)1)=*%966V=SW5BnK6STLnjTZT zkH-YG_u=s)XlQSo*+nW=sEdVWJ24SUwb5&tyi&izsEL@EtvLVhuGB)h?O~ARQEZMI zC^?2qI+2<`dOH$JR1-ps38yOI25S)7eWxaiw(18PS;Kok!PLeCjMqLIImXtmhdh+H z>GhNn)5)584O|b6X#Q^0rg{v(FH5br=%8sn6C>6c@Mx{ym7fT??){0HwnS%5&%2T7 zt%MmzlPB-FlB9#Rl$1S7Q{^LJ8(lvXz}=pPO~BfbK2a>O`{kBzKhQa_P>7YzWo|U$ zmX_wtJD2T9u+C#?Fuxl|Cd>Qt@P?T8{l`_ALZD;@9Af{SX7zY}>evFLssnB(lI*P- z%VorZxoa2APYmDq z2{ZYqm*yCSw)VH)G|$rdncN)C#eq8=M;F9+y|`V`*jco$*hPcoeW$JFi;e}MjYlQd zl^3)mMW3!g{6X3E$xfWEU&3}cj-51o3>!R4v1f94gV#B4hf_GlolO;tJpzQQOs`Mc zOVy1S+@5b<(ghQm7K@r}tkgI+sLi>pHR|C)2@w}HN!v7S*Hb@!5x1cff1!}yL#&6J zPbBwz4>un;3US-G=keOV^PD^`-zjzXX_?V-H!~hbYLzWb2F2B?mKUPh03;tdW8)YG zLox8P{yI%d5`-@0FORIDWM7&zt5wcw!j6Z$y>+e-X0+CGnC@)CAb^UeJUwqrMdM+P z0`QxJFb9LhJmxFIpC{cqmy+k~a5U^Eiuu+(+UjNozPp*^GpC=33!D8pNL8a6Rua9j z?QUjesa!Erf^;{`D+cWwI+JLYpgd`+o7Jl_DC0i#%daA($o-Tmq^*eYdel`IE2N5j z9pLY$1;yY*dmaLl!{>wsa5_Yo9<&S+s?*KOZ&Y-!|J{0)-9ft zX3j8NZJN9M<1w+N%cI)Dv03vFdjNAhkLdV>42Mwqx&iftMauJKClX`;`Z(~2M`03W znky9X$$pot=Gs0Pm!F01Pct=DZRtv;VtURDP)nOIUTV|Dz3Z~8yo6u%_Og}}9sZ8p zE>5A=k2sV0$AmgZiuMB(3T{nAvuwdI!`r1yHB;m8Pw1>nWw%^rO5(b%i0t({?zXhc$cT8%7f#1nN)cete+9y z8c)E}I&MR-#qKrva|?~wc5y;I9^VVJy_EB{tGXAa-*z?}sXKocKFQs>%lc1^V zBRcf*h&0?E^kyU&51VJzaa|6{g9(O8uk$MF)IL3iyEQ0MTpOv z4pZFX0W4PzkBLv52-Z&AR7JYH6JI$Z@qw(~isBgb&4T?mJI3gfoLjv((%+nxd?aN3 zv1EKa#OeGUqbG6p{`YGnKqj@9`)Lz zX#|^AF5X$@>i{G-x6^3D;cdyUZHQ zBCuUsXQ;*~IMn|G5$~1nrt!+23Yd0NVpV$mh-(xQ(aTRsK_*pwns&v*FmUGNlra?q}NOP|`BQg`MbJb!>wjR@@ z$P^uhc z9eiBx|4I&<&7$!?o9w%@zIm6Iniaxq&E3ArBFTp4?-TgL|*NtoweSwHs6JL!|B{< zmTziZ8KUZ3q(3%s>ztg!T{~ktzMdLNv@qGDh1xU@19irz$7UG5b#*v0OWa>SrC0Re zebTd7AI4y_m`&~2L+9dsQu$JB{pKkifz=tE+A7;_WtsE-xhn#66H0LrAH+mYML_F0lFi9vo*bsomRZlbu* zHavK@)^_T(#%6D3wNz1+Y+Scuq)rhVC>ysrI-WlpVX%{6n5r3%ldUhsO4J1`xkQt) zQB1U+?sF8*N6(FS6%YBK^D^8=!tLWHzz^(XI;gN&7O#h3_&AIs(*u|1IAtv*Gi7qO zzqB&8CvdvFma&|39Bta~4>hNIH9#rxd%YWd;Qj05M_(&%DA$}d+%xKns=g}Qo2RF5 zJ&3NAovvC9iw&mb(eDi8d3doOwvIH<A)|>n6rK?{ zit}j{4YNClFwJkY833Q?-c`V)347$hN3Xi-CY`1e-VE^aobp4!y|<#q?_ulfsdu}Q z{aJms$Czq*+XVA~1c2YHgX;%98@|7QCYDPn2fujvxzKXjGu=$w%m=y|zQ~4j`f!NV zMzyeK7!JGaCTD-DVXCLFuN_-cB7$|IE;nkoHQ<#dN`SI+z1cg<%w zq*~}d%H_F&*t-|67|}j$%w8|AK3}MFrUuUb5lB&R5t{>uXd|5iTM=o_6bXGl|Ct{- zxx@IK+@$qE>^9t8zrP85e3Mv*p8MNL#JDM(Cm=BP{lO9Q*qmr^Y;OMOO>E&jkX|Bc z1L9$NdZ%}AzW2$VwnZNdlC{vQVoyiCwm$r#zvgAUGEMvLIh6A!3RH%OxGVWn80bM= ze~7xnLkBl9!Y)!Xn=jQvS;qOsU0UsTIyn|rU5P3t zRa|y!PCA<{ZvA(vTez4FN1${BnMGu#c50~T51})n>?*44mI(2mqu^rkOuL$y1V@HZ8=9Y)*W~W)I6JPZ?k)pNrr&G-jqMz7E#}eSP*UTEI5(NDRDJyc? zv?Me2@`p4AMr2QT8TL;0SlXw2oy~6Bq~76#D=DASlgre1?(5Xb9|LbV~_Q#g%Yjzhu4L0$Ws0)eOIM!D`OCy6G0(ER1E%&T_P0 zIjtu*6Eb+33Z)B_sA!4RD~8MFsYpIXo)nIl;V;uuDy#Lfc3&)%8QZCgT8;Q<1Zj>l zdX-4Q*TlG5ZqNGMzXJFoNRU>2)tZ#7%;zC+YSqn;2Oy@;uM{{$b7JU;S1lY8bRklz zJ5#YzwKy|>9(xIng=qaT$k&bx0$i%OCh4jy+0%TGQE7}VOh{Eof>|eg1T+ru^`z@| zKY}j2FFWZ{w?F!7Tq(5|2LE=lUM(Oln)4)KD0g)){hnHW`ZFc zoEX}xw5~Ua5VOE`xt%@_g=3U%z1i1%hjc@xNJoy^=C)+>SbEI@Go}TN8ffpQIiCF| zr~HbUv!l+cTyGEytHYennMYV)n0M$e+}=2t@bqc9-n-s)KU)R|$!3ec7dv>tFX}dt^&B5`lBfwIhx)z0)A(Z(JnlO&dqh0kY`9)F^6mzvWa*hHyC`o1gLEBTN1uHL#t=w2JB>5dK|-AFy%Y;OFzx|3K*zgq^Knv$s#NTvGP6xMX&w6!?1uqM@TN95Z@S@T&Ivl> zQBXy<#yToBj#mjWjyFya6XO^s+63rnf~=@BdE}Gzdss)LiVX7siLhu0MVdb&y{70< zyNC#-Kq_HSL`~}o!CV9~exafR$Rn!O4sc3R2g= zrPo)`pMca`h(|K!f|0+4EQtJ^H&|jP8z;J*9rn1uYQUX{wGyB7ww{9PTL)!;oG^yR z@=HhO*ZaNk5CgaYOWt`p9(OD<%a$(hKVaHf+tF6OGEY1tQ=2ZL#=IEk}o zRHoP2Spym19qr?un6-GqOh6Uyyh_Ydn-{C73I=&mG4s=x z>fe`%(hPktmRPquQ&9pNqOcunbR=4Z4N+nZ%oDx_;#EuavlO_ya2$iEuC|+!49T6~ zPuCW#S;;PTZ6J=HqW4c)JOh>7Aazh-W6gvR1TN$r7e8qXi zayjN_(Z30J#`yHQy9OLIm1wUQkcK|5*GQ_)Avw7i1RI~7yF!0k`oiCM6zW$#a18Ik z^H;xcGjFhL&Zv*@T0uxx!aH>jnU+`n)0aikdtr{cwW>J?5e|H~a~PiNE*>~3q1zLc z&z|!ODaJ=N4cZ0B9AtXp9L`x^M<-t&7Dt%!%#?VPj18*jbB~mM$?lIW%&%A0`&2Ad z*>LNjwY#O7F3T97;GJ&hb)j=~a98-sYRD|3-SMFaOB+R?0^~-U9+PG}E)nMM&MNIcsAh=4_tS*$gcqBWN=$ zuu0ri|EbD$WL^VEbi~Kpn`}-!&_RQ#qs~ZdGWmrp7Z(|-LzqNgTOqUw(G!Z$yWx|8 zF-8~-j>eD{$_}Z1X2U&qOR}*VuwgvWSrK2Wn&)SlsxtSZ!Z`BrC9tj%6B0%n3Lqo6 zH1JxQ_6c$p7Jq=`Xck>`(E$gt>}W|{V=1R-3Zl9|w-)Ji8jDrzS`MjZ`=9KTi3KTF zs+6WlSaOVC5<-zFG$=+?{c=X$Ut0q7iImn0+!6Q~6#Im{aY#r?xnTI-&>x-Vv%2>$ z&UtIil`p?wTf~P<5)qTAYCWr78Zp7zd4A)F!@UD~u**ilbs*qzj(={In_XRWd>6nw z$>rMc%x}Zwu)DDMm!BSx8Mu3z+mY*_SdphfrCX^WSRR86*7L#yRFV$ixcJ0WA9Cue z|D~5q$@u4{YnwLjEwU&kfC>`>Np}In@Fy1^^fE0L!I=4@4__!m@Mj8<+;4}i!o{PPkVf}=R7&~c6Y+z&ros8sP{%}Ejnn2(k@^Jb#|Tu}7ny?wGC1Em>+9fT zg=!pswoPud-F6NBykXwav3vG2)nTWox561%lpnNd(k$vw{qBN_8{*;p;dBp4S=O75 z@Q8R$2h}t~qo}{U>dXjOYAL$WA5pi)$gLVx=xG`l16bp`IlW9=cgJYK`~C!F5yo0v zowI;t=WR``QU`uqhA;bpImXGIlHnrzwu+v6DsDe=-kvYZ{mUlul;K7O{b<^`3166 zdRACO+u?rEzhQ_lBk8+wONO_N9YUB0G_l!bsndN(7V+ z&>RoFW;teOMG(jGwh4)b&nm?1ZZP847_i&`^ZCh7+zfF2^Fz%Xx{aY}P6Mf<2=CyT{Whk6Ao{ z->31Wt^1^($HU++?k#~?z}4bS4*=Zw^_%8AKBjw-*nQh|z90hM(E)R|49%Vcgre+& zQ{%$$H+2a&@p}yYw9uXK?|fMI^g0<`F71+KCEZsCurQWU)=aHPqX+j8V&w>>W)6d9qW?O*Xnz7dv&s;aW=SdfjRzluowD-7*Ectf@aH zyU$MTPg)Hwb&q8&{oQeM_%X*rop9=|FCY?JC}fMbEfk#5o=WNqz#5rZpK&ZS|ACvM zXWC^LU8bv%f;OIoQ)9!O{j*l(1cS`ws4iN40 zXB!6%OHTW2H}<`@?AyQl=(<`Jh%H8`P>B*Y>+HMhY{m8X7JN6&Kzk11dh#(t(WI0Z zg|bC*g~WVE=C5h~FMk0;xlX%x1ZQRJTHA4&>48P#KMS2ML4_^TYK-VqI{8vM*eCtb~*9Gcy!6 zd`{_i-5=aO`dfapH|p8j;Tn1g#CXYr#2a-XmVd_$U%c`Bu`gNf=1PF#9;qyQ+~r&OUKs&JQSRN-RXY@MfKGY06ISg&pTq<}XC657FkL4~SAUt4mc18> z)2fO7H59aqa+&slLZ^QE-4gHI1yWoVL#c&(&T0uhwGGhN{EzEg)WF@{4D%V%H8iVRkct*p)3>)NAT{zt}Zgtcy{# zVrrYyhbCemLi6zrboGfTxctf8f10CVDCLSSa?FPBG}q{wcM3*4f zMC$8d)QW*?V00AST~46>dnDAzvlJ_GR|8GFps!ro=*Mf62H{}F+xv>5PL?*wOy_4q z)gZm5a2qDcz%*6O7QO4;`BR5;o`UI7>Lj*NO3ro9kJ?h$o1PO&oEhD~S=JQ^J z&e_Gv^j;aBb#d`BN+M{5zlIG0f!8_Z;Mlgp)#l8$klCnYe7R&EbGrZR?PD!}h$A5? z+iNr+-uZDaRe#%5KBP=M1F#JR5j~`(NV*Qp(x2P`{y#DD$_$XqVd%#46?VEQG0cUV zO)c4>l}b$fAWA%-CNa!^nJ4FFDYUtJ zbAgD39;M=nxYHa`HMLGDyVBFPua~R1=!e6fB=t0k*YIRGI353RK7nA^$23BT6ZEnb z7sAJJq^JQYkw;@H9a5#po~r#qX?e@muF_05wkLrZt!Z^0QR2U%ufz#?8oj;X53i;X z#p@NS`5V@D`eItd_)%8tI_QCSzdIIjHJa>?p385P->!Gf1K&K3!lUPh*c37QAN**Q5*S($$|{aq(8Dq z`~z2#vHMHvG{;Itd%?9@2ru~dbQk5vx!;`MT;JT!S89{E-s&`}rgu-LGwPg4=`WAN zyrcOlqgIWKjT;ELn4Uo-!HZKQVjMvYzjxyl#3(&b^I3{I?)pI;;NGIX)pJH^6;RT~ zLYOFl4Q$#9hsX{kUv(nQW|lP!wwKh=e0`pNm(C5?qou+Y5)qu!%G4I0cX5*JSEAjEkEon^8?&)%Im%cY9_h`lWipRtOP4-duSz>PR}io6t4!-Q+`$A- zNsu47<^0q0Tc}KNIv>V4P6Wdh%l8M|MlH@xqVJ*41Q(HHtGNs7s?v*dvjyAKIHi3% z4VK<~fS>_Y{X{F{2?8p(a?Qx^562XUA1sL-BTJoU?9O}f`K`qG-`dlxL(UL}akLM2$% z6>S~0x-h0qn3l+@+z{<+aV_49<}5hc`RFkx?Pw-1gLHyP%D@+ML0xQ^Wu*?ca(vp1 zB#mkF#kv1N3<(!x5AuvkhZx1n6m?P$RkQ|E8K?xI%cw?w9Kb}^Vae%VW43VoGnXj& zltBtqPu?J>@l4X7X5HCpXPtj(n!AvH271?!51y~{8cMuVU%hXGD~oF z%7D{5+=6?xhD31jI8AcXzXd6b=9WQ7+7#uL;#a{g=6A5LqvaM)W4dG?Ob7sHHhg9M zB_2Jj9#5rb(rJfO&d;JO-%>xm^Sh)a{Zr6Vh$2oiUk+sS>q5-Dg^QS3xjlN- zX!(43`de;P7g_-+vi5spk8lOUO36h03G&cyA>Nzv);R*|EoQ_&w+Pg)dZo^n0N*+$ z0{e+KuIeafu~VK3LT}c3zlzScU!7NfX!XxxxLlgfZEHtzZjV)Qrg7lfT?5w5dlYyZ z__5FMY#P{WSUph@638(>_)bmRzb_U}#*BryAYBURGE$I$AE;Xme~-V5r=-wP?f{_R z=wOV0C6J_~sYw&__pY33`?inEbjvits9kbkS9`s%=jfGg7VHk#xvx}cRR<5SdtZb> zdQbO{Sw0q1ccvaBQ?#<}Ne+HEd!t+7eN>_^V7}jkQ0n&9&sHlqiBS$05Sk_Y$N)ZQ zY>N&me+B3m)aH4G-F*gcGL9JudVOR<ClWHW=ceurmId?K$>W>6{a^ zA1+kqneRVjUlnkbfiE)VOVY&;=O{AbL*?r~Oy112i4@61T_X5Bv2Zr1EIJK|CxOVV z{+F|@H-Z4>m@Zdx0u3c9lCg*;O-A-kcwyX&L`=Jif_dSLb>b&l_EOp68XiI6;G{tb zMW6Tpc+#|Paf0GxG=e}^W6a$C!BH+lWUwfd|I{@EdZ9w*b?s9t*tQ0iDUH?}t<@g_ z&Lim;C7d_fhgj?)$&Ebn-j0#==+#&G^{ka^;>&rl&v{y=1rulPmgQ((9#uvB3aGsC zN%@xI*a^6);iauDG>w!8D}yGf_VFYOXh`MR)aI#r1yGBZz418w%0x=l2KGcJ>F411 z?s(g|N=f5z&C&^*UHoc^@q<{-l&Pym)lJLm!l_lIQnhMlmsw@%EEa1Gb=ClIWG&*O zO`>~}Kgx;96$7GMF(v|h&h$#;-m&x5@lNCx7e-J@k9b|5Ubp@J4hB=DwNFMR9i<=h zHzByEW_dFN$zgXZri)fi&A&GjEX@fqbgFAOzF%jWDLT=po%^p!rMh6@D?=KlY6TiB z2@JIPm9Teaytz6rp1Az-?fIvARRcP$T!;*>vnr)A&HmG=XHRs*$Y&M^_>oQuI_i(2 z)4Fr23h3>kN@Q->|`{DWjS#`H+6Wvz+?RXxy;hOpbE!dk7m zKVirt#6lnbTqdQ49hRgMM$ia4Zx4PjBA=qYiL~btCi#V>9UrOOy*|)rE!Em*c1BlU z+EnSoejS?S=k@l!#kqBs(7+4rz}FpUZreS)oK^AUg}vVw1+!> z2psnK^RsLjDvPn!&*hPnAz(I^1S=CXC#0>4lj8_F*4wFa z%o8wF?Z%E+DR?l2ZB>8x4|(VKa%EZZ)Z|f{R@KANKQ@xQm!{NycM&?dMQe6 z9x(q4hc>-0}On>k5tim!K(Sb@-kbVvdyNGZZ>GFy;@s>mNTC*tO8dKL8gvU+8W% zEd5@4n|Y1Bn|ZoYl9md$^ZR=Td2d@=@0siS6Q*$8!V`g~OCd8nJpY(o~b$FCmb9I{zpKV_E+%U0Z%k^zEtLPF0^Yesx+-z2}~5 zX9$5W&aQm_6Tb#^Yb$GOfM5n|5yENPky`t`O2R?9RpD!;@8Zq^V@Hj>0pCvzEo}O`bAm8WUvx??rI5Aq zD$C1@eRoBjVJzMu{V(jTtgYt%wt1ls9ZN3^oZDNp-+G4742+x*GJ-$CbNWegm*kO+ zY?ChH-FPvoT$cX(v3=N1z;8ckXL;YQYrIzlJrUFES46;){)uhbRcX|NF)0hTeaO

+ Types of autoPlay behaviours + + + + No tween is automatically played + + + Only Sequences are automatically played + + + Only Tweeners are automatically played + + + All tweens are automatically played + + + + What axis to constrain in case of Vector tweens + + + + Called the first time the tween is set in a playing state, after any eventual delay + + + + Used in place of System.Func, which is not available in mscorlib. + + + + + Used in place of System.Action. + + + + + Public so it can be used by lose scripts related to DOTween (like DOTweenAnimation) + + + + + Used to separate DOTween class from the MonoBehaviour instance (in order to use static constructors on DOTween). + Contains all instance-based methods + + + + Used internally inside Unity Editor, as a trick to update DOTween's inspector at every frame + + + + Directly sets the current max capacity of Tweeners and Sequences + (meaning how many Tweeners and Sequences can be running at the same time), + so that DOTween doesn't need to automatically increase them in case the max is reached + (which might lead to hiccups when that happens). + Sequences capacity must be less or equal to Tweeners capacity + (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's). + Beware: use this method only when there are no tweens running. + + Max Tweeners capacity. + Default: 200 + Max Sequences capacity. + Default: 50 + + + + This class contains a C# port of the easing equations created by Robert Penner (http://robertpenner.com/easing). + + + + + Easing equation function for a bounce (exponentially decaying parabolic bounce) easing in: accelerating from zero velocity. + + + Current time (in frames or seconds). + + + Expected easing duration (in frames or seconds). + + Unused: here to keep same delegate for all ease types. + Unused: here to keep same delegate for all ease types. + + The eased value. + + + + + Easing equation function for a bounce (exponentially decaying parabolic bounce) easing out: decelerating from zero velocity. + + + Current time (in frames or seconds). + + + Expected easing duration (in frames or seconds). + + Unused: here to keep same delegate for all ease types. + Unused: here to keep same delegate for all ease types. + + The eased value. + + + + + Easing equation function for a bounce (exponentially decaying parabolic bounce) easing in/out: acceleration until halfway, then deceleration. + + + Current time (in frames or seconds). + + + Expected easing duration (in frames or seconds). + + Unused: here to keep same delegate for all ease types. + Unused: here to keep same delegate for all ease types. + + The eased value. + + + + + Returns a value between 0 and 1 (inclusive) based on the elapsed time and ease selected + + + + + Returns a value between 0 and 1 (inclusive) based on the elapsed time and ease selected + + + + + Used to interpret AnimationCurves as eases. + Public so it can be used by external ease factories + + + + + Behaviour in case a tween nested inside a Sequence fails and is captured by safe mode + + + + If the Sequence contains other elements, kill the failed tween but preserve the rest + + + Kill the whole Sequence + + + + Log types thrown by errors captured and prevented by safe mode + + + + No logs. NOT RECOMMENDED + + + Throw a normal log + + + Throw a warning log (default) + + + Throw an error log + + + + Additional notices passed to plugins when updating. + Public so it can be used by custom plugins. Internally, only PathPlugin uses it + + + + + None + + + + + Lets the plugin know that we restarted or rewinded + + + + + OnRewind callback behaviour (can only be set via DOTween's Utility Panel) + + + + + When calling Rewind or PlayBackwards/SmoothRewind, OnRewind callbacks will be fired only if the tween isn't already rewinded + + + + + When calling Rewind, OnRewind callbacks will always be fired, even if the tween is already rewinded. + When calling PlayBackwards/SmoothRewind instead, OnRewind callbacks will be fired only if the tween isn't already rewinded + + + + + When calling Rewind or PlayBackwards/SmoothRewind, OnRewind callbacks will always be fired, even if the tween is already rewinded + + + + + Public only so custom shortcuts can access some of these methods + + + + + INTERNAL: used by DO shortcuts and Modules to set special startup mode + + + + + INTERNAL: used by DO shortcuts and Modules to set the tween as blendable + + + + + INTERNAL: used by DO shortcuts and Modules to prevent a tween from using a From setup even if passed + + + + + Used to dispatch commands that need to be captured externally, usually by Modules + + + + + Various utils + + + + + Returns a Vector3 with z = 0 + + + + + Returns the 2D angle between two vectors + + + + + Returns a point on a circle with the given center and radius, + using Unity's circle coordinates (0° points up and increases clockwise) + + + + + Uses approximate equality on each axis instead of Unity's Vector3 equality, + because the latter fails (in some cases) when assigning a Vector3 to a transform.position and then checking it. + + + + + Looks for the type within all possible project assembly names + + + + NO-GC METHOD: changes the start value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new start value + If bigger than 0 applies it as the new tween duration + + + NO-GC METHOD: changes the end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new end value + If TRUE the start value will become the current target's value, otherwise it will stay the same + + + NO-GC METHOD: changes the end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new end value + If bigger than 0 applies it as the new tween duration + If TRUE the start value will become the current target's value, otherwise it will stay the same + + + NO-GC METHOD: changes the start and end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new start value + The new end value + If bigger than 0 applies it as the new tween duration + + + + Struct that stores two colors (used for LineRenderer tweens) + + + + + Used for tween callbacks + + + + + Used for tween callbacks + + + + + Used for custom and animationCurve-based ease functions. Must return a value between 0 and 1. + + + + + Straight Quaternion plugin. Instead of using Vector3 values accepts Quaternion values directly. + Beware: doesn't work with LoopType.Incremental (neither directly nor if inside a LoopType.Incremental Sequence). + To use it, call DOTween.To with the plugin parameter overload, passing it PureQuaternionPlugin.Plug() as first parameter + (do not use any of the other public PureQuaternionPlugin methods): + DOTween.To(PureQuaternionPlugin.Plug(), ()=> myQuaternionProperty, x=> myQuaternionProperty = x, myQuaternionEndValue, duration); + + + + + Plug this plugin inside a DOTween.To call. + Example: + DOTween.To(PureQuaternionPlugin.Plug(), ()=> myQuaternionProperty, x=> myQuaternionProperty = x, myQuaternionEndValue, duration); + + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + + Extra non-tweening-related curve methods + + + + + Cubic bezier curve methods + + + + + Calculates a point along the given Cubic Bezier segment-curve. + + Segment start point + Start point's control point/handle + Segment end point + End point's control point/handle + 0-1 percentage along which to retrieve point + + + + Returns an array containing a series of points along the given Cubic Bezier segment-curve. + + Start point + Start point's control point/handle + End point + End point's control point/handle + Cloud resolution (min: 2) + + + + Calculates a series of points along the given Cubic Bezier segment-curve and adds them to the given list. + + Start point + Start point's control point/handle + End point + End point's control point/handle + Cloud resolution (min: 2) + + + + Main DOTween class. Contains static methods to create and control tweens in a generic way + + + + DOTween's version + + + If TRUE (default) makes tweens slightly slower but safer, automatically taking care of a series of things + (like targets becoming null while a tween is playing). + Default: TRUE + + + Log type when safe mode reports capturing an error and preventing it + + + Behaviour in case a tween nested inside a Sequence fails (and is caught by safe mode). + Default: NestedTweenFailureBehaviour.TryToPreserveSequence + + + If TRUE you will get a DOTween report when exiting play mode (only in the Editor). + Useful to know how many max Tweeners and Sequences you reached and optimize your final project accordingly. + Beware, this will slightly slow down your tweens while inside Unity Editor. + Default: FALSE + + + Global DOTween global timeScale (default: 1). + The final timeScale of a non-timeScaleIndependent tween is: + Unity's Time.timeScale * DOTween.timeScale * tween.timeScale + while the final timeScale of a timeScaleIndependent tween is: + DOTween.unscaledTimeScale * DOTween.timeScale * tween.timeScale + + + DOTween timeScale applied only to timeScaleIndependent tweens (default: 1). + The final timeScale of a timeScaleIndependent tween is: + DOTween.unscaledTimeScale * DOTween.timeScale * tween.timeScale + + + If TRUE, DOTween will use Time.smoothDeltaTime instead of Time.deltaTime for UpdateType.Normal and UpdateType.Late tweens + (unless they're set as timeScaleIndependent, in which case a value between the last timestep + and will be used instead). + Setting this to TRUE will lead to smoother animations. + Default: FALSE + + + If is TRUE, this indicates the max timeStep that an independent update call can last. + Setting this to TRUE will lead to smoother animations. + Default: FALSE + + + DOTween's log behaviour. + Default: LogBehaviour.ErrorsOnly + + + Used to intercept DOTween's logs. If this method isn't NULL, DOTween will call it before writing a log via Unity's own Debug log methods. + Return TRUE if you want DOTween to proceed with the log, FALSE otherwise. + This method must return a bool and accept two parameters: + - LogType: the type of Unity log that DOTween is trying to log + - object: the log message that DOTween wants to log + + + If TRUE draws path gizmos in Unity Editor (if the gizmos button is active). + Deactivate this if you want to avoid gizmos overhead while in Unity Editor + + + If TRUE activates various debug options + + + Stores the target id so it can be used to give more info in case of safeMode error capturing. + Only active if both debugMode and useSafeMode are TRUE + + + Default updateType for new tweens. + Default: UpdateType.Normal + + + Sets whether Unity's timeScale should be taken into account by default or not. + Default: false + + + Default autoPlay behaviour for new tweens. + Default: AutoPlay.All + + + Default autoKillOnComplete behaviour for new tweens. + Default: TRUE + + + Default loopType applied to all new tweens. + Default: LoopType.Restart + + + If TRUE all newly created tweens are set as recyclable, otherwise not. + Default: FALSE + + + Default ease applied to all new Tweeners (not to Sequences which always have Ease.Linear as default). + Default: Ease.InOutQuad + + + Default overshoot/amplitude used for eases + Default: 1.70158f + + + Default period used for eases + Default: 0 + + + Used internally. Assigned/removed by DOTweenComponent.Create/DestroyInstance + + + + Must be called once, before the first ever DOTween call/reference, + otherwise it will be called automatically and will use default options. + Calling it a second time won't have any effect. + You can chain SetCapacity to this method, to directly set the max starting size of Tweeners and Sequences: + DOTween.Init(false, false, LogBehaviour.Default).SetCapacity(100, 20); + + If TRUE all new tweens will be set for recycling, meaning that when killed, + instead of being destroyed, they will be put in a pool and reused instead of creating new tweens. This option allows you to avoid + GC allocations by reusing tweens, but you will have to take care of tween references, since they might result active + even if they were killed (since they might have been respawned and are now being used for other tweens). + If you want to automatically set your tween references to NULL when a tween is killed + you can use the OnKill callback like this: + .OnKill(()=> myTweenReference = null) + You can change this setting at any time by changing the static property, + or you can set the recycling behaviour for each tween separately, using: + SetRecyclable(bool recyclable) + Default: FALSE + If TRUE makes tweens slightly slower but safer, automatically taking care of a series of things + (like targets becoming null while a tween is playing). + You can change this setting at any time by changing the static property. + Default: FALSE + Type of logging to use. + You can change this setting at any time by changing the static property. + Default: ErrorsOnly + + + + Directly sets the current max capacity of Tweeners and Sequences + (meaning how many Tweeners and Sequences can be running at the same time), + so that DOTween doesn't need to automatically increase them in case the max is reached + (which might lead to hiccups when that happens). + Sequences capacity must be less or equal to Tweeners capacity + (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's). + Beware: use this method only when there are no tweens running. + + Max Tweeners capacity. + Default: 200 + Max Sequences capacity. + Default: 50 + + + + Kills all tweens, clears all cached tween pools and plugins and resets the max Tweeners/Sequences capacities to the default values. + + If TRUE also destroys DOTween's gameObject and resets its initializiation, default settings and everything else + (so that next time you use it it will need to be re-initialized) + + + + Clears all cached tween pools. + + + + + Checks all active tweens to find and remove eventually invalid ones (usually because their targets became NULL) + and returns the total number of invalid tweens found and removed. + IMPORTANT: this will cause an error on UWP platform, so don't use it there + BEWARE: this is a slightly expensive operation so use it with care + + + + + Updates all tweens that are set to . + + Manual deltaTime + Unscaled delta time (used with tweens set as timeScaleIndependent) + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using a custom plugin + The plugin to use. Each custom plugin implements a static Get() method + you'll need to call to assign the correct plugin in the correct way, like this: + CustomPlugin.Get() + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens only one axis of a Vector3 to the given value using default plugins. + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + The axis to tween + + + Tweens only the alpha of a Color to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a virtual property from the given start to the given end value + and implements a setter that allows to use that value with an external method or a lambda + Example: + To(MyMethod, 0, 12, 0.5f); + Where MyMethod is a function that accepts a float parameter (which will be the result of the virtual tween) + The action to perform with the tweened value + The value to start from + The end value to reach + The duration of the virtual tween + + + + Punches a Vector3 towards the given direction and then back to the starting one + as if it was connected to the starting position via an elastic. + This tween type generates some GC allocations at startup + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The direction and strength of the punch + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards. + 1 creates a full oscillation between the direction and the opposite decaying direction, + while 0 oscillates only between the starting position and the decaying direction + + + Shakes a Vector3 with the given values. + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction and behave like a random punch. + If TRUE only shakes on the X Y axis (looks better with things like cameras). + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Vector3 with the given values. + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction and behave like a random punch. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Tweens a property or field to the given values using default plugins. + Ease is applied between each segment and not as a whole. + This tween type generates some GC allocations at startup + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end values to reach for each segment. This array must have the same length as durations + The duration of each segment. This array must have the same length as endValues + + + + Returns a new to be used for tween groups. + Mind that Sequences don't have a target applied automatically like Tweener creation shortcuts, + so if you want to be able to kill this Sequence when calling DOTween.Kill(target) you'll have to add + the target manually; you can do that directly by using the overload instead of this one + + + + + Returns a new to be used for tween groups, and allows to set a target + (because Sequences don't have their target set automatically like Tweener creation shortcuts). + That way killing/controlling tweens by target will apply to this Sequence too. + + The target of the Sequence. Relevant only for static target-based methods like DOTween.Kill(target), + useless otherwise + + + Completes all tweens and returns the number of actual tweens completed + (meaning tweens that don't have infinite loops and were not already complete) + For Sequences only: if TRUE also internal Sequence callbacks will be fired, + otherwise they will be ignored + + + Completes all tweens with the given ID or target and returns the number of actual tweens completed + (meaning the tweens that don't have infinite loops and were not already complete) + For Sequences only: if TRUE internal Sequence callbacks will be fired, + otherwise they will be ignored + + + Flips all tweens (changing their direction to forward if it was backwards and viceversa), + then returns the number of actual tweens flipped + + + Flips the tweens with the given ID or target (changing their direction to forward if it was backwards and viceversa), + then returns the number of actual tweens flipped + + + Sends all tweens to the given position (calculating also eventual loop cycles) and returns the actual tweens involved + + + Sends all tweens with the given ID or target to the given position (calculating also eventual loop cycles) + and returns the actual tweens involved + + + Kills all tweens and returns the number of actual tweens killed + If TRUE completes the tweens before killing them + + + Kills all tweens and returns the number of actual tweens killed + If TRUE completes the tweens before killing them + Eventual IDs or targets to exclude from the killing + + + Kills all tweens with the given ID or target and returns the number of actual tweens killed + If TRUE completes the tweens before killing them + + + Kills all tweens with the given target and the given ID, and returns the number of actual tweens killed + If TRUE completes the tweens before killing them + + + Pauses all tweens and returns the number of actual tweens paused + + + Pauses all tweens with the given ID or target and returns the number of actual tweens paused + (meaning the tweens that were actually playing and have been paused) + + + Plays all tweens and returns the number of actual tweens played + (meaning tweens that were not already playing or complete) + + + Plays all tweens with the given ID or target and returns the number of actual tweens played + (meaning the tweens that were not already playing or complete) + + + Plays all tweens with the given target and the given ID, and returns the number of actual tweens played + (meaning the tweens that were not already playing or complete) + + + Plays backwards all tweens and returns the number of actual tweens played + (meaning tweens that were not already started, playing backwards or rewinded) + + + Plays backwards all tweens with the given ID or target and returns the number of actual tweens played + (meaning the tweens that were not already started, playing backwards or rewinded) + + + Plays backwards all tweens with the given target and ID and returns the number of actual tweens played + (meaning the tweens that were not already started, playing backwards or rewinded) + + + Plays forward all tweens and returns the number of actual tweens played + (meaning tweens that were not already playing forward or complete) + + + Plays forward all tweens with the given ID or target and returns the number of actual tweens played + (meaning the tweens that were not already playing forward or complete) + + + Plays forward all tweens with the given target and ID and returns the number of actual tweens played + (meaning the tweens that were not already started, playing backwards or rewinded) + + + Restarts all tweens, then returns the number of actual tweens restarted + + + Restarts all tweens with the given ID or target, then returns the number of actual tweens restarted + If TRUE includes the eventual tweens delays, otherwise skips them + If >= 0 changes the startup delay of all involved tweens to this value, otherwise doesn't touch it + + + Restarts all tweens with the given target and the given ID, and returns the number of actual tweens played + (meaning the tweens that were not already playing or complete) + If TRUE includes the eventual tweens delays, otherwise skips them + If >= 0 changes the startup delay of all involved tweens to this value, otherwise doesn't touch it + + + Rewinds and pauses all tweens, then returns the number of actual tweens rewinded + (meaning tweens that were not already rewinded) + + + Rewinds and pauses all tweens with the given ID or target, then returns the number of actual tweens rewinded + (meaning the tweens that were not already rewinded) + + + Smoothly rewinds all tweens (delays excluded), then returns the number of actual tweens rewinding/rewinded + (meaning tweens that were not already rewinded). + A "smooth rewind" animates the tween to its start position, + skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent. + Note that a tween that was smoothly rewinded will have its play direction flipped + + + Smoothly rewinds all tweens (delays excluded) with the given ID or target, then returns the number of actual tweens rewinding/rewinded + (meaning the tweens that were not already rewinded). + A "smooth rewind" animates the tween to its start position, + skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent. + Note that a tween that was smoothly rewinded will have its play direction flipped + + + Toggles the play state of all tweens and returns the number of actual tweens toggled + (meaning tweens that could be played or paused, depending on the toggle state) + + + Toggles the play state of all tweens with the given ID or target and returns the number of actual tweens toggled + (meaning the tweens that could be played or paused, depending on the toggle state) + + + + Returns TRUE if a tween with the given ID or target is active. + You can also use this to know if a shortcut tween is active for a given target. + Example: + transform.DOMoveX(45, 1); // transform is automatically added as the tween target + DOTween.IsTweening(transform); // Returns true + + The target or ID to look for + If FALSE (default) returns TRUE as long as a tween for the given target/ID is active, + otherwise also requires it to be playing + + + + Returns the total number of active tweens (so both Tweeners and Sequences). + A tween is considered active if it wasn't killed, regardless if it's playing or paused + + + + + Returns the total number of active Tweeners. + A Tweener is considered active if it wasn't killed, regardless if it's playing or paused + + + + + Returns the total number of active Sequences. + A Sequence is considered active if it wasn't killed, regardless if it's playing or paused + + + + + Returns the total number of active and playing tweens. + A tween is considered as playing even if its delay is actually playing + + + + + Returns a the total number of active tweens with the given id. + + If TRUE returns only the tweens with the given ID that are currently playing + + + + Returns a list of all active tweens in a playing state. + Returns NULL if there are no active playing tweens. + Beware: each time you call this method a new list is generated, so use it for debug only + + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) + + + + Returns a list of all active tweens in a paused state. + Returns NULL if there are no active paused tweens. + Beware: each time you call this method a new list is generated, so use it for debug only + + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) + + + + Returns a list of all active tweens with the given id. + Returns NULL if there are no active tweens with the given id. + Beware: each time you call this method a new list is generated + + If TRUE returns only the tweens with the given ID that are currently playing + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) + + + + Returns a list of all active tweens with the given target. + Returns NULL if there are no active tweens with the given target. + Beware: each time you call this method a new list is generated + If TRUE returns only the tweens with the given target that are currently playing + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) + + + + + Creates virtual tweens that can be used to change other elements via their OnUpdate calls + + + + + Tweens a virtual float. + You can add regular settings to the generated tween, + but do not use OnUpdate or you will overwrite the onVirtualUpdate parameter + + The value to start from + The value to tween to + The duration of the tween + A callback which must accept a parameter of type float, called at each update + + + + Tweens a virtual int. + You can add regular settings to the generated tween, + but do not use OnUpdate or you will overwrite the onVirtualUpdate parameter + + The value to start from + The value to tween to + The duration of the tween + A callback which must accept a parameter of type int, called at each update + + + + Tweens a virtual Vector2. + You can add regular settings to the generated tween, + but do not use OnUpdate or you will overwrite the onVirtualUpdate parameter + + The value to start from + The value to tween to + The duration of the tween + A callback which must accept a parameter of type Vector3, called at each update + + + + Tweens a virtual Vector3. + You can add regular settings to the generated tween, + but do not use OnUpdate or you will overwrite the onVirtualUpdate parameter + + The value to start from + The value to tween to + The duration of the tween + A callback which must accept a parameter of type Vector3, called at each update + + + + Tweens a virtual Color. + You can add regular settings to the generated tween, + but do not use OnUpdate or you will overwrite the onVirtualUpdate parameter + + The value to start from + The value to tween to + The duration of the tween + A callback which must accept a parameter of type Color, called at each update + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + Eventual overshoot to use with Back ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + Eventual amplitude to use with Elastic easeType + Eventual period to use with Elastic easeType + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The AnimationCurve to use for ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + Eventual overshoot to use with Back ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + Eventual amplitude to use with Elastic easeType + Eventual period to use with Elastic easeType + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The AnimationCurve to use for ease + + + Fires the given callback after the given time. + Callback delay + Callback to fire when the delay has expired + If TRUE (default) ignores Unity's timeScale + + + + Don't assign this! It's assigned automatically when creating 0 duration tweens + + + + + Don't assign this! It's assigned automatically when setting the ease to an AnimationCurve or to a custom ease function + + + + + Allows to wrap ease method in special ways, adding extra features + + + + + Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS + + FPS at which the tween should be played + Ease type + + + + Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS + + FPS at which the tween should be played + AnimationCurve to use for the ease + + + + Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS + + FPS at which the tween should be played + Custom ease function to use + + + + Used to allow method chaining with DOTween.Init + + + + + Directly sets the current max capacity of Tweeners and Sequences + (meaning how many Tweeners and Sequences can be running at the same time), + so that DOTween doesn't need to automatically increase them in case the max is reached + (which might lead to hiccups when that happens). + Sequences capacity must be less or equal to Tweeners capacity + (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's). + Beware: use this method only when there are no tweens running. + + Max Tweeners capacity. + Default: 200 + Max Sequences capacity. + Default: 50 + + + + Behaviour that can be assigned when chaining a SetLink to a tween + + + + Pauses the tween when the link target is disabled + + + Pauses the tween when the link target is disabled, plays it when it's enabled + + + Pauses the tween when the link target is disabled, restarts it when it's enabled + + + Plays the tween when the link target is enabled + + + Restarts the tween when the link target is enabled + + + Kills the tween when the link target is disabled + + + Kills the tween when the link target is destroyed (becomes NULL). This is always active even if another behaviour is chosen + + + Completes the tween when the link target is disabled + + + Completes and kills the tween when the link target is disabled + + + Rewinds the tween (delay excluded) when the link target is disabled + + + Rewinds and kills the tween when the link target is disabled + + + + Path mode (used to determine correct LookAt orientation) + + + + Ignores the path mode (and thus LookAt behaviour) + + + Regular 3D path + + + 2D top-down path + + + 2D side-scroller path + + + + Type of path to use with DOPath tweens + + + + Linear, composed of straight segments between each waypoint + + + Curved path (which uses Catmull-Rom curves) + + + EXPERIMENTAL: Curved path (which uses Cubic Bezier curves, where each point requires two extra control points) + + + + Tweens a Vector2 along a circle. + EndValue represents the center of the circle, start and end value degrees are inside options + ChangeValue x is changeValue°, y is unused + + + + + Path control point + + + + + Path waypoints (modified by PathPlugin when setting relative end/change value or by CubicBezierDecoder) and by DOTweenPathInspector + + + + + Minimum input points necessary to create the path (doesn't correspond to actual waypoints required) + + + + + Gets the point on the path at the given percentage (0 to 1) + + The percentage (0 to 1) at which to get the point + If TRUE constant speed is taken into account, otherwise not + + + + Base interface for all tween plugins options + + + + Resets the plugin + + + + This plugin generates some GC allocations at startup + + + + + Path plugin works exclusively with Transforms + + + + + Rotation mode used with DORotate methods + + + + + Fastest way that never rotates beyond 360° + + + + + Fastest way that rotates beyond 360° + + + + + Adds the given rotation to the transform using world axis and an advanced precision mode + (like when using transform.Rotate(Space.World)). + In this mode the end value is is always considered relative + + + + + Adds the given rotation to the transform's local axis + (like when rotating an object with the "local" switch enabled in Unity's editor or using transform.Rotate(Space.Self)). + In this mode the end value is is always considered relative + + + + + Type of scramble to apply to string tweens + + + + + No scrambling of characters + + + + + A-Z + a-z + 0-9 characters + + + + + A-Z characters + + + + + a-z characters + + + + + 0-9 characters + + + + + Custom characters + + + + + Type of randomness to apply to a shake tween + + + + Default, full randomness + + + Creates a more balanced randomness that looks more harmonic + + + + Methods that extend Tween objects and allow to control or get data from them + + + + Completes the tween + + + Completes the tween + For Sequences only: if TRUE also internal Sequence callbacks will be fired, + otherwise they will be ignored + + + Optional: indicates that the tween creation has ended, to be used (optionally) as the last element of tween chaining creation.
+ This method won't do anything except in case of 0-duration tweens, + where it will complete them immediately instead of waiting for the next internal update routine + (unless they're nested in a Sequence, in which case the Sequence will still be the one in control and this method will be ignored)
+
+ + Flips the direction of this tween (backwards if it was going forward or viceversa) + + + Forces the tween to initialize its settings immediately + + + Send the tween to the given position in time + Time position to reach + (if higher than the whole tween duration the tween will simply reach its end) + If TRUE will play the tween after reaching the given position, otherwise it will pause it + + + Send the tween to the given position in time while also executing any callback between the previous time position and the new one + Time position to reach + (if higher than the whole tween duration the tween will simply reach its end) + If TRUE will play the tween after reaching the given position, otherwise it will pause it + + + Kills the tween + If TRUE completes the tween before killing it + + + + Forces this tween to update manually, regardless of the set via SetUpdate. + Note that the tween will still be subject to normal tween rules, so if for example it's paused this method will do nothing. + Also note that if you only want to update this tween instance manually you'll have to set it to anyway, + so that it's not updated automatically. + + Manual deltaTime + Unscaled delta time (used with tweens set as timeScaleIndependent) + + + Pauses the tween + + + Plays the tween + + + Sets the tween in a backwards direction and plays it + + + Sets the tween in a forward direction and plays it + + + Restarts the tween from the beginning + Ignored in case of Sequences. If TRUE includes the eventual tween delay, otherwise skips it + Ignored in case of Sequences. If >= 0 changes the startup delay to this value, otherwise doesn't touch it + + + Rewinds and pauses the tween + Ignored in case of Sequences. If TRUE includes the eventual tween delay, otherwise skips it + + + Smoothly rewinds the tween (delays excluded). + A "smooth rewind" animates the tween to its start position, + skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent. + If called on a tween who is still waiting for its delay to happen, it will simply set the delay to 0 and pause the tween. + Note that a tween that was smoothly rewinded will have its play direction flipped + + + Plays the tween if it was paused, pauses it if it was playing + + + Send a path tween to the given waypoint. + Has no effect if this is not a path tween. + BEWARE, this is a special utility method: + it works only with Linear eases. Also, the lookAt direction might be wrong after calling this and might need to be set manually + (because it relies on a smooth path movement and doesn't work well with jumps that encompass dramatic direction changes) + Waypoint index to reach + (if higher than the max waypoint index the tween will simply go to the last one) + If TRUE will play the tween after reaching the given waypoint, otherwise it will pause it + + + + Creates a yield instruction that waits until the tween is killed or complete. + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForCompletion(); + + + + + Creates a yield instruction that waits until the tween is killed or rewinded. + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForRewind(); + + + + + Creates a yield instruction that waits until the tween is killed. + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForKill(); + + + + + Creates a yield instruction that waits until the tween is killed or has gone through the given amount of loops. + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForElapsedLoops(2); + + Elapsed loops to wait for + + + + Creates a yield instruction that waits until the tween is killed or has reached the given position (loops included, delays excluded). + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForPosition(2.5f); + + Position (loops included, delays excluded) to wait for + + + + Creates a yield instruction that waits until the tween is killed or started + (meaning when the tween is set in a playing state the first time, after any eventual delay). + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForStart(); + + + + Returns the total number of loops completed by this tween + + + Returns the eventual delay set for this tween + + + Returns the eventual elapsed delay set for this tween + + + Returns the duration of this tween (delays excluded). + NOTE: when using settings like SpeedBased, the duration will be recalculated when the tween starts + If TRUE returns the full duration loops included, + otherwise the duration of a single loop cycle + + + Returns the elapsed time for this tween (delays exluded) + If TRUE returns the elapsed time since startup loops included, + otherwise the elapsed time within the current loop cycle + + + Returns the elapsed percentage (0 to 1) of this tween (delays exluded) + If TRUE returns the elapsed percentage since startup loops included, + otherwise the elapsed percentage within the current loop cycle + + + Returns the elapsed percentage (0 to 1) of this tween (delays exluded), + based on a single loop, and calculating eventual backwards Yoyo loops as 1 to 0 instead of 0 to 1 + + + Returns FALSE if this tween has been killed or is NULL, TRUE otherwise. + BEWARE: if this tween is recyclable it might have been spawned again for another use and thus return TRUE anyway. + When working with recyclable tweens you should take care to know when a tween has been killed and manually set your references to NULL. + If you want to be sure your references are set to NULL when a tween is killed you can use the OnKill callback like this: + .OnKill(()=> myTweenReference = null) + + + Returns TRUE if this tween was reversed and is set to go backwards + + + NOTE: To check if a tween was simply set to go backwards see . + Returns TRUE if this tween is going backwards for any of these reasons: + - The tween was reversed and is going backwards on a straight loop + - The tween was reversed and is going backwards on an odd Yoyo loop + - The tween is going forward but on an even Yoyo loop + IMPORTANT: if used inside a tween's callback, this will return a result concerning the exact frame when it's asked, + so for example in a callback at the end of a Yoyo loop step this method will never return FALSE + because the frame will never end exactly there and the tween will already be going backwards when the callback is fired + + + Returns TRUE if the tween is complete + (silently fails and returns FALSE if the tween has been killed) + + + Returns TRUE if this tween has been initialized + + + Returns TRUE if this tween is playing + + + Returns the total number of loops set for this tween + (returns -1 if the loops are infinite) + + + + Returns a point on a path based on the given path percentage. + Returns Vector3.zero if this is not a path tween, if the tween is invalid, or if the path is not yet initialized. + A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature). + You can force a path to be initialized by calling myTween.ForceInit(). + + Percentage of the path (0 to 1) on which to get the point + + + + Returns an array of points that can be used to draw the path. + Note that this method generates allocations, because it creates a new array. + Returns NULL if this is not a path tween, if the tween is invalid, or if the path is not yet initialized. + A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature). + You can force a path to be initialized by calling myTween.ForceInit(). + + How many points to create for each path segment (waypoint to waypoint). + Only used in case of non-Linear paths + + + + Returns the length of a path. + Returns -1 if this is not a path tween, if the tween is invalid, or if the path is not yet initialized. + A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature). + You can force a path to be initialized by calling myTween.ForceInit(). + + + + + Types of loop + + + + Each loop cycle restarts from the beginning + + + The tween moves forward and backwards at alternate cycles + + + Continuously increments the tween at the end of each loop cycle (A to B, B to B+(A-B), and so on), thus always moving "onward". + In case of String tweens works only if the tween is set as relative + + + + Controls other tweens as a group + + + + + Methods that extend known Unity objects and allow to directly create and control tweens from their instances + + + + Tweens a Camera's aspect to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's backgroundColor to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's farClipPlane to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's fieldOfView to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's nearClipPlane to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's orthographicSize to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's pixelRect to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's rect to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Shakes a Camera's localPosition along its relative X Y axes with the given values. + Also stores the camera as the tween's target so it can be used for filtered operations + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Camera's localPosition along its relative X Y axes with the given values. + Also stores the camera as the tween's target so it can be used for filtered operations + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Camera's localRotation. + Also stores the camera as the tween's target so it can be used for filtered operations + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Camera's localRotation. + Also stores the camera as the tween's target so it can be used for filtered operations + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Tweens a Light's color to the given value. + Also stores the light as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Light's intensity to the given value. + Also stores the light as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Light's shadowStrength to the given value. + Also stores the light as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a LineRenderer's color to the given value. + Also stores the LineRenderer as the tween's target so it can be used for filtered operations. + Note that this method requires to also insert the start colors for the tween, + since LineRenderers have no way to get them. + The start value to tween from + The end value to reachThe duration of the tween + + + Tweens a Material's color to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Material's named color property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween (like _Tint or _SpecColor) + The duration of the tween + + + Tweens a Material's named color property with the given ID to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + + + Tweens a Material's alpha color to the given value + (will have no effect unless your material supports transparency). + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Material's alpha color to the given value + (will have no effect unless your material supports transparency). + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween (like _Tint or _SpecColor) + The duration of the tween + + + Tweens a Material's alpha color with the given ID to the given value + (will have no effect unless your material supports transparency). + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + + + Tweens a Material's named float property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween + The duration of the tween + + + Tweens a Material's named float property with the given ID to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + + + Tweens a Material's texture offset to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The duration of the tween + + + Tweens a Material's named texture offset property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween + The duration of the tween + + + Tweens a Material's texture scale to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The duration of the tween + + + Tweens a Material's named texture scale property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween + The duration of the tween + + + Tweens a Material's named Vector property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween + The duration of the tween + + + Tweens a Material's named Vector property with the given ID to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + + + Tweens a TrailRenderer's startWidth/endWidth to the given value. + Also stores the TrailRenderer as the tween's target so it can be used for filtered operations + The end startWidth to reachThe end endWidth to reach + The duration of the tween + + + Tweens a TrailRenderer's time to the given value. + Also stores the TrailRenderer as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's position to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's X position to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's Y position to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's Z position to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's localPosition to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's X localPosition to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's Y localPosition to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's Z localPosition to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's rotation to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + Rotation mode + + + Tweens a Transform's rotation to the given value using pure quaternion values. + Also stores the transform as the tween's target so it can be used for filtered operations. + PLEASE NOTE: DORotate, which takes Vector3 values, is the preferred rotation method. + This method was implemented for very special cases, and doesn't support LoopType.Incremental loops + (neither for itself nor if placed inside a LoopType.Incremental Sequence) + + The end value to reachThe duration of the tween + + + Tweens a Transform's localRotation to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + Rotation mode + + + Tweens a Transform's rotation to the given value using pure quaternion values. + Also stores the transform as the tween's target so it can be used for filtered operations. + PLEASE NOTE: DOLocalRotate, which takes Vector3 values, is the preferred rotation method. + This method was implemented for very special cases, and doesn't support LoopType.Incremental loops + (neither for itself nor if placed inside a LoopType.Incremental Sequence) + + The end value to reachThe duration of the tween + + + Tweens a Transform's localScale to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's localScale uniformly to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's X localScale to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's Y localScale to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's Z localScale to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's rotation so that it will look towards the given world position. + Also stores the transform as the tween's target so it can be used for filtered operations + The position to look atThe duration of the tween + Eventual axis constraint for the rotation + The vector that defines in which direction up is (default: Vector3.up) + + + EXPERIMENTAL Tweens a Transform's rotation so that it will look towards the given world position, + while also updating the lookAt position every frame + (contrary to which calculates the lookAt rotation only once, when the tween starts). + Also stores the transform as the tween's target so it can be used for filtered operations + The position to look atThe duration of the tween + Eventual axis constraint for the rotation + The vector that defines in which direction up is (default: Vector3.up) + + + Punches a Transform's localPosition towards the given direction and then back to the starting one + as if it was connected to the starting position via an elastic. + The direction and strength of the punch (added to the Transform's current position) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards. + 1 creates a full oscillation between the punch direction and the opposite direction, + while 0 oscillates only between the punch and the start position + If TRUE the tween will smoothly snap all values to integers + + + Punches a Transform's localScale towards the given size and then back to the starting one + as if it was connected to the starting scale via an elastic. + The punch strength (added to the Transform's current scale) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting size when bouncing backwards. + 1 creates a full oscillation between the punch scale and the opposite scale, + while 0 oscillates only between the punch scale and the start scale + + + Punches a Transform's localRotation towards the given size and then back to the starting one + as if it was connected to the starting rotation via an elastic. + The punch strength (added to the Transform's current rotation) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting rotation when bouncing backwards. + 1 creates a full oscillation between the punch rotation and the opposite rotation, + while 0 oscillates only between the punch and the start rotation + + + Shakes a Transform's localPosition with the given values. + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the tween will smoothly snap all values to integers + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Transform's localPosition with the given values. + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the tween will smoothly snap all values to integers + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Transform's localRotation. + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Transform's localRotation. + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Transform's localScale. + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Transform's localScale. + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Tweens a Transform's position to the given value, while also applying a jump effect along the Y axis. + Returns a Sequence instead of a Tweener. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reach + Power of the jump (the max height of the jump is represented by this plus the final Y offset) + Total number of jumps + The duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's localPosition to the given value, while also applying a jump effect along the Y axis. + Returns a Sequence instead of a Tweener. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reach + Power of the jump (the max height of the jump is represented by this plus the final Y offset) + Total number of jumps + The duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's position through the given path waypoints, using the chosen path algorithm. + Also stores the transform as the tween's target so it can be used for filtered operations + The waypoints to go through + The duration of the tween + The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + The path mode: 3D, side-scroller 2D, top-down 2D + The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive. + Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + The color of the path (shown when gizmos are active in the Play panel and the tween is running) + + + Tweens a Transform's localPosition through the given path waypoints, using the chosen path algorithm. + Also stores the transform as the tween's target so it can be used for filtered operations + The waypoint to go through + The duration of the tween + The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + The path mode: 3D, side-scroller 2D, top-down 2D + The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive. + Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + The color of the path (shown when gizmos are active in the Play panel and the tween is running) + + + IMPORTANT: Unless you really know what you're doing, you should use the overload that accepts a Vector3 array instead. + Tweens a Transform's position via the given path. + Also stores the transform as the tween's target so it can be used for filtered operations + The path to use + The duration of the tween + The path mode: 3D, side-scroller 2D, top-down 2D + + + IMPORTANT: Unless you really know what you're doing, you should use the overload that accepts a Vector3 array instead. + Tweens a Transform's localPosition via the given path. + Also stores the transform as the tween's target so it can be used for filtered operations + The path to use + The duration of the tween + The path mode: 3D, side-scroller 2D, top-down 2D + + + Tweens a Tween's timeScale to the given value. + Also stores the Tween as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Light's color to the given value, + in a way that allows other DOBlendableColor tweens to work together on the same target, + instead than fight each other as multiple DOColor would do. + Also stores the Light as the tween's target so it can be used for filtered operations + The value to tween toThe duration of the tween + + + Tweens a Material's color to the given value, + in a way that allows other DOBlendableColor tweens to work together on the same target, + instead than fight each other as multiple DOColor would do. + Also stores the Material as the tween's target so it can be used for filtered operations + The value to tween toThe duration of the tween + + + Tweens a Material's named color property to the given value, + in a way that allows other DOBlendableColor tweens to work together on the same target, + instead than fight each other as multiple DOColor would do. + Also stores the Material as the tween's target so it can be used for filtered operations + The value to tween to + The name of the material property to tween (like _Tint or _SpecColor) + The duration of the tween + + + Tweens a Material's named color property with the given ID to the given value, + in a way that allows other DOBlendableColor tweens to work together on the same target, + instead than fight each other as multiple DOColor would do. + Also stores the Material as the tween's target so it can be used for filtered operations + The value to tween to + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + + + Tweens a Transform's position BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableMove tweens to work together on the same target, + instead than fight each other as multiple DOMove would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's localPosition BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableMove tweens to work together on the same target, + instead than fight each other as multiple DOMove would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + EXPERIMENTAL METHOD - Tweens a Transform's rotation BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableRotate tweens to work together on the same target, + instead than fight each other as multiple DORotate would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + Rotation mode + + + EXPERIMENTAL METHOD - Tweens a Transform's lcoalRotation BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableRotate tweens to work together on the same target, + instead than fight each other as multiple DORotate would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + Rotation mode + + + Punches a Transform's localRotation BY the given value and then back to the starting one + as if it was connected to the starting rotation via an elastic. Does it in a way that allows other + DOBlendableRotate tweens to work together on the same target + The punch strength (added to the Transform's current rotation) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting rotation when bouncing backwards. + 1 creates a full oscillation between the punch rotation and the opposite rotation, + while 0 oscillates only between the punch and the start rotation + + + Tweens a Transform's localScale BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableScale tweens to work together on the same target, + instead than fight each other as multiple DOScale would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + + + + Completes all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens completed + (meaning the tweens that don't have infinite loops and were not already complete) + + For Sequences only: if TRUE also internal Sequence callbacks will be fired, + otherwise they will be ignored + + + + Completes all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens completed + (meaning the tweens that don't have infinite loops and were not already complete) + + For Sequences only: if TRUE also internal Sequence callbacks will be fired, + otherwise they will be ignored + + + + Kills all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens killed. + + If TRUE completes the tween before killing it + + + + Kills all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens killed. + + If TRUE completes the tween before killing it + + + + Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens flipped. + + + + + Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens flipped. + + + + + Sends to the given position all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens involved. + + Time position to reach + (if higher than the whole tween duration the tween will simply reach its end) + If TRUE will play the tween after reaching the given position, otherwise it will pause it + + + + Sends to the given position all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens involved. + + Time position to reach + (if higher than the whole tween duration the tween will simply reach its end) + If TRUE will play the tween after reaching the given position, otherwise it will pause it + + + + Pauses all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens paused. + + + + + Pauses all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens paused. + + + + + Plays all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays backwards all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays backwards all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays forward all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays forward all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Restarts all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens restarted. + + + + + Restarts all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens restarted. + + + + + Rewinds all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens rewinded. + + + + + Rewinds all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens rewinded. + + + + + Smoothly rewinds all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens rewinded. + + + + + Smoothly rewinds all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens rewinded. + + + + + Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens involved. + + + + + Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens involved. + + + + + This class serves only as a utility class to store tween settings to apply on multiple tweens. + It is in no way needed otherwise, since you can directly apply tween settings to a tween via chaining + + + + A variable you can eventually Clear and reuse when needed, + to avoid instantiating TweenParams objects + + + Creates a new TweenParams object, which you can use to store tween settings + to pass to multiple tweens via myTween.SetAs(myTweenParms) + + + Clears and resets this TweenParams instance using default values, + so it can be reused without instantiating another one + + + Sets the autoKill behaviour of the tween. + Has no effect if the tween has already started + If TRUE the tween will be automatically killed when complete + + + Sets an ID for the tween, which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets an ID for the tween, which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets an ID for the tween, which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets the target for the tween, which can then be used as a filter with DOTween's static methods. + IMPORTANT: use it with caution. If you just want to set an ID for the tween use SetId instead. + When using shorcuts the shortcut target is already assigned as the tween's target, + so using this method will overwrite it and prevent shortcut-operations like myTarget.DOPause from working correctly. + The target to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets the looping options for the tween. + Has no effect if the tween has already started + Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence) + Loop behaviour type (default: LoopType.Restart) + + + Sets the ease of the tween. + If applied to Sequences eases the whole sequence animation + Eventual overshoot or amplitude to use with Back or Elastic easeType (default is 1.70158) + Eventual period to use with Elastic easeType (default is 0) + + + Sets the ease of the tween using an AnimationCurve. + If applied to Sequences eases the whole sequence animation + + + Sets the ease of the tween using a custom ease function. + If applied to Sequences eases the whole sequence animation + + + Sets the recycling behaviour for the tween. + If TRUE the tween will be recycled after being killed, otherwise it will be destroyed. + + + Sets the update type to the one defined in DOTween.defaultUpdateType (UpdateType.Normal unless changed) + and lets you choose if it should be independent from Unity's Time.timeScale + If TRUE the tween will ignore Unity's Time.timeScale + + + Sets the type of update (default or independent) for the tween + The type of update (default: UpdateType.Normal) + If TRUE the tween will ignore Unity's Time.timeScale + + + Sets the onStart callback for the tween. + Called the first time the tween is set in a playing state, after any eventual delay + + + Sets the onPlay callback for the tween. + Called when the tween is set in a playing state, after any eventual delay. + Also called each time the tween resumes playing from a paused state + + + Sets the onRewind callback for the tween. + Called when the tween is rewinded, + either by calling Rewind or by reaching the start position while playing backwards. + Rewinding a tween that is already rewinded will not fire this callback + + + Sets the onUpdate callback for the tween. + Called each time the tween updates + + + Sets the onStepComplete callback for the tween. + Called the moment the tween completes one loop cycle, even when going backwards + + + Sets the onComplete callback for the tween. + Called the moment the tween reaches its final forward position, loops included + + + Sets the onKill callback for the tween. + Called the moment the tween is killed + + + Sets the onWaypointChange callback for the tween. + Called when a path tween reaches a new waypoint + + + Sets a delayed startup for the tween. + Has no effect on Sequences or if the tween has already started + + + If isRelative is TRUE sets the tween as relative + (the endValue will be calculated as startValue + endValue instead than being used directly). + Has no effect on Sequences or if the tween has already started + + + If isSpeedBased is TRUE sets the tween as speed based + (the duration will represent the number of units the tween moves x second). + Has no effect on Sequences, nested tweens, or if the tween has already started + + + + Methods that extend Tween objects and allow to set their parameters + + + + Sets the autoKill behaviour of the tween to TRUE. + Has no effect if the tween has already started or if it's added to a Sequence + + + Sets the autoKill behaviour of the tween. + Has no effect if the tween has already started or if it's added to a Sequence + If TRUE the tween will be automatically killed when complete + + + Sets an ID for the tween (), which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets a string ID for the tween (), which can then be used as a filter with DOTween's static methods. + Filtering via string is 2X faster than using an object as an ID (using the alternate obejct overload) + The string ID to assign to this tween. + + + Sets an int ID for the tween (), which can then be used as a filter with DOTween's static methods. + Filtering via int is 4X faster than via object, 2X faster than via string (using the alternate object/string overloads) + The int ID to assign to this tween. + + + Allows to link this tween to a GameObject + so that it will be automatically killed when the GameObject is destroyed. + Has no effect if the tween is added to a Sequence + The link target (unrelated to the target set via SetTarget) + + + Allows to link this tween to a GameObject and assign a behaviour depending on it. + This will also automatically kill the tween when the GameObject is destroyed. + Has no effect if the tween is added to a Sequence + The link target (unrelated to the target set via SetTarget) + The behaviour to use ( is always evaluated even if you choose another one) + + + Sets the target for the tween, which can then be used as a filter with DOTween's static methods. + IMPORTANT: use it with caution. If you just want to set an ID for the tween use SetId instead. + When using shorcuts the shortcut target is already assigned as the tween's target, + so using this method will overwrite it and prevent shortcut-operations like myTarget.DOPause from working correctly. + The target to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets the looping options for the tween. + Has no effect if the tween has already started + Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence) + + + Sets the looping options for the tween. + Has no effect if the tween has already started + Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence) + Loop behaviour type (default: LoopType.Restart) + + + Sets the ease of the tween. + If applied to Sequences eases the whole sequence animation + + + Sets the ease of the tween. + If applied to Sequences eases the whole sequence animation + + Eventual overshoot to use with Back or Flash ease (default is 1.70158 - 1 for Flash). + In case of Flash ease it must be an intenger and sets the total number of flashes that will happen. + Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value. + + + + Sets the ease of the tween. + If applied to Sequences eases the whole sequence animation + Eventual amplitude to use with Elastic easeType or overshoot to use with Flash easeType (default is 1.70158 - 1 for Flash). + In case of Flash ease it must be an integer and sets the total number of flashes that will happen. + Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value. + + Eventual period to use with Elastic or Flash easeType (default is 0). + In case of Flash ease it indicates the power in time of the ease, and must be between -1 and 1. + 0 is balanced, 1 weakens the ease with time, -1 starts the ease weakened and gives it power towards the end. + + + + Sets the ease of the tween using an AnimationCurve. + If applied to Sequences eases the whole sequence animation + + + Sets the ease of the tween using a custom ease function (which must return a value between 0 and 1). + If applied to Sequences eases the whole sequence animation + + + Allows the tween to be recycled after being killed. + + + Sets the recycling behaviour for the tween. + If TRUE the tween will be recycled after being killed, otherwise it will be destroyed. + + + Sets the update type to UpdateType.Normal and lets you choose if it should be independent from Unity's Time.timeScale + If TRUE the tween will ignore Unity's Time.timeScale + + + Sets the type of update for the tween + The type of update (defalt: UpdateType.Normal) + + + Sets the type of update for the tween and lets you choose if it should be independent from Unity's Time.timeScale + The type of update + If TRUE the tween will ignore Unity's Time.timeScale + + + EXPERIMENTAL: inverts this tween, so that it will play from the end to the beginning + (playing it backwards will actually play it from the beginning to the end). + Has no effect if the tween has already started or if it's added to a Sequence + + + EXPERIMENTAL: inverts this tween, so that it will play from the end to the beginning + (playing it backwards will actually play it from the beginning to the end). + Has no effect if the tween has already started or if it's added to a Sequence + If TRUE the tween will be inverted, otherwise it won't + + + Sets the onStart callback for the tween, clearing any previous onStart callback that was set. + Called the first time the tween is set in a playing state, after any eventual delay + + + Sets the onPlay callback for the tween, clearing any previous onPlay callback that was set. + Called when the tween is set in a playing state, after any eventual delay. + Also called each time the tween resumes playing from a paused state + + + Sets the onPause callback for the tween, clearing any previous onPause callback that was set. + Called when the tween state changes from playing to paused. + If the tween has autoKill set to FALSE, this is called also when the tween reaches completion. + + + Sets the onRewind callback for the tween, clearing any previous onRewind callback that was set. + Called when the tween is rewinded, + either by calling Rewind or by reaching the start position while playing backwards. + Rewinding a tween that is already rewinded will not fire this callback + + + Sets the onUpdate callback for the tween, clearing any previous onUpdate callback that was set. + Called each time the tween updates + + + Sets the onStepComplete callback for the tween, clearing any previous onStepComplete callback that was set. + Called the moment the tween completes one loop cycle, even when going backwards + + + Sets the onComplete callback for the tween, clearing any previous onComplete callback that was set. + Called the moment the tween reaches its final forward position, loops included + + + Sets the onKill callback for the tween, clearing any previous onKill callback that was set. + Called the moment the tween is killed + + + Sets the onWaypointChange callback for the tween, clearing any previous onWaypointChange callback that was set. + Called when a path tween's current waypoint changes + + + Sets the parameters of the tween (id, ease, loops, delay, timeScale, callbacks, etc) as the parameters of the given one. + Doesn't copy specific SetOptions settings: those will need to be applied manually each time. + Has no effect if the tween has already started. + NOTE: the tween's target will not be changed + Tween from which to copy the parameters + + + Sets the parameters of the tween (id, ease, loops, delay, timeScale, callbacks, etc) as the parameters of the given TweenParams. + Has no effect if the tween has already started. + TweenParams from which to copy the parameters + + + Adds the given tween to the end of the Sequence. + Has no effect if the Sequence has already started + The tween to append + + + Adds the given tween to the beginning of the Sequence, pushing forward the other nested content. + Has no effect if the Sequence has already started + The tween to prepend + + + Inserts the given tween at the same time position of the last tween, callback or interval added to the Sequence. + Note that, in case of a Join after an interval, the insertion time will be the time where the interval starts, not where it finishes. + Has no effect if the Sequence has already started + + + Inserts the given tween at the given time position in the Sequence, + automatically adding an interval if needed. + Has no effect if the Sequence has already started + The time position where the tween will be placed + The tween to insert + + + Adds the given interval to the end of the Sequence. + Has no effect if the Sequence has already started + The interval duration + + + Adds the given interval to the beginning of the Sequence, pushing forward the other nested content. + Has no effect if the Sequence has already started + The interval duration + + + Adds the given callback to the end of the Sequence. + Has no effect if the Sequence has already started + The callback to append + + + Adds the given callback to the beginning of the Sequence, pushing forward the other nested content. + Has no effect if the Sequence has already started + The callback to prepend + + + Inserts the given callback at the same time position of the last tween, callback or interval added to the Sequence. + Note that, in case of a Join after an interval, the insertion time will be the time where the interval starts, not where it finishes. + Has no effect if the Sequence has already started + /// <param name="callback">The callback to prepend</param> + + + Inserts the given callback at the given time position in the Sequence, + automatically adding an interval if needed. + Has no effect if the Sequence has already started + The time position where the callback will be placed + The callback to insert + + + Changes a TO tween into a FROM tween: sets the current target's position as the tween's endValue + then immediately sends the target to the previously set endValue. + + + Changes a TO tween into a FROM tween: sets the current target's position as the tween's endValue + then immediately sends the target to the previously set endValue. + If TRUE the FROM value will be calculated as relative to the current one + + + Changes a TO tween into a FROM tween: sets the current value of the target as the endValue, + and the previously passed endValue as the actual startValue. + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + If TRUE the FROM value will be calculated as relative to the current one + + + Changes a TO tween into a FROM tween: sets the tween's starting value to the given one + and eventually sets the tween's target to that value immediately. + Value to start from + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + If TRUE the FROM/TO values will be calculated as relative to the current ones + + + Changes a TO tween into a FROM tween: sets the tween's starting value to the given one + and eventually sets the tween's target to that value immediately. + Alpha value to start from (in case of Fade tweens) + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + If TRUE the FROM/TO values will be calculated as relative to the current ones + + + Changes a TO tween into a FROM tween: sets the tween's starting value to the given one + and eventually sets the tween's target to that value immediately. + Value to start from (in case of Vector tweens that act on a single coordinate or scale tweens) + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + If TRUE the FROM/TO values will be calculated as relative to the current ones + + + Changes a TO tween into a FROM tween: sets the tween's starting value to the given one + and eventually sets the tween's target to that value immediately. + Value to start from (in case of Vector tweens that act on a single coordinate or scale tweens) + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + If TRUE the FROM/TO values will be calculated as relative to the current ones + + + Sets a delayed startup for the tween. + In case of Sequences behaves the same as , + which means the delay will repeat in case of loops (while with tweens it's ignored after the first loop cycle). + Has no effect if the tween has already started + + + EXPERIMENTAL: implemented in v1.2.340. + Sets a delayed startup for the tween with options to choose how the delay is applied in case of Sequences. + Has no effect if the tween has already started + Only used by types: If FALSE sets the delay as a one-time occurrence + (defaults to this for types), + otherwise as a Sequence interval which will repeat at the beginning of every loop cycle + + + Sets the tween as relative + (the endValue will be calculated as startValue + endValue instead than being used directly). + Has no effect on Sequences or if the tween has already started + + + If isRelative is TRUE sets the tween as relative + (the endValue will be calculated as startValue + endValue instead than being used directly). + Has no effect on Sequences or if the tween has already started + + + If isSpeedBased is TRUE sets the tween as speed based + (the duration will represent the number of units the tween moves x second). + Has no effect on Sequences, nested tweens, or if the tween has already started + + + If isSpeedBased is TRUE sets the tween as speed based + (the duration will represent the number of units the tween moves x second). + Has no effect on Sequences, nested tweens, or if the tween has already started + + + Options for float tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector2 tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector2 tweens + Selecting an axis will tween the vector only on that axis, leaving the others untouched + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector3 tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector3 tweens + Selecting an axis will tween the vector only on that axis, leaving the others untouched + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector4 tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector4 tweens + Selecting an axis will tween the vector only on that axis, leaving the others untouched + If TRUE the tween will smoothly snap all values to integers + + + Options for Quaternion tweens + If TRUE (default) the rotation will take the shortest route, and will not rotate more than 360°. + If FALSE the rotation will be fully accounted. Is always FALSE if the tween is set as relative + + + Options for Color tweens + If TRUE only the alpha value of the color will be tweened + + + Options for Vector4 tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector4 tweens + If TRUE, rich text will be interpreted correctly while animated, + otherwise all tags will be considered as normal text + The type of scramble to use, if any + A string containing the characters to use for scrambling. + Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters. + Leave it to NULL to use default ones + + + Options for Vector3Array tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector3Array tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for ShapeCircle tweens + If TRUE the center you set in the DOTween.To method will be considered as relative + to the starting position of the target + If TRUE the tween will smoothly snap all values to integers + + + Options for Path tweens (created via the DOPath shortcut) + The eventual movement axis to lock. You can input multiple axis if you separate them like this: + AxisConstrain.X | AxisConstraint.Y + The eventual rotation axis to lock. You can input multiple axis if you separate them like this: + AxisConstrain.X | AxisConstraint.Y + + + Options for Path tweens (created via the DOPath shortcut) + If TRUE the path will be automatically closed + The eventual movement axis to lock. You can input multiple axis if you separate them like this: + AxisConstrain.X | AxisConstraint.Y + The eventual rotation axis to lock. You can input multiple axis if you separate them like this: + AxisConstrain.X | AxisConstraint.Y + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target towards the given position. + Must be chained directly to the tween creation method or to a SetOptions + The position to look at + The eventual direction to consider as "forward". + If left to NULL defaults to the regular forward side of the transform + The vector that defines in which direction up is (default: Vector3.up) + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target towards the given position with options to keep the Z rotation stable. + Must be chained directly to the tween creation method or to a SetOptions + The position to look at + If TRUE doesn't rotate the target along the Z axis + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target towards another transform. + Must be chained directly to the tween creation method or to a SetOptions + The transform to look at + The eventual direction to consider as "forward". + If left to NULL defaults to the regular forward side of the transform + The vector that defines in which direction up is (default: Vector3.up) + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target towards another transform with options to keep the Z rotation stable. + Must be chained directly to the tween creation method or to a SetOptions + The transform to look at + If TRUE doesn't rotate the target along the Z axis + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target to the path, with the given lookAhead. + Must be chained directly to the tween creation method or to a SetOptions + The percentage of lookAhead to use (0 to 1) + The eventual direction to consider as "forward". + If left to NULL defaults to the regular forward side of the transform + The vector that defines in which direction up is (default: Vector3.up) + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the path with options to keep the Z rotation stable. + Must be chained directly to the tween creation method or to a SetOptions + The percentage of lookAhead to use (0 to 1) + If TRUE doesn't rotate the target along the Z axis + + + + Types of log behaviours + + + + Log only warnings and errors + + + Log warnings, errors and additional infos + + + Log only errors + + + + Indicates either a Tweener or a Sequence + + + + TimeScale for the tween + + + If TRUE the tween will play backwards + + + If TRUE the tween is completely inverted but without playing it backwards + (play backwards will actually play the tween in the original direction) + + + Object ID (usable for filtering with DOTween static methods). Can be anything except a string or an int + (use or for those) + + + String ID (usable for filtering with DOTween static methods). 2X faster than using an object id + + + Int ID (usable for filtering with DOTween static methods). 4X faster than using an object id, 2X faster than using a string id. + Default is -999 so avoid using an ID like that or it will capture all unset intIds + + + Tween target (usable for filtering with DOTween static methods). Automatically set by tween creation shortcuts + + + Called when the tween is set in a playing state, after any eventual delay. + Also called each time the tween resumes playing from a paused state + + + Called when the tween state changes from playing to paused. + If the tween has autoKill set to FALSE, this is called also when the tween reaches completion. + + + Called when the tween is rewinded, + either by calling Rewind or by reaching the start position while playing backwards. + Rewinding a tween that is already rewinded will not fire this callback + + + Called each time the tween updates + + + Called the moment the tween completes one loop cycle + + + Called the moment the tween reaches completion (loops included) + + + Called the moment the tween is killed + + + Called when a path tween's current waypoint changes + + + Tweeners-only (ignored by Sequences), returns TRUE if the tween was set as relative + + + + Set by SetTarget if DOTween's Debug Mode is on (see DOTween Utility Panel -> "Store GameObject's ID" debug option + + + + FALSE when tween is (or should be) despawned - set only by TweenManager + + + Gets and sets the time position (loops included, delays excluded) of the tween + + + Returns TRUE if the tween is set to loop (either a set number of times or infinitely) + + + TRUE after the tween was set in a play state at least once, AFTER any delay is elapsed + + + Time position within a single loop cycle + + + + Animates a single value + + + + Changes the start value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new start value + If bigger than 0 applies it as the new tween duration + + + Changes the end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new end value + If bigger than 0 applies it as the new tween duration + If TRUE the start value will become the current target's value, otherwise it will stay the same + + + Changes the end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new end value + If TRUE the start value will become the current target's value, otherwise it will stay the same + + + Changes the start and end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new start value + The new end value + If bigger than 0 applies it as the new tween duration + + + + Used internally + + + + + Update type + + + + Updates every frame during Update calls + + + Updates every frame during LateUpdate calls + + + Updates using FixedUpdate calls + + + Updates using manual update calls + + + diff --git a/Assets/Plugins/Demigiant/DOTween/DOTween.XML.meta b/Assets/Plugins/Demigiant/DOTween/DOTween.XML.meta new file mode 100644 index 00000000..7a866b54 --- /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..57112d34beef1b8bb4f78782d752c7bef2452e0c GIT binary patch literal 175616 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 a3CrU?49nv_9LwWA63gR02Fv4akN*p~Okd{! 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 00000000..f64a22a7 --- /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 00000000..482dbb83 --- /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 00000000..532edfb4 --- /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 00000000..592e4271 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML @@ -0,0 +1,144 @@ + + + + DOTweenEditor + + + + + Contains compatibility methods taken from DemiEditor (for when DOTween is without it) + + + + + Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account + + + + + Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account + + + + + Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account + + + + + Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account + + + + + Starts the update loop of tween in the editor. Has no effect during playMode. + + Eventual callback to call after every update + + + + Stops the update loop and clears the onPreviewUpdated callback. + + If TRUE also resets the tweened objects to their original state. + Note that this works by calling Rewind on all tweens, so it will work correctly + only if you have a single tween type per object and it wasn't killed + If TRUE also kills any cached tween + + + + Readies the tween for editor preview by setting its UpdateType to Manual plus eventual extra settings. + + The tween to ready + If TRUE (recommended) removes all callbacks (OnComplete/Rewind/etc) + If TRUE prevents the tween from being auto-killed at completion + If TRUE starts playing the tween immediately + + + Full major version + first minor version (ex: 2018.1f) + + + Major version + + + First minor version (ex: in 2018.1 it would be 1) + + + + Checks that the given editor texture use the correct import settings, + and applies them if they're incorrect. + + + + + Returns TRUE if setup is required + + + + + Returns TRUE if the file/directory at the given path exists. + + Path, relative to Unity's project folder + + + + + Converts the given project-relative path to a full path, + with backward (\) slashes). + + + + + Converts the given full path to a path usable with AssetDatabase methods + (relative to Unity's project folder, and with the correct Unity forward (/) slashes). + + + + + Connects to a asset. + If the asset already exists at the given path, loads it and returns it. + Otherwise, either returns NULL or automatically creates it before loading and returning it + (depending on the given parameters). + + Asset type + File path (relative to Unity's project folder) + If TRUE and the requested asset doesn't exist, forces its creation + + + + Full path for the given loaded assembly, assembly file included + + + + + Adds the given global define if it's not already present + + + + + Removes the given global define if it's present + + + + + Returns TRUE if the given global define is present in all the + or only in the given , depending on passed parameters. + + + to use. Leave NULL to check in all of them. + + + + Not used as menu item anymore, but as a utility function + + + + Full major version + first minor version (ex: 2018.1f) + + + Major version + + + First minor version (ex: in 2018.1 it would be 1) + + + diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta new file mode 100644 index 00000000..7cec1135 --- /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..4911a86b3feaad8d13ba041e50ed77832d813651 GIT binary patch literal 70656 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%0Dh6|eO%in;`_q3bA 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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..4cf61e018174f996f8649912ac9901a2a4e437ab GIT binary patch literal 12646 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 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 00000000..61c3ccec --- /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 00000000..c343a61a --- /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 00000000..7ca19119 --- /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 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 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 00000000..f12a1a7d --- /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 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 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 00000000..26e42551 --- /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 00000000..24cd2ac5 --- /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 00000000..b5afb244 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs @@ -0,0 +1,198 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; +using UnityEngine; +using UnityEngine.Audio; // Required for AudioMixer + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleAudio + { + #region Shortcuts + + #region Audio + + /// Tweens an AudioSource's volume to the given value. + /// Also stores the AudioSource as the tween's target so it can be used for filtered operations + /// The end value to reach (0 to 1)The duration of the tween + public static TweenerCore DOFade(this AudioSource target, float endValue, float duration) + { + if (endValue < 0) endValue = 0; + else if (endValue > 1) endValue = 1; + TweenerCore t = DOTween.To(() => target.volume, x => target.volume = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an AudioSource's pitch to the given value. + /// Also stores the AudioSource as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPitch(this AudioSource target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pitch, x => target.pitch = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region AudioMixer + + /// Tweens an AudioMixer's exposed float to the given value. + /// Also stores the AudioMixer as the tween's target so it can be used for filtered operations. + /// Note that you need to manually expose a float in an AudioMixerGroup in order to be able to tween it from an AudioMixer. + /// Name given to the exposed float to set + /// The end value to reachThe duration of the tween + public static TweenerCore DOSetFloat(this AudioMixer target, string floatName, float endValue, float duration) + { + TweenerCore t = DOTween.To(()=> { + float currVal; + target.GetFloat(floatName, out currVal); + return currVal; + }, x=> target.SetFloat(floatName, x), endValue, duration); + t.SetTarget(target); + return t; + } + + #region Operation Shortcuts + + /// + /// Completes all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens completed + /// (meaning the tweens that don't have infinite loops and were not already complete) + /// + /// For Sequences only: if TRUE also internal Sequence callbacks will be fired, + /// otherwise they will be ignored + public static int DOComplete(this AudioMixer target, bool withCallbacks = false) + { + return DOTween.Complete(target, withCallbacks); + } + + /// + /// Kills all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens killed. + /// + /// If TRUE completes the tween before killing it + public static int DOKill(this AudioMixer target, bool complete = false) + { + return DOTween.Kill(target, complete); + } + + /// + /// Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens flipped. + /// + public static int DOFlip(this AudioMixer target) + { + return DOTween.Flip(target); + } + + /// + /// Sends to the given position all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens involved. + /// + /// Time position to reach + /// (if higher than the whole tween duration the tween will simply reach its end) + /// If TRUE will play the tween after reaching the given position, otherwise it will pause it + public static int DOGoto(this AudioMixer target, float to, bool andPlay = false) + { + return DOTween.Goto(target, to, andPlay); + } + + /// + /// Pauses all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens paused. + /// + public static int DOPause(this AudioMixer target) + { + return DOTween.Pause(target); + } + + /// + /// Plays all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlay(this AudioMixer target) + { + return DOTween.Play(target); + } + + /// + /// Plays backwards all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlayBackwards(this AudioMixer target) + { + return DOTween.PlayBackwards(target); + } + + /// + /// Plays forward all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlayForward(this AudioMixer target) + { + return DOTween.PlayForward(target); + } + + /// + /// Restarts all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens restarted. + /// + public static int DORestart(this AudioMixer target) + { + return DOTween.Restart(target); + } + + /// + /// Rewinds all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens rewinded. + /// + public static int DORewind(this AudioMixer target) + { + return DOTween.Rewind(target); + } + + /// + /// Smoothly rewinds all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens rewinded. + /// + public static int DOSmoothRewind(this AudioMixer target) + { + return DOTween.SmoothRewind(target); + } + + /// + /// Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens involved. + /// + public static int DOTogglePause(this AudioMixer target) + { + return DOTween.TogglePause(target); + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta new file mode 100644 index 00000000..50aa010f --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b766d08851589514b97afb23c6f30a70 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs new file mode 100644 index 00000000..743ef0ab --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs @@ -0,0 +1,146 @@ +using UnityEngine; + +#if false || EPO_DOTWEEN // MODULE_MARKER + +using EPOOutline; +using DG.Tweening.Plugins.Options; +using DG.Tweening; +using DG.Tweening.Core; + +namespace DG.Tweening +{ + public static class DOTweenModuleEPOOutline + { + public static int DOKill(this SerializedPass target, bool complete) + { + return DOTween.Kill(target, complete); + } + + public static TweenerCore DOFloat(this SerializedPass target, string propertyName, float endValue, float duration) + { + var tweener = DOTween.To(() => target.GetFloat(propertyName), x => target.SetFloat(propertyName, x), endValue, duration); + tweener.SetOptions(true).SetTarget(target); + return tweener; + } + + public static TweenerCore DOFade(this SerializedPass target, string propertyName, float endValue, float duration) + { + var tweener = DOTween.ToAlpha(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration); + tweener.SetOptions(true).SetTarget(target); + return tweener; + } + + public static TweenerCore DOColor(this SerializedPass target, string propertyName, Color endValue, float duration) + { + var tweener = DOTween.To(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration); + tweener.SetOptions(false).SetTarget(target); + return tweener; + } + + public static TweenerCore DOVector(this SerializedPass target, string propertyName, Vector4 endValue, float duration) + { + var tweener = DOTween.To(() => target.GetVector(propertyName), x => target.SetVector(propertyName, x), endValue, duration); + tweener.SetOptions(false).SetTarget(target); + return tweener; + } + + public static TweenerCore DOFloat(this SerializedPass target, int propertyId, float endValue, float duration) + { + var tweener = DOTween.To(() => target.GetFloat(propertyId), x => target.SetFloat(propertyId, x), endValue, duration); + tweener.SetOptions(true).SetTarget(target); + return tweener; + } + + public static TweenerCore DOFade(this SerializedPass target, int propertyId, float endValue, float duration) + { + var tweener = DOTween.ToAlpha(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration); + tweener.SetOptions(true).SetTarget(target); + return tweener; + } + + public static TweenerCore DOColor(this SerializedPass target, int propertyId, Color endValue, float duration) + { + var tweener = DOTween.To(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration); + tweener.SetOptions(false).SetTarget(target); + return tweener; + } + + public static TweenerCore DOVector(this SerializedPass target, int propertyId, Vector4 endValue, float duration) + { + var tweener = DOTween.To(() => target.GetVector(propertyId), x => target.SetVector(propertyId, x), endValue, duration); + tweener.SetOptions(false).SetTarget(target); + return tweener; + } + + public static int DOKill(this Outlinable.OutlineProperties target, bool complete = false) + { + return DOTween.Kill(target, complete); + } + + public static int DOKill(this Outliner target, bool complete = false) + { + return DOTween.Kill(target, complete); + } + + /// + /// Controls the alpha (transparency) of the outline + /// + public static TweenerCore DOFade(this Outlinable.OutlineProperties target, float endValue, float duration) + { + var tweener = DOTween.ToAlpha(() => target.Color, x => target.Color = x, endValue, duration); + tweener.SetOptions(true).SetTarget(target); + return tweener; + } + + /// + /// Controls the color of the outline + /// + public static TweenerCore DOColor(this Outlinable.OutlineProperties target, Color endValue, float duration) + { + var tweener = DOTween.To(() => target.Color, x => target.Color = x, endValue, duration); + tweener.SetOptions(false).SetTarget(target); + return tweener; + } + + /// + /// Controls the amount of blur applied to the outline + /// + public static TweenerCore DOBlurShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false) + { + var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration); + tweener.SetOptions(snapping).SetTarget(target); + return tweener; + } + + /// + /// Controls the amount of blur applied to the outline + /// + public static TweenerCore DOBlurShift(this Outliner target, float endValue, float duration, bool snapping = false) + { + var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration); + tweener.SetOptions(snapping).SetTarget(target); + return tweener; + } + + /// + /// Controls the amount of dilation applied to the outline + /// + public static TweenerCore DODilateShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false) + { + var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration); + tweener.SetOptions(snapping).SetTarget(target); + return tweener; + } + + /// + /// Controls the amount of dilation applied to the outline + /// + public static TweenerCore DODilateShift(this Outliner target, float endValue, float duration, bool snapping = false) + { + var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration); + tweener.SetOptions(snapping).SetTarget(target); + return tweener; + } + } +} +#endif diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta new file mode 100644 index 00000000..4b8991f5 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e944529dcaee98f4e9498d80e541d93e +timeCreated: 1602593330 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs new file mode 100644 index 00000000..6e1469eb --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs @@ -0,0 +1,216 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Core.Enums; +using DG.Tweening.Plugins; +using DG.Tweening.Plugins.Core.PathCore; +using DG.Tweening.Plugins.Options; +using UnityEngine; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModulePhysics + { + #region Shortcuts + + #region Rigidbody + + /// Tweens a Rigidbody's position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMove(this Rigidbody target, Vector3 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody's X position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveX(this Rigidbody target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue, 0, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody's Y position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveY(this Rigidbody target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, endValue, 0), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody's Z position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveZ(this Rigidbody target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue), duration); + t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody's rotation to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// Rotation mode + public static TweenerCore DORotate(this Rigidbody target, Vector3 endValue, float duration, RotateMode mode = RotateMode.Fast) + { + TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration); + t.SetTarget(target); + t.plugOptions.rotateMode = mode; + return t; + } + + /// Tweens a Rigidbody's rotation so that it will look towards the given position. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The position to look atThe duration of the tween + /// Eventual axis constraint for the rotation + /// The vector that defines in which direction up is (default: Vector3.up) + public static TweenerCore DOLookAt(this Rigidbody target, Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3? up = null) + { + TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, towards, duration) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetLookAt); + t.plugOptions.axisConstraint = axisConstraint; + t.plugOptions.up = (up == null) ? Vector3.up : (Vector3)up; + return t; + } + + #region Special + + /// Tweens a Rigidbody's position to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJump(this Rigidbody target, Vector3 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, jumpPower, 0), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(() => startPosY = target.position.y); + s.Append(DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue.x, 0, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue.z), duration) + .SetOptions(AxisConstraint.Z, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + yTween.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector3 pos = target.position; + pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad); + target.MovePosition(pos); + }); + return s; + } + + /// Tweens a Rigidbody's position through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations. + /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOPath. + /// The waypoints to go through + /// The duration of the tween + /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOPath( + this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, new Path(pathType, path, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + return t; + } + /// Tweens a Rigidbody's localPosition through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations + /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOLocalPath. + /// The waypoint to go through + /// The duration of the tween + /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOLocalPath( + this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + // Used by path editor when creating the actual tween, so it can pass a pre-compiled path + internal static TweenerCore DOPath( + this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + return t; + } + internal static TweenerCore DOLocalPath( + this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta new file mode 100644 index 00000000..0ce0d755 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dae9aa560b4242648a3affa2bfabc365 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs new file mode 100644 index 00000000..d6680037 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs @@ -0,0 +1,193 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Plugins; +using DG.Tweening.Plugins.Core.PathCore; +using DG.Tweening.Plugins.Options; +using UnityEngine; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModulePhysics2D + { + #region Shortcuts + + #region Rigidbody2D Shortcuts + + /// Tweens a Rigidbody2D's position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMove(this Rigidbody2D target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody2D's X position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveX(this Rigidbody2D target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector2(endValue, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody2D's Y position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveY(this Rigidbody2D target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector2(0, endValue), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody2D's rotation to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DORotate(this Rigidbody2D target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration); + t.SetTarget(target); + return t; + } + + #region Special + + /// Tweens a Rigidbody2D's position to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations. + /// IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJump(this Rigidbody2D target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.position, x => target.position = x, new Vector2(0, jumpPower), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(() => startPosY = target.position.y); + s.Append(DOTween.To(() => target.position, x => target.position = x, new Vector2(endValue.x, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + yTween.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector3 pos = target.position; + pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad); + target.MovePosition(pos); + }); + return s; + } + + /// Tweens a Rigidbody2D's position through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations. + /// NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOPath. + /// The waypoints to go through + /// The duration of the tween + /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOPath( + this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + int len = path.Length; + Vector3[] path3D = new Vector3[len]; + for (int i = 0; i < len; ++i) path3D[i] = path[i]; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), new Path(pathType, path3D, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody2D = true; + t.plugOptions.mode = pathMode; + return t; + } + /// Tweens a Rigidbody2D's localPosition through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOLocalPath. + /// The waypoint to go through + /// The duration of the tween + /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOLocalPath( + this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + int len = path.Length; + Vector3[] path3D = new Vector3[len]; + for (int i = 0; i < len; ++i) path3D[i] = path[i]; + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path3D, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody2D = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + // Used by path editor when creating the actual tween, so it can pass a pre-compiled path + internal static TweenerCore DOPath( + this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody2D = true; + t.plugOptions.mode = pathMode; + return t; + } + internal static TweenerCore DOLocalPath( + this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody2D = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta new file mode 100644 index 00000000..ca9ed299 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 230fe34542e175245ba74b4659dae700 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs new file mode 100644 index 00000000..0efebb31 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs @@ -0,0 +1,93 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER +using System; +using UnityEngine; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleSprite + { + #region Shortcuts + + #region SpriteRenderer + + /// Tweens a SpriteRenderer's color to the given value. + /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this SpriteRenderer target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Material's alpha color to the given value. + /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this SpriteRenderer target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a SpriteRenderer's color using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this SpriteRenderer target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + + #endregion + + #region Blendables + + #region SpriteRenderer + + /// Tweens a SpriteRenderer's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the SpriteRenderer as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this SpriteRenderer target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta new file mode 100644 index 00000000..a0c67c42 --- /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 00000000..6322b3af --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs @@ -0,0 +1,662 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER + +using System; +using System.Globalization; +using UnityEngine; +using UnityEngine.UI; +using DG.Tweening.Core; +using DG.Tweening.Core.Enums; +using DG.Tweening.Plugins; +using DG.Tweening.Plugins.Options; +using Outline = UnityEngine.UI.Outline; +using Text = UnityEngine.UI.Text; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleUI + { + #region Shortcuts + + #region CanvasGroup + + /// Tweens a CanvasGroup's alpha color to the given value. + /// Also stores the canvasGroup as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this CanvasGroup target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.alpha, x => target.alpha = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region Graphic + + /// Tweens an Graphic's color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Graphic target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Graphic's alpha color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Graphic target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region Image + + /// Tweens an Image's color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Image target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Image's alpha color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Image target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Image's fillAmount to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reach (0 to 1)The duration of the tween + public static TweenerCore DOFillAmount(this Image target, float endValue, float duration) + { + if (endValue > 1) endValue = 1; + else if (endValue < 0) endValue = 0; + TweenerCore t = DOTween.To(() => target.fillAmount, x => target.fillAmount = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Image's colors using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this Image target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + + #endregion + + #region LayoutElement + + /// Tweens an LayoutElement's flexibleWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOFlexibleSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => new Vector2(target.flexibleWidth, target.flexibleHeight), x => { + target.flexibleWidth = x.x; + target.flexibleHeight = x.y; + }, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens an LayoutElement's minWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMinSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => new Vector2(target.minWidth, target.minHeight), x => { + target.minWidth = x.x; + target.minHeight = x.y; + }, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens an LayoutElement's preferredWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOPreferredSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => new Vector2(target.preferredWidth, target.preferredHeight), x => { + target.preferredWidth = x.x; + target.preferredHeight = x.y; + }, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + #endregion + + #region Outline + + /// Tweens a Outline's effectColor to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Outline target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.effectColor, x => target.effectColor = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Outline's effectColor alpha to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Outline target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.effectColor, x => target.effectColor = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Outline's effectDistance to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOScale(this Outline target, Vector2 endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.effectDistance, x => target.effectDistance = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region RectTransform + + /// Tweens a RectTransform's anchoredPosition to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPosX(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPosY(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, endValue), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's anchoredPosition3D to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3D(this RectTransform target, Vector3 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition3D X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3DX(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(endValue, 0, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition3D Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3DY(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, endValue, 0), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition3D Z to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3DZ(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, 0, endValue), duration); + t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's anchorMax to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorMax(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchorMax, x => target.anchorMax = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's anchorMin to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorMin(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchorMin, x => target.anchorMin = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's pivot to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPivot(this RectTransform target, Vector2 endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, endValue, duration); + t.SetTarget(target); + return t; + } + /// Tweens a RectTransform's pivot X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPivotX(this RectTransform target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(endValue, 0), duration); + t.SetOptions(AxisConstraint.X).SetTarget(target); + return t; + } + /// Tweens a RectTransform's pivot Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPivotY(this RectTransform target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(0, endValue), duration); + t.SetOptions(AxisConstraint.Y).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's sizeDelta to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOSizeDelta(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.sizeDelta, x => target.sizeDelta = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Punches a RectTransform's anchoredPosition towards the given direction and then back to the starting one + /// as if it was connected to the starting position via an elastic. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The direction and strength of the punch (added to the RectTransform's current position) + /// The duration of the tween + /// Indicates how much will the punch vibrate + /// Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards. + /// 1 creates a full oscillation between the punch direction and the opposite direction, + /// while 0 oscillates only between the punch and the start position + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOPunchAnchorPos(this RectTransform target, Vector2 punch, float duration, int vibrato = 10, float elasticity = 1, bool snapping = false) + { + return DOTween.Punch(() => target.anchoredPosition, x => target.anchoredPosition = x, punch, duration, vibrato, elasticity) + .SetTarget(target).SetOptions(snapping); + } + + /// Shakes a RectTransform's anchoredPosition with the given values. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The duration of the tween + /// The shake strength + /// Indicates how much will the shake vibrate + /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + /// Setting it to 0 will shake along a single direction. + /// If TRUE the tween will smoothly snap all values to integers + /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + /// Randomness mode + public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, float strength = 100, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full) + { + return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, true, fadeOut, randomnessMode) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping); + } + /// Shakes a RectTransform's anchoredPosition with the given values. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The duration of the tween + /// The shake strength on each axis + /// Indicates how much will the shake vibrate + /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + /// Setting it to 0 will shake along a single direction. + /// If TRUE the tween will smoothly snap all values to integers + /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + /// Randomness mode + public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, Vector2 strength, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full) + { + return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, fadeOut, randomnessMode) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping); + } + + #region Special + + /// Tweens a RectTransform's anchoredPosition to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJumpAnchorPos(this RectTransform target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + + // Separate Y Tween so we can elaborate elapsedPercentage on that insted of on the Sequence + // (in case users add a delay or other elements to the Sequence) + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, jumpPower), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(()=> startPosY = target.anchoredPosition.y); + s.Append(DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue.x, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + s.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector2 pos = target.anchoredPosition; + pos.y += DOVirtual.EasedValue(0, offsetY, s.ElapsedDirectionalPercentage(), Ease.OutQuad); + target.anchoredPosition = pos; + }); + return s; + } + + #endregion + + #endregion + + #region ScrollRect + + /// Tweens a ScrollRect's horizontal/verticalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DONormalizedPos(this ScrollRect target, Vector2 endValue, float duration, bool snapping = false) + { + return DOTween.To(() => new Vector2(target.horizontalNormalizedPosition, target.verticalNormalizedPosition), + x => { + target.horizontalNormalizedPosition = x.x; + target.verticalNormalizedPosition = x.y; + }, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + /// Tweens a ScrollRect's horizontalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOHorizontalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.horizontalNormalizedPosition, x => target.horizontalNormalizedPosition = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + /// Tweens a ScrollRect's verticalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOVerticalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.verticalNormalizedPosition, x => target.verticalNormalizedPosition = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + + #endregion + + #region Slider + + /// Tweens a Slider's value to the given value. + /// Also stores the Slider as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOValue(this Slider target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.value, x => target.value = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + #endregion + + #region Text + + /// Tweens a Text's color to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Text target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// + /// Tweens a Text's text from one integer to another, with options for thousands separators + /// + /// The value to start from + /// The end value to reach + /// The duration of the tween + /// If TRUE (default) also adds thousands separators + /// The to use (InvariantCulture if NULL) + public static TweenerCore DOCounter( + this Text target, int fromValue, int endValue, float duration, bool addThousandsSeparator = true, CultureInfo culture = null + ){ + int v = fromValue; + CultureInfo cInfo = !addThousandsSeparator ? null : culture ?? CultureInfo.InvariantCulture; + TweenerCore t = DOTween.To(() => v, x => { + v = x; + target.text = addThousandsSeparator + ? v.ToString("N0", cInfo) + : v.ToString(); + }, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Text's alpha color to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Text target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Text's text to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end string to tween toThe duration of the tween + /// If TRUE (default), rich text will be interpreted correctly while animated, + /// otherwise all tags will be considered as normal text + /// The type of scramble mode to use, if any + /// A string containing the characters to use for scrambling. + /// Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters. + /// Leave it to NULL (default) to use default ones + public static TweenerCore DOText(this Text target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null) + { + if (endValue == null) { + if (Debugger.logPriority > 0) Debugger.LogWarning("You can't pass a NULL string to DOText: an empty string will be used instead to avoid errors"); + endValue = ""; + } + TweenerCore t = DOTween.To(() => target.text, x => target.text = x, endValue, duration); + t.SetOptions(richTextEnabled, scrambleMode, scrambleChars) + .SetTarget(target); + return t; + } + + #endregion + + #region Blendables + + #region Graphic + + /// Tweens a Graphic's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Graphic as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Graphic target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #region Image + + /// Tweens a Image's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Image as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Image target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #region Text + + /// Tweens a Text's color BY the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Text target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #endregion + + #region Shapes + + /// Tweens a RectTransform's anchoredPosition so that it draws a circle around the given center. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations. + /// IMPORTANT: SetFrom(value) requires a instead of a float, where the X property represents the "from degrees value" + /// Circle-center/pivot around which to rotate (in UI anchoredPosition coordinates) + /// The end value degrees to reach (to rotate counter-clockwise pass a negative value) + /// The duration of the tween + /// If TRUE the coordinates will be considered as relative to the target's current anchoredPosition + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOShapeCircle( + this RectTransform target, Vector2 center, float endValueDegrees, float duration, bool relativeCenter = false, bool snapping = false + ) + { + TweenerCore t = DOTween.To( + CirclePlugin.Get(), () => target.anchoredPosition, x => target.anchoredPosition = x, center, duration + ); + t.SetOptions(endValueDegrees, relativeCenter, snapping).SetTarget(target); + return t; + } + + #endregion + + #endregion + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + + public static class Utils + { + /// + /// Converts the anchoredPosition of the first RectTransform to the second RectTransform, + /// taking into consideration offset, anchors and pivot, and returns the new anchoredPosition + /// + public static Vector2 SwitchToRectTransform(RectTransform from, RectTransform to) + { + Vector2 localPoint; + Vector2 fromPivotDerivedOffset = new Vector2(from.rect.width * 0.5f + from.rect.xMin, from.rect.height * 0.5f + from.rect.yMin); + Vector2 screenP = RectTransformUtility.WorldToScreenPoint(null, from.position); + screenP += fromPivotDerivedOffset; + RectTransformUtility.ScreenPointToLocalPointInRectangle(to, screenP, null, out localPoint); + Vector2 pivotDerivedOffset = new Vector2(to.rect.width * 0.5f + to.rect.xMin, to.rect.height * 0.5f + to.rect.yMin); + return to.anchoredPosition + localPoint - pivotDerivedOffset; + } + } + } +} +#endif diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta new file mode 100644 index 00000000..60d55eff --- /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 00000000..90498ed3 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs @@ -0,0 +1,389 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +using System; +using UnityEngine; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; +//#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0) +//using Task = System.Threading.Tasks.Task; +//#endif + +#pragma warning disable 1591 +namespace DG.Tweening +{ + /// + /// Shortcuts/functions that are not strictly related to specific Modules + /// but are available only on some Unity versions + /// + public static class DOTweenModuleUnityVersion + { + #region Material + + /// Tweens a Material's color using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this Material target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + /// Tweens a Material's named color property using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to use + /// The name of the material property to tween (like _Tint or _SpecColor) + /// The duration of the tween + public static Sequence DOGradientColor(this Material target, Gradient gradient, string property, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.SetColor(property, c.color); + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, property, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + + #endregion + + #region CustomYieldInstructions + + /// + /// Returns a that waits until the tween is killed or complete. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForCompletion(true); + /// + public static CustomYieldInstruction WaitForCompletion(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForCompletion(t); + } + + /// + /// Returns a that waits until the tween is killed or rewinded. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForRewind(); + /// + public static CustomYieldInstruction WaitForRewind(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForRewind(t); + } + + /// + /// Returns a that waits until the tween is killed. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForKill(); + /// + public static CustomYieldInstruction WaitForKill(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForKill(t); + } + + /// + /// Returns a that waits until the tween is killed or has gone through the given amount of loops. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForElapsedLoops(2); + /// + /// Elapsed loops to wait for + public static CustomYieldInstruction WaitForElapsedLoops(this Tween t, int elapsedLoops, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForElapsedLoops(t, elapsedLoops); + } + + /// + /// Returns a that waits until the tween is killed + /// or has reached the given time position (loops included, delays excluded). + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForPosition(2.5f); + /// + /// Position (loops included, delays excluded) to wait for + public static CustomYieldInstruction WaitForPosition(this Tween t, float position, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForPosition(t, position); + } + + /// + /// Returns a that waits until the tween is killed or started + /// (meaning when the tween is set in a playing state the first time, after any eventual delay). + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForStart(); + /// + public static CustomYieldInstruction WaitForStart(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForStart(t); + } + + #endregion + +#if UNITY_2018_1_OR_NEWER + #region Unity 2018.1 or Newer + + #region Material + + /// Tweens a Material's named texture offset property with the given ID to the given value. + /// Also stores the material as the tween's target so it can be used for filtered operations + /// The end value to reach + /// The ID of the material property to tween (also called nameID in Unity's manual) + /// The duration of the tween + public static TweenerCore DOOffset(this Material target, Vector2 endValue, int propertyID, float duration) + { + if (!target.HasProperty(propertyID)) { + if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID); + return null; + } + TweenerCore t = DOTween.To(() => target.GetTextureOffset(propertyID), x => target.SetTextureOffset(propertyID, x), endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Material's named texture scale property with the given ID to the given value. + /// Also stores the material as the tween's target so it can be used for filtered operations + /// The end value to reach + /// The ID of the material property to tween (also called nameID in Unity's manual) + /// The duration of the tween + public static TweenerCore DOTiling(this Material target, Vector2 endValue, int propertyID, float duration) + { + if (!target.HasProperty(propertyID)) { + if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID); + return null; + } + TweenerCore t = DOTween.To(() => target.GetTextureScale(propertyID), x => target.SetTextureScale(propertyID, x), endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region .NET 4.6 or Newer + +#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0) + + #region Async Instructions + + /// + /// Returns an async that waits until the tween is killed or complete. + /// It can be used inside an async operation. + /// Example usage:await myTween.WaitForCompletion(); + /// + public static async System.Threading.Tasks.Task AsyncWaitForCompletion(this Tween t) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && !t.IsComplete()) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed or rewinded. + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForRewind(); + /// + public static async System.Threading.Tasks.Task AsyncWaitForRewind(this Tween t) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0)) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed. + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForKill(); + /// + public static async System.Threading.Tasks.Task AsyncWaitForKill(this Tween t) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed or has gone through the given amount of loops. + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForElapsedLoops(); + /// + /// Elapsed loops to wait for + public static async System.Threading.Tasks.Task AsyncWaitForElapsedLoops(this Tween t, int elapsedLoops) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && t.CompletedLoops() < elapsedLoops) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed or started + /// (meaning when the tween is set in a playing state the first time, after any eventual delay). + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForPosition(); + /// + /// Position (loops included, delays excluded) to wait for + public static async System.Threading.Tasks.Task AsyncWaitForPosition(this Tween t, float position) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && t.position * (t.CompletedLoops() + 1) < position) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed. + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForKill(); + /// + public static async System.Threading.Tasks.Task AsyncWaitForStart(this Tween t) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && !t.playedOnce) await System.Threading.Tasks.Task.Yield(); + } + + #endregion +#endif + + #endregion + + #endregion +#endif + } + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ CLASSES █████████████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + + public static class DOTweenCYInstruction + { + public class WaitForCompletion : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && !t.IsComplete(); + }} + readonly Tween t; + public WaitForCompletion(Tween tween) + { + t = tween; + } + } + + public class WaitForRewind : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0); + }} + readonly Tween t; + public WaitForRewind(Tween tween) + { + t = tween; + } + } + + public class WaitForKill : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active; + }} + readonly Tween t; + public WaitForKill(Tween tween) + { + t = tween; + } + } + + public class WaitForElapsedLoops : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && t.CompletedLoops() < elapsedLoops; + }} + readonly Tween t; + readonly int elapsedLoops; + public WaitForElapsedLoops(Tween tween, int elapsedLoops) + { + t = tween; + this.elapsedLoops = elapsedLoops; + } + } + + public class WaitForPosition : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && t.position * (t.CompletedLoops() + 1) < position; + }} + readonly Tween t; + readonly float position; + public WaitForPosition(Tween tween, float position) + { + t = tween; + this.position = position; + } + } + + public class WaitForStart : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && !t.playedOnce; + }} + readonly Tween t; + public WaitForStart(Tween tween) + { + t = tween; + } + } + } +} diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta new file mode 100644 index 00000000..290189f5 --- /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 00000000..3d4c786b --- /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 00000000..ab62186c --- /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 00000000..82b7c6cd --- /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 00000000..37991656 --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/readme.txt.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: fccfc62abf2eb0a4db614853430894fd +TextScriptImporter: + userData: diff --git a/Assets/Resources.meta b/Assets/Resources.meta new file mode 100644 index 00000000..52acc5e9 --- /dev/null +++ b/Assets/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 008420e8d6fc9e943a8312222a85fe0c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/DOTweenSettings.asset b/Assets/Resources/DOTweenSettings.asset new file mode 100644 index 00000000..62ebbaf2 --- /dev/null +++ b/Assets/Resources/DOTweenSettings.asset @@ -0,0 +1,54 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 16995157, guid: a811bde74b26b53498b4f6d872b09b6d, type: 3} + m_Name: DOTweenSettings + m_EditorClassIdentifier: + useSafeMode: 1 + safeModeOptions: + logBehaviour: 2 + nestedTweenFailureBehaviour: 0 + timeScale: 1 + unscaledTimeScale: 1 + useSmoothDeltaTime: 0 + maxSmoothUnscaledTime: 0.15 + rewindCallbackMode: 0 + showUnityEditorReport: 0 + logBehaviour: 0 + drawGizmos: 1 + defaultRecyclable: 0 + defaultAutoPlay: 3 + defaultUpdateType: 0 + defaultTimeScaleIndependent: 0 + defaultEaseType: 6 + defaultEaseOvershootOrAmplitude: 1.70158 + defaultEasePeriod: 0 + defaultAutoKill: 1 + defaultLoopType: 0 + debugMode: 0 + debugStoreTargetId: 1 + showPreviewPanel: 1 + storeSettingsLocation: 0 + modules: + showPanel: 0 + audioEnabled: 1 + physicsEnabled: 1 + physics2DEnabled: 1 + spriteEnabled: 1 + uiEnabled: 1 + textMeshProEnabled: 0 + tk2DEnabled: 0 + deAudioEnabled: 0 + deUnityExtendedEnabled: 0 + epoOutlineEnabled: 0 + createASMDEF: 0 + showPlayingTweens: 0 + showPausedTweens: 0 diff --git a/Assets/Resources/DOTweenSettings.asset.meta b/Assets/Resources/DOTweenSettings.asset.meta new file mode 100644 index 00000000..8f27c393 --- /dev/null +++ b/Assets/Resources/DOTweenSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 73acd95fc83478a46bfec7399fdb9c7e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes.meta b/Assets/Scenes.meta new file mode 100644 index 00000000..cabb0f30 --- /dev/null +++ b/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 86e099be188dafa4cbc266fa02bf7c6f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity new file mode 100644 index 00000000..9421266f --- /dev/null +++ b/Assets/Scenes/SampleScene.unity @@ -0,0 +1,208 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Scenes/SampleScene.unity.meta b/Assets/Scenes/SampleScene.unity.meta new file mode 100644 index 00000000..c1e3c88e --- /dev/null +++ b/Assets/Scenes/SampleScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2cda990e2423bbf4892e6590ba056729 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts.meta b/Assets/Scripts.meta new file mode 100644 index 00000000..cdf52aea --- /dev/null +++ b/Assets/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: af57ec35ff2505d44b167b2f493e47f6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ACM.cs b/Assets/Scripts/ACM.cs new file mode 100644 index 00000000..fcfcae56 --- /dev/null +++ b/Assets/Scripts/ACM.cs @@ -0,0 +1,53 @@ +using System.Collections; +using System.Collections.Generic; +using Unity.VisualScripting; +using UnityEngine; +using UnityEngine.SceneManagement; +using UnityEngine.UI; + +public class ACM : Anim +{ + public Button CLoseButton; + + public Button GoogleBtn; + + public Button FaceButton; + + public Button YonghuxieyiButton; + + public Toggle LoginToggle; + // Start is called before the first frame update + void Start() + { + this.gameObject.SetActive(false); + GoogleBtn.onClick.AddListener(() => + { + BTnmove(GoogleBtn.gameObject); + ToMainScene(); + + }); + FaceButton.onClick.AddListener(() => + { + BTnmove(FaceButton.gameObject); + ToMainScene(); + }); + YonghuxieyiButton.onClick.AddListener((() => + { + BTnmove(YonghuxieyiButton.gameObject); + LoginToggle.isOn= true; + })); + } + + void ToMainScene() + { + if (LoginToggle.isOn) + { + SceneManager.LoadScene(1); + } + } + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/ACM.cs.meta b/Assets/Scripts/ACM.cs.meta new file mode 100644 index 00000000..caab8227 --- /dev/null +++ b/Assets/Scripts/ACM.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0c53ce07180699d41a86c16339cee70e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Anim.cs b/Assets/Scripts/Anim.cs new file mode 100644 index 00000000..98ab865f --- /dev/null +++ b/Assets/Scripts/Anim.cs @@ -0,0 +1,81 @@ +using DG.Tweening; +using System.Collections; +using System.Collections.Generic; +using System.Threading.Tasks; +using UnityEngine; +using UnityEngine.UI; + +public class Anim : MonoBehaviour +{ + /// + /// °´Å¥·Å´ó±¶Êý + /// + private float scaleMultiplier = 1.2f; + /// + /// °´Å¥·Å´óËõСµÄʱ¼ä + /// + private float scaleUpDuration = 0.2f; + private float scaleDownDuration = 0.2f; + /// + /// °´Å¥±¾ÉíµÄËõ·Å±¶Êý + /// + private Vector3 originalScale; + /// + /// °´Å¥¶¯»­ÏìӦʱ¼ä + /// + public int BTntimer = 500; + // Start is called before the first frame update + void Start() + { + + } + /// + /// °´Å¥ + /// + /// + public void BTnmove(GameObject ob) + { + originalScale = transform.localScale; + + ob.transform.DOScale(ob.transform.localScale * scaleMultiplier, scaleUpDuration) + .OnComplete(() => + { + ob.transform.DOScale(originalScale, scaleDownDuration); + }); + Task.Delay(BTntimer); + } + public void ShowPanel(GameObject panel) + { + if (panel == null) + { + Debug.Log("panel==null"); + return; + } + panel.SetActive(true); + panel.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); + panel.transform.DOScale(1f, 0.5f); + } + + public void HidePanel(GameObject panel,bool isdes) + { + panel.transform.DOScale(0.5f, 0.5f); + if (isdes) + { + Destroy(panel); + } + else + { + panel.SetActive(false); + } + } + public void MoveToOriginBy(GameObject target) + { + Vector3 currentPosition = target.transform.position; + target.transform.DOMove(new Vector3(540,960,0), 0.5f); // ʹÓà DOMove Ö±½ÓÒƶ¯µ½Ô­µã + } + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Anim.cs.meta b/Assets/Scripts/Anim.cs.meta new file mode 100644 index 00000000..99ff8851 --- /dev/null +++ b/Assets/Scripts/Anim.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a26bce98312c9c447930621a1cbdf83d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Buttonitem.cs b/Assets/Scripts/Buttonitem.cs new file mode 100644 index 00000000..f98d44cf --- /dev/null +++ b/Assets/Scripts/Buttonitem.cs @@ -0,0 +1,23 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buttonitem : Anim +{ + public Button btn; + void Start() + { + btn = this.gameObject.GetComponent

sTWZfpFCk!|CFE)8^^z>*glR`huorEQCWSP*T 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ি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 literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Documentaion.pdf.meta b/Assets/Joystick Pack/Documentaion.pdf.meta new file mode 100644 index 00000000..49ed39ea --- /dev/null +++ b/Assets/Joystick Pack/Documentaion.pdf.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cfa813ed406827e43b967abd54ab5b9a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Examples.meta b/Assets/Joystick Pack/Examples.meta new file mode 100644 index 00000000..ce24394d --- /dev/null +++ b/Assets/Joystick Pack/Examples.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5a71259a40885244a8fda03175513ba5 +folderAsset: yes +timeCreated: 1513537895 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Examples/Example Scene.unity b/Assets/Joystick Pack/Examples/Example Scene.unity new file mode 100644 index 00000000..db42124c --- /dev/null +++ b/Assets/Joystick Pack/Examples/Example Scene.unity @@ -0,0 +1,4336 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.4497736, g: 0.49984246, b: 0.5756143, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &55167083 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 55167084} + - component: {fileID: 55167086} + - component: {fileID: 55167085} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &55167084 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 55167083} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 182125734} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -15, y: 0} + m_SizeDelta: {x: 30, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &55167085 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 55167083} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10915, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &55167086 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 55167083} + m_CullTransparentMesh: 0 +--- !u!1 &77253730 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 77253731} + - component: {fileID: 77253734} + - component: {fileID: 77253733} + - component: {fileID: 77253732} + m_Layer: 5 + m_Name: Joystick Setter + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &77253731 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 77253730} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1044852944} + - {fileID: 182125734} + - {fileID: 1930624479} + - {fileID: 504684435} + - {fileID: 2124901094} + m_Father: {fileID: 178133868} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 16, y: -16} + m_SizeDelta: {x: 528, y: 180.60999} + m_Pivot: {x: 0, y: 1} +--- !u!114 &77253732 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 77253730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d73bf03f88f371469fd7b43fc97d77e, type: 3} + m_Name: + m_EditorClassIdentifier: + variableJoystick: {fileID: 1516936395} + valueText: {fileID: 2124901095} + background: {fileID: 1097890153} + axisSprites: + - {fileID: 21300000, guid: 5b56d9fa0e8bd6e409ed188db38a692c, type: 3} + - {fileID: 21300000, guid: cd0a2c1b2c014ba4c80c1df786e150e9, type: 3} + - {fileID: 21300000, guid: f054197ef28924b4986cbd91de2ab054, type: 3} +--- !u!114 &77253733 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 77253730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &77253734 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 77253730} + m_CullTransparentMesh: 0 +--- !u!1 &85744408 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 85744409} + - component: {fileID: 85744411} + - component: {fileID: 85744410} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &85744409 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 85744408} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1044852944} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -15, y: 0} + m_SizeDelta: {x: 30, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &85744410 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 85744408} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10915, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &85744411 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 85744408} + m_CullTransparentMesh: 0 +--- !u!1 &88410010 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 88410013} + - component: {fileID: 88410012} + - component: {fileID: 88410011} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &88410011 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 88410010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &88410012 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 88410010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &88410013 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 88410010} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1173883496} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &128822942 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 128822943} + - component: {fileID: 128822945} + - component: {fileID: 128822944} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &128822943 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 128822942} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 709699959} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &128822944 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 128822942} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &128822945 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 128822942} + m_CullTransparentMesh: 0 +--- !u!1 &153847399 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 153847400} + - component: {fileID: 153847402} + - component: {fileID: 153847401} + m_Layer: 5 + m_Name: Item Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &153847400 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 153847399} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1715746912} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &153847401 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 153847399} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &153847402 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 153847399} + m_CullTransparentMesh: 0 +--- !u!1001 &168280668 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 178133868} + m_Modifications: + - target: {fileID: 3881087803549984437, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_Name + value: Variable Joystick + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984437, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_SizeDelta.x + value: 960 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_SizeDelta.y + value: 1080 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803815115471, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803815115471, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803815115471, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 256 + objectReference: {fileID: 0} + - target: {fileID: 3881087803815115471, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3881087803815115471, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 256 + objectReference: {fileID: 0} + - target: {fileID: 3881087803815115471, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3881087803815115471, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803815115471, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3881087803815115471, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_SizeDelta.x + value: 256 + objectReference: {fileID: 0} + - target: {fileID: 3881087803815115471, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_SizeDelta.y + value: 256 + objectReference: {fileID: 0} + - target: {fileID: 3881087804030458062, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3881087804030458062, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3881087804030458062, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3881087804030458062, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3881087804030458062, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3881087804030458062, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3881087804030458062, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3881087804030458062, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_SizeDelta.x + value: 128 + objectReference: {fileID: 0} + - target: {fileID: 3881087804030458062, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_SizeDelta.y + value: 128 + objectReference: {fileID: 0} + - target: {fileID: 3881087804030458062, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3881087804030458062, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3881087803815115470, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 5b56d9fa0e8bd6e409ed188db38a692c, + type: 3} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ec536a7718376554185e4a856d5ae230, type: 3} +--- !u!1 &178133864 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 1039008163767426, guid: bdab641ab571d8c4396d974b8c05946b, + type: 2} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 178133868} + - component: {fileID: 178133867} + - component: {fileID: 178133866} + - component: {fileID: 178133865} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &178133865 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 114157026685682676, guid: bdab641ab571d8c4396d974b8c05946b, + type: 2} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 178133864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &178133866 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 114777485009988760, guid: bdab641ab571d8c4396d974b8c05946b, + type: 2} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 178133864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &178133867 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 223229248531190414, guid: bdab641ab571d8c4396d974b8c05946b, + type: 2} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 178133864} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 1508378257} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 1 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &178133868 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 224930729106539272, guid: bdab641ab571d8c4396d974b8c05946b, + type: 2} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 178133864} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1516936394} + - {fileID: 77253731} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &182125733 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 182125734} + - component: {fileID: 182125737} + - component: {fileID: 182125736} + - component: {fileID: 182125735} + m_Layer: 5 + m_Name: Axis Options Dropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &182125734 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 182125733} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1060911001} + - {fileID: 55167084} + - {fileID: 1321228101} + m_Father: {fileID: 77253731} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 272, y: -16} + m_SizeDelta: {x: 240, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!114 &182125735 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 182125733} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 853051423, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 182125736} + m_Template: {fileID: 1321228101} + m_CaptionText: {fileID: 1060911002} + m_CaptionImage: {fileID: 0} + m_ItemText: {fileID: 406152307} + m_ItemImage: {fileID: 0} + m_Value: 0 + m_Options: + m_Options: + - m_Text: Both + m_Image: {fileID: 0} + - m_Text: Horizontal + m_Image: {fileID: 0} + - m_Text: Vertical + m_Image: {fileID: 0} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 77253732} + m_MethodName: AxisChanged + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Dropdown+DropdownEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &182125736 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 182125733} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &182125737 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 182125733} + m_CullTransparentMesh: 0 +--- !u!1 &224483099 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224483100} + m_Layer: 0 + m_Name: Base + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &224483100 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 224483099} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 525183503} + - {fileID: 2020073851} + - {fileID: 958289013} + - {fileID: 1721124780} + - {fileID: 2009203186} + m_Father: {fileID: 1173883496} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &406152305 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 406152306} + - component: {fileID: 406152308} + - component: {fileID: 406152307} + m_Layer: 5 + m_Name: Item Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &406152306 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 406152305} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1715746912} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 10, y: -0.5} + m_SizeDelta: {x: -40, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &406152307 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 406152305} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Option A +--- !u!222 &406152308 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 406152305} + m_CullTransparentMesh: 0 +--- !u!1 &409414349 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 409414350} + - component: {fileID: 409414353} + - component: {fileID: 409414352} + - component: {fileID: 409414351} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &409414350 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 409414349} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1118590116} + m_Father: {fileID: 1122998155} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!114 &409414351 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 409414349} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2061169968, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2028141435} + m_HandleRect: {fileID: 2028141434} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &409414352 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 409414349} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &409414353 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 409414349} + m_CullTransparentMesh: 0 +--- !u!1 &424429880 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 424429881} + - component: {fileID: 424429883} + - component: {fileID: 424429882} + m_Layer: 5 + m_Name: Item Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &424429881 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 424429880} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1372597839} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 15, y: 0} + m_SizeDelta: {x: 30, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &424429882 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 424429880} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &424429883 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 424429880} + m_CullTransparentMesh: 0 +--- !u!1 &504684434 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 504684435} + - component: {fileID: 504684436} + m_Layer: 5 + m_Name: Snap Y Toggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &504684435 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 504684434} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 709699959} + - {fileID: 1980481334} + m_Father: {fileID: 77253731} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 272, y: -72} + m_SizeDelta: {x: 240, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!114 &504684436 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 504684434} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 2109663825, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 709699960} + toggleTransition: 1 + graphic: {fileID: 128822944} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 77253732} + m_MethodName: SnapY + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IsOn: 0 +--- !u!1 &525183502 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 525183503} + - component: {fileID: 525183506} + - component: {fileID: 525183505} + - component: {fileID: 525183504} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &525183503 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 525183502} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: -1, z: 0} + m_LocalScale: {x: 22, y: 1, z: 22} + m_Children: [] + m_Father: {fileID: 224483100} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &525183504 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 525183502} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &525183505 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 525183502} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c569c280f0eb52a49a7b2a6b8b0cbcf8, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &525183506 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 525183502} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &709699958 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 709699959} + - component: {fileID: 709699961} + - component: {fileID: 709699960} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &709699959 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 709699958} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 128822943} + m_Father: {fileID: 504684435} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!114 &709699960 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 709699958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &709699961 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 709699958} + m_CullTransparentMesh: 0 +--- !u!1 &958289012 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 958289013} + - component: {fileID: 958289016} + - component: {fileID: 958289015} + - component: {fileID: 958289014} + m_Layer: 0 + m_Name: Cube (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &958289013 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 958289012} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10.5} + m_LocalScale: {x: 22, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224483100} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &958289014 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 958289012} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &958289015 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 958289012} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c569c280f0eb52a49a7b2a6b8b0cbcf8, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &958289016 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 958289012} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &992049848 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 992049849} + - component: {fileID: 992049851} + - component: {fileID: 992049850} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &992049849 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 992049848} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1998798693} + m_Father: {fileID: 1930624479} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!114 &992049850 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 992049848} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &992049851 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 992049848} + m_CullTransparentMesh: 0 +--- !u!1 &1003205116 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1003205117} + - component: {fileID: 1003205119} + - component: {fileID: 1003205118} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1003205117 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1003205116} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1497821473} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.81333333} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1003205118 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1003205116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &1003205119 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1003205116} + m_CullTransparentMesh: 0 +--- !u!1 &1020672652 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1020672653} + - component: {fileID: 1020672655} + - component: {fileID: 1020672654} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1020672653 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1020672652} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1930624479} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 25.220001, y: -0.5} + m_SizeDelta: {x: -60.45, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1020672654 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1020672652} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Snap X +--- !u!222 &1020672655 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1020672652} + m_CullTransparentMesh: 0 +--- !u!1 &1044852943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1044852944} + - component: {fileID: 1044852947} + - component: {fileID: 1044852946} + - component: {fileID: 1044852945} + m_Layer: 5 + m_Name: Joystick Type Dropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1044852944 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1044852943} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1644771974} + - {fileID: 85744409} + - {fileID: 1122998155} + m_Father: {fileID: 77253731} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 16, y: -16} + m_SizeDelta: {x: 240, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1044852945 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1044852943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 853051423, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1044852946} + m_Template: {fileID: 1122998155} + m_CaptionText: {fileID: 1644771975} + m_CaptionImage: {fileID: 0} + m_ItemText: {fileID: 1180746169} + m_ItemImage: {fileID: 0} + m_Value: 0 + m_Options: + m_Options: + - m_Text: Fixed + m_Image: {fileID: 0} + - m_Text: Floating + m_Image: {fileID: 0} + - m_Text: Dynamic + m_Image: {fileID: 0} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 77253732} + m_MethodName: ModeChanged + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Dropdown+DropdownEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1044852946 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1044852943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &1044852947 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1044852943} + m_CullTransparentMesh: 0 +--- !u!1 &1060911000 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1060911001} + - component: {fileID: 1060911003} + - component: {fileID: 1060911002} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1060911001 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1060911000} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 182125734} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -10, y: -0.5} + m_SizeDelta: {x: -40, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1060911002 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1060911000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Both +--- !u!222 &1060911003 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1060911000} + m_CullTransparentMesh: 0 +--- !u!114 &1097890153 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3881087803815115470, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + m_PrefabInstance: {fileID: 168280668} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1118590115 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1118590116} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1118590116 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1118590115} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2028141434} + m_Father: {fileID: 409414350} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1122998154 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1122998155} + - component: {fileID: 1122998158} + - component: {fileID: 1122998157} + - component: {fileID: 1122998156} + m_Layer: 5 + m_Name: Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1122998155 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1122998154} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1987969637} + - {fileID: 409414350} + m_Father: {fileID: 1044852944} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1122998156 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1122998154} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1367256648, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 2042663377} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 1987969637} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 409414351} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1122998157 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1122998154} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &1122998158 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1122998154} + m_CullTransparentMesh: 0 +--- !u!1 &1128328563 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1128328565} + - component: {fileID: 1128328564} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1128328564 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1128328563} + m_Enabled: 1 + serializedVersion: 8 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.1 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1128328565 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1128328563} + m_LocalRotation: {x: 0.2718331, y: 0.5245417, z: -0.20521581, w: 0.7802879} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1173883496} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 39.755, y: 66.876, z: -2.615} +--- !u!1 &1173883495 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1173883496} + m_Layer: 0 + m_Name: Scene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1173883496 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1173883495} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 88410013} + - {fileID: 1128328565} + - {fileID: 1508378258} + - {fileID: 224483100} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1180746167 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1180746168} + - component: {fileID: 1180746170} + - component: {fileID: 1180746169} + m_Layer: 5 + m_Name: Item Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1180746168 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1180746167} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1372597839} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 10, y: -0.5} + m_SizeDelta: {x: -40, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1180746169 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1180746167} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Option A +--- !u!222 &1180746170 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1180746167} + m_CullTransparentMesh: 0 +--- !u!1 &1200149122 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1200149123} + - component: {fileID: 1200149126} + - component: {fileID: 1200149125} + - component: {fileID: 1200149124} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1200149123 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1200149122} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1497821473} + m_Father: {fileID: 1321228101} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!114 &1200149124 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1200149122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2061169968, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1003205118} + m_HandleRect: {fileID: 1003205117} + m_Direction: 2 + m_Value: 0 + m_Size: 0.81333333 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1200149125 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1200149122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &1200149126 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1200149122} + m_CullTransparentMesh: 0 +--- !u!1 &1321228100 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1321228101} + - component: {fileID: 1321228104} + - component: {fileID: 1321228103} + - component: {fileID: 1321228102} + m_Layer: 5 + m_Name: Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1321228101 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1321228100} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1982638946} + - {fileID: 1200149123} + m_Father: {fileID: 182125734} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1321228102 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1321228100} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1367256648, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 2048091966} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 1982638946} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 1200149124} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1321228103 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1321228100} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &1321228104 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1321228100} + m_CullTransparentMesh: 0 +--- !u!1 &1372597838 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1372597839} + - component: {fileID: 1372597840} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1372597839 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1372597838} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1942410676} + - {fileID: 424429881} + - {fileID: 1180746168} + m_Father: {fileID: 2042663377} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1372597840 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1372597838} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 2109663825, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1942410677} + toggleTransition: 1 + graphic: {fileID: 424429882} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IsOn: 1 +--- !u!1 &1497821472 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1497821473} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1497821473 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1497821472} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1003205117} + m_Father: {fileID: 1200149123} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1508378253 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1508378258} + - component: {fileID: 1508378257} + - component: {fileID: 1508378255} + - component: {fileID: 1508378254} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1508378254 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1508378253} + m_Enabled: 1 +--- !u!124 &1508378255 +Behaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1508378253} + m_Enabled: 1 +--- !u!20 &1508378257 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1508378253} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.13207549, g: 0.13207549, b: 0.13207549, a: 0} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1508378258 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1508378253} + m_LocalRotation: {x: 0.5, y: 0, z: 0, w: 0.8660254} + m_LocalPosition: {x: 0, y: 16.89, z: -12.22} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1173883496} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 60, y: 0, z: 0} +--- !u!224 &1516936394 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3881087803549984436, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + m_PrefabInstance: {fileID: 168280668} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1516936395 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3881087803549984439, guid: ec536a7718376554185e4a856d5ae230, + type: 3} + m_PrefabInstance: {fileID: 168280668} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 42844a4fccbd54746b90cade4ff70f73, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1644771973 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1644771974} + - component: {fileID: 1644771976} + - component: {fileID: 1644771975} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1644771974 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1644771973} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1044852944} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -10, y: -0.5} + m_SizeDelta: {x: -40, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1644771975 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1644771973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Fixed +--- !u!222 &1644771976 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1644771973} + m_CullTransparentMesh: 0 +--- !u!1 &1715746911 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1715746912} + - component: {fileID: 1715746913} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1715746912 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1715746911} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 153847400} + - {fileID: 1861031233} + - {fileID: 406152306} + m_Father: {fileID: 2048091966} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1715746913 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1715746911} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 2109663825, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 153847401} + toggleTransition: 1 + graphic: {fileID: 1861031234} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IsOn: 1 +--- !u!1 &1721124779 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1721124780} + - component: {fileID: 1721124783} + - component: {fileID: 1721124782} + - component: {fileID: 1721124781} + m_Layer: 0 + m_Name: Cube (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1721124780 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1721124779} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 10.5, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 20} + m_Children: [] + m_Father: {fileID: 224483100} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1721124781 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1721124779} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1721124782 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1721124779} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c569c280f0eb52a49a7b2a6b8b0cbcf8, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1721124783 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1721124779} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1861031232 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1861031233} + - component: {fileID: 1861031235} + - component: {fileID: 1861031234} + m_Layer: 5 + m_Name: Item Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1861031233 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1861031232} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1715746912} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 15, y: 0} + m_SizeDelta: {x: 30, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1861031234 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1861031232} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &1861031235 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1861031232} + m_CullTransparentMesh: 0 +--- !u!1 &1928095039 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1928095045} + - component: {fileID: 1928095044} + - component: {fileID: 1928095043} + - component: {fileID: 1928095042} + - component: {fileID: 1928095041} + - component: {fileID: 1928095040} + m_Layer: 0 + m_Name: Player + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!54 &1928095040 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1928095039} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &1928095041 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1928095039} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a37d705c8e9115e439ec799186182634, type: 3} + m_Name: + m_EditorClassIdentifier: + speed: 20 + variableJoystick: {fileID: 1516936395} + rb: {fileID: 1928095040} +--- !u!135 &1928095042 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1928095039} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1928095043 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1928095039} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 59e4faf24927edf4a82f463ad16f1c37, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1928095044 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1928095039} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1928095045 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1928095039} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1930624478 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1930624479} + - component: {fileID: 1930624480} + m_Layer: 5 + m_Name: Snap X Toggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1930624479 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1930624478} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 992049849} + - {fileID: 1020672653} + m_Father: {fileID: 77253731} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 16, y: -72} + m_SizeDelta: {x: 240, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1930624480 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1930624478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 2109663825, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 992049850} + toggleTransition: 1 + graphic: {fileID: 1998798694} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 77253732} + m_MethodName: SnapX + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IsOn: 0 +--- !u!1 &1942410675 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1942410676} + - component: {fileID: 1942410678} + - component: {fileID: 1942410677} + m_Layer: 5 + m_Name: Item Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1942410676 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1942410675} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1372597839} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1942410677 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1942410675} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &1942410678 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1942410675} + m_CullTransparentMesh: 0 +--- !u!1 &1980481333 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1980481334} + - component: {fileID: 1980481336} + - component: {fileID: 1980481335} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1980481334 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1980481333} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 504684435} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 25.220001, y: -0.5} + m_SizeDelta: {x: -60.45, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1980481335 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1980481333} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Snap Y +--- !u!222 &1980481336 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1980481333} + m_CullTransparentMesh: 0 +--- !u!1 &1982638945 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1982638946} + - component: {fileID: 1982638949} + - component: {fileID: 1982638948} + - component: {fileID: 1982638947} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1982638946 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1982638945} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2048091966} + m_Father: {fileID: 1321228101} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -17, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1982638947 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1982638945} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &1982638948 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1982638945} + m_CullTransparentMesh: 0 +--- !u!114 &1982638949 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1982638945} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &1987969636 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1987969637} + - component: {fileID: 1987969640} + - component: {fileID: 1987969639} + - component: {fileID: 1987969638} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1987969637 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1987969636} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2042663377} + m_Father: {fileID: 1122998155} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -17, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1987969638 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1987969636} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &1987969639 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1987969636} + m_CullTransparentMesh: 0 +--- !u!114 &1987969640 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1987969636} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &1998798692 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1998798693} + - component: {fileID: 1998798695} + - component: {fileID: 1998798694} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1998798693 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1998798692} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 992049849} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1998798694 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1998798692} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &1998798695 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1998798692} + m_CullTransparentMesh: 0 +--- !u!1 &2009203185 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2009203186} + - component: {fileID: 2009203189} + - component: {fileID: 2009203188} + - component: {fileID: 2009203187} + m_Layer: 0 + m_Name: Cube (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2009203186 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2009203185} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -10.5, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 20} + m_Children: [] + m_Father: {fileID: 224483100} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2009203187 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2009203185} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2009203188 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2009203185} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c569c280f0eb52a49a7b2a6b8b0cbcf8, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &2009203189 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2009203185} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2020073850 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2020073851} + - component: {fileID: 2020073854} + - component: {fileID: 2020073853} + - component: {fileID: 2020073852} + m_Layer: 0 + m_Name: Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2020073851 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2020073850} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 10.5} + m_LocalScale: {x: 22, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224483100} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2020073852 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2020073850} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2020073853 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2020073850} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c569c280f0eb52a49a7b2a6b8b0cbcf8, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &2020073854 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2020073850} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2028141433 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2028141434} + - component: {fileID: 2028141436} + - component: {fileID: 2028141435} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2028141434 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2028141433} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1118590116} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2028141435 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2028141433} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &2028141436 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2028141433} + m_CullTransparentMesh: 0 +--- !u!1 &2042663376 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2042663377} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2042663377 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2042663376} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1372597839} + m_Father: {fileID: 1987969637} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 28} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &2048091965 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2048091966} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2048091966 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2048091965} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1715746912} + m_Father: {fileID: 1982638946} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 28} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &2124901093 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2124901094} + - component: {fileID: 2124901096} + - component: {fileID: 2124901095} + m_Layer: 5 + m_Name: Value Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2124901094 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2124901093} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 77253731} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 16, y: -128} + m_SizeDelta: {x: 496, y: 45} + m_Pivot: {x: 0, y: 1} +--- !u!114 &2124901095 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2124901093} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 28 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Current Value: (0.0, 0.0)' +--- !u!222 &2124901096 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2124901093} + m_CullTransparentMesh: 0 diff --git a/Assets/Joystick Pack/Examples/Example Scene.unity.meta b/Assets/Joystick Pack/Examples/Example Scene.unity.meta new file mode 100644 index 00000000..9a7cba1b --- /dev/null +++ b/Assets/Joystick Pack/Examples/Example Scene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 414bddd31c5ea4f4c9f5d1452e5bbb41 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Examples/Ground.mat b/Assets/Joystick Pack/Examples/Ground.mat new file mode 100644 index 00000000..03971b6b --- /dev/null +++ b/Assets/Joystick Pack/Examples/Ground.mat @@ -0,0 +1,77 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Ground + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.372, g: 0.36052892, b: 0.351168, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Joystick Pack/Examples/Ground.mat.meta b/Assets/Joystick Pack/Examples/Ground.mat.meta new file mode 100644 index 00000000..db78d313 --- /dev/null +++ b/Assets/Joystick Pack/Examples/Ground.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c569c280f0eb52a49a7b2a6b8b0cbcf8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Examples/JoystickPlayerExample.cs b/Assets/Joystick Pack/Examples/JoystickPlayerExample.cs new file mode 100644 index 00000000..945a3774 --- /dev/null +++ b/Assets/Joystick Pack/Examples/JoystickPlayerExample.cs @@ -0,0 +1,16 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class JoystickPlayerExample : MonoBehaviour +{ + public float speed; + public VariableJoystick variableJoystick; + public Rigidbody rb; + + public void FixedUpdate() + { + Vector3 direction = Vector3.forward * variableJoystick.Vertical + Vector3.right * variableJoystick.Horizontal; + rb.AddForce(direction * speed * Time.fixedDeltaTime, ForceMode.VelocityChange); + } +} \ No newline at end of file diff --git a/Assets/Joystick Pack/Examples/JoystickPlayerExample.cs.meta b/Assets/Joystick Pack/Examples/JoystickPlayerExample.cs.meta new file mode 100644 index 00000000..35e6e145 --- /dev/null +++ b/Assets/Joystick Pack/Examples/JoystickPlayerExample.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a37d705c8e9115e439ec799186182634 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Examples/JoystickSetterExample.cs b/Assets/Joystick Pack/Examples/JoystickSetterExample.cs new file mode 100644 index 00000000..0a22e479 --- /dev/null +++ b/Assets/Joystick Pack/Examples/JoystickSetterExample.cs @@ -0,0 +1,66 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class JoystickSetterExample : MonoBehaviour +{ + public VariableJoystick variableJoystick; + public Text valueText; + public Image background; + public Sprite[] axisSprites; + + public void ModeChanged(int index) + { + switch(index) + { + case 0: + variableJoystick.SetMode(JoystickType.Fixed); + break; + case 1: + variableJoystick.SetMode(JoystickType.Floating); + break; + case 2: + variableJoystick.SetMode(JoystickType.Dynamic); + break; + default: + break; + } + } + + public void AxisChanged(int index) + { + switch (index) + { + case 0: + variableJoystick.AxisOptions = AxisOptions.Both; + background.sprite = axisSprites[index]; + break; + case 1: + variableJoystick.AxisOptions = AxisOptions.Horizontal; + background.sprite = axisSprites[index]; + break; + case 2: + variableJoystick.AxisOptions = AxisOptions.Vertical; + background.sprite = axisSprites[index]; + break; + default: + break; + } + } + + public void SnapX(bool value) + { + variableJoystick.SnapX = value; + } + + public void SnapY(bool value) + { + variableJoystick.SnapY = value; + } + + private void Update() + { + valueText.text = "Current Value: " + variableJoystick.Direction; + } +} \ No newline at end of file diff --git a/Assets/Joystick Pack/Examples/JoystickSetterExample.cs.meta b/Assets/Joystick Pack/Examples/JoystickSetterExample.cs.meta new file mode 100644 index 00000000..608ea91c --- /dev/null +++ b/Assets/Joystick Pack/Examples/JoystickSetterExample.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3d73bf03f88f371469fd7b43fc97d77e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Examples/Player.mat b/Assets/Joystick Pack/Examples/Player.mat new file mode 100644 index 00000000..7323a33c --- /dev/null +++ b/Assets/Joystick Pack/Examples/Player.mat @@ -0,0 +1,77 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Player + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0, g: 0.5844655, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Joystick Pack/Examples/Player.mat.meta b/Assets/Joystick Pack/Examples/Player.mat.meta new file mode 100644 index 00000000..76531a05 --- /dev/null +++ b/Assets/Joystick Pack/Examples/Player.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 59e4faf24927edf4a82f463ad16f1c37 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Prefabs.meta b/Assets/Joystick Pack/Prefabs.meta new file mode 100644 index 00000000..247e53b3 --- /dev/null +++ b/Assets/Joystick Pack/Prefabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d41e4075f56d1e1438b3af3673ec6081 +folderAsset: yes +timeCreated: 1513538369 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Prefabs/Dynamic Joystick.prefab b/Assets/Joystick Pack/Prefabs/Dynamic Joystick.prefab new file mode 100644 index 00000000..92faaf40 --- /dev/null +++ b/Assets/Joystick Pack/Prefabs/Dynamic Joystick.prefab @@ -0,0 +1,247 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8135886326569738825 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8135886326569738822} + - component: {fileID: 8135886326569738821} + - component: {fileID: 8135886326569738820} + - component: {fileID: 8135886326569738823} + m_Layer: 5 + m_Name: Dynamic Joystick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8135886326569738822 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8135886326569738825} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8135886327475159579} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 960, y: 645} + m_Pivot: {x: 0, y: 0} +--- !u!222 &8135886326569738821 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8135886326569738825} + m_CullTransparentMesh: 0 +--- !u!114 &8135886326569738820 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8135886326569738825} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &8135886326569738823 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8135886326569738825} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ba0d0e7a039f526499c356a3c5cd6d3f, type: 3} + m_Name: + m_EditorClassIdentifier: + handleRange: 1 + deadZone: 0 + axisOptions: 0 + snapX: 0 + snapY: 0 + background: {fileID: 8135886327475159579} + handle: {fileID: 8135886327784587633} + moveThreshold: 1 +--- !u!1 &8135886327475159578 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8135886327475159579} + - component: {fileID: 8135886327475159577} + - component: {fileID: 8135886327475159576} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8135886327475159579 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8135886327475159578} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8135886327784587633} + m_Father: {fileID: 8135886326569738822} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 256, y: 256} + m_SizeDelta: {x: 256, y: 256} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8135886327475159577 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8135886327475159578} + m_CullTransparentMesh: 0 +--- !u!114 &8135886327475159576 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8135886327475159578} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 5b56d9fa0e8bd6e409ed188db38a692c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &8135886327784587632 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8135886327784587633} + - component: {fileID: 8135886327784587631} + - component: {fileID: 8135886327784587630} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8135886327784587633 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8135886327784587632} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8135886327475159579} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 128, y: 128} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8135886327784587631 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8135886327784587632} + m_CullTransparentMesh: 0 +--- !u!114 &8135886327784587630 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8135886327784587632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 010a6e5305fa7004f89c5d317b7b47d4, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 diff --git a/Assets/Joystick Pack/Prefabs/Dynamic Joystick.prefab.meta b/Assets/Joystick Pack/Prefabs/Dynamic Joystick.prefab.meta new file mode 100644 index 00000000..a54c485e --- /dev/null +++ b/Assets/Joystick Pack/Prefabs/Dynamic Joystick.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 56fae09712773584fb63896d473a98ee +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Prefabs/Fixed Joystick.prefab b/Assets/Joystick Pack/Prefabs/Fixed Joystick.prefab new file mode 100644 index 00000000..e69204b1 --- /dev/null +++ b/Assets/Joystick Pack/Prefabs/Fixed Joystick.prefab @@ -0,0 +1,168 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2929252283123773939 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2929252283123773938} + - component: {fileID: 2929252283123773936} + - component: {fileID: 2929252283123773937} + - component: {fileID: 2929252283123773951} + m_Layer: 5 + m_Name: Fixed Joystick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2929252283123773938 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2929252283123773939} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2929252285020697096} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 256, y: 256} + m_SizeDelta: {x: 256, y: 256} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2929252283123773936 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2929252283123773939} + m_CullTransparentMesh: 0 +--- !u!114 &2929252283123773937 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2929252283123773939} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 5b56d9fa0e8bd6e409ed188db38a692c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &2929252283123773951 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2929252283123773939} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45977bbae16431c46a013576a1aea384, type: 3} + m_Name: + m_EditorClassIdentifier: + handleRange: 1 + deadZone: 0 + background: {fileID: 2929252283123773938} + handle: {fileID: 2929252285020697096} +--- !u!1 &2929252285020697097 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2929252285020697096} + - component: {fileID: 2929252285020698102} + - component: {fileID: 2929252285020698103} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2929252285020697096 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2929252285020697097} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2929252283123773938} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 128, y: 128} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2929252285020698102 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2929252285020697097} + m_CullTransparentMesh: 0 +--- !u!114 &2929252285020698103 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2929252285020697097} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 010a6e5305fa7004f89c5d317b7b47d4, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 diff --git a/Assets/Joystick Pack/Prefabs/Fixed Joystick.prefab.meta b/Assets/Joystick Pack/Prefabs/Fixed Joystick.prefab.meta new file mode 100644 index 00000000..21eaf99e --- /dev/null +++ b/Assets/Joystick Pack/Prefabs/Fixed Joystick.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: aaa2c939c0359ac4dbce3f49e8b90252 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Prefabs/Floating Joystick.prefab b/Assets/Joystick Pack/Prefabs/Floating Joystick.prefab new file mode 100644 index 00000000..c49dfe0c --- /dev/null +++ b/Assets/Joystick Pack/Prefabs/Floating Joystick.prefab @@ -0,0 +1,246 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8170153791668043269 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8170153791668043268} + - component: {fileID: 8170153791668043270} + - component: {fileID: 8170153791668043271} + - component: {fileID: 8170153791668043265} + m_Layer: 5 + m_Name: Floating Joystick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8170153791668043268 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8170153791668043269} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8170153792821263258} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 960, y: 645} + m_Pivot: {x: 0, y: 0} +--- !u!222 &8170153791668043270 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8170153791668043269} + m_CullTransparentMesh: 0 +--- !u!114 &8170153791668043271 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8170153791668043269} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &8170153791668043265 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8170153791668043269} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a47f546fc70ec8428172694e78e4288, type: 3} + m_Name: + m_EditorClassIdentifier: + handleRange: 1 + deadZone: 0 + axisOptions: 0 + snapX: 0 + snapY: 0 + background: {fileID: 8170153792821263258} + handle: {fileID: 8170153791961219456} +--- !u!1 &8170153791961219457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8170153791961219456} + - component: {fileID: 8170153791961219458} + - component: {fileID: 8170153791961219459} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8170153791961219456 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8170153791961219457} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8170153792821263258} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 128, y: 128} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8170153791961219458 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8170153791961219457} + m_CullTransparentMesh: 0 +--- !u!114 &8170153791961219459 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8170153791961219457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 010a6e5305fa7004f89c5d317b7b47d4, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &8170153792821263259 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8170153792821263258} + - component: {fileID: 8170153792821263255} + - component: {fileID: 8170153792821263252} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8170153792821263258 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8170153792821263259} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8170153791961219456} + m_Father: {fileID: 8170153791668043268} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 256, y: 256} + m_SizeDelta: {x: 256, y: 256} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8170153792821263255 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8170153792821263259} + m_CullTransparentMesh: 0 +--- !u!114 &8170153792821263252 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8170153792821263259} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 5b56d9fa0e8bd6e409ed188db38a692c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 diff --git a/Assets/Joystick Pack/Prefabs/Floating Joystick.prefab.meta b/Assets/Joystick Pack/Prefabs/Floating Joystick.prefab.meta new file mode 100644 index 00000000..d89f2415 --- /dev/null +++ b/Assets/Joystick Pack/Prefabs/Floating Joystick.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0d230cc8be529a542a08cb878ab14b18 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Prefabs/Variable Joystick.prefab b/Assets/Joystick Pack/Prefabs/Variable Joystick.prefab new file mode 100644 index 00000000..449d47c5 --- /dev/null +++ b/Assets/Joystick Pack/Prefabs/Variable Joystick.prefab @@ -0,0 +1,248 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3881087803549984437 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3881087803549984436} + - component: {fileID: 3881087803549984433} + - component: {fileID: 3881087803549984438} + - component: {fileID: 3881087803549984439} + m_Layer: 5 + m_Name: Variable Joystick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3881087803549984436 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3881087803549984437} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3881087803815115471} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 960, y: 645} + m_Pivot: {x: 0, y: 0} +--- !u!222 &3881087803549984433 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3881087803549984437} + m_CullTransparentMesh: 0 +--- !u!114 &3881087803549984438 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3881087803549984437} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &3881087803549984439 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3881087803549984437} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 42844a4fccbd54746b90cade4ff70f73, type: 3} + m_Name: + m_EditorClassIdentifier: + handleRange: 1 + deadZone: 0 + axisOptions: 0 + snapX: 0 + snapY: 0 + background: {fileID: 3881087803815115471} + handle: {fileID: 3881087804030458062} + moveThreshold: 1 + joystickType: 0 +--- !u!1 &3881087803815115468 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3881087803815115471} + - component: {fileID: 3881087803815115465} + - component: {fileID: 3881087803815115470} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3881087803815115471 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3881087803815115468} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3881087804030458062} + m_Father: {fileID: 3881087803549984436} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 256, y: 256} + m_SizeDelta: {x: 256, y: 256} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3881087803815115465 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3881087803815115468} + m_CullTransparentMesh: 0 +--- !u!114 &3881087803815115470 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3881087803815115468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 5b56d9fa0e8bd6e409ed188db38a692c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &3881087804030458063 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3881087804030458062} + - component: {fileID: 3881087804030458056} + - component: {fileID: 3881087804030458057} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3881087804030458062 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3881087804030458063} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3881087803815115471} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 128, y: 128} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3881087804030458056 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3881087804030458063} + m_CullTransparentMesh: 0 +--- !u!114 &3881087804030458057 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3881087804030458063} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 010a6e5305fa7004f89c5d317b7b47d4, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 diff --git a/Assets/Joystick Pack/Prefabs/Variable Joystick.prefab.meta b/Assets/Joystick Pack/Prefabs/Variable Joystick.prefab.meta new file mode 100644 index 00000000..cf4bc7ff --- /dev/null +++ b/Assets/Joystick Pack/Prefabs/Variable Joystick.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ec536a7718376554185e4a856d5ae230 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Scripts.meta b/Assets/Joystick Pack/Scripts.meta new file mode 100644 index 00000000..583b2385 --- /dev/null +++ b/Assets/Joystick Pack/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 07b685cbd69eaf049b40883b45f5bae2 +folderAsset: yes +timeCreated: 1513537854 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Scripts/Base.meta b/Assets/Joystick Pack/Scripts/Base.meta new file mode 100644 index 00000000..48ea68af --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Base.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 04bf1fec540b6ee4987dc6524756477c +folderAsset: yes +timeCreated: 1513537865 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Scripts/Base/Joystick.cs b/Assets/Joystick Pack/Scripts/Base/Joystick.cs new file mode 100644 index 00000000..656d714a --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Base/Joystick.cs @@ -0,0 +1,150 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +public class Joystick : MonoBehaviour, IPointerDownHandler, IDragHandler, IPointerUpHandler +{ + public float Horizontal { get { return (snapX) ? SnapFloat(input.x, AxisOptions.Horizontal) : input.x; } } + public float Vertical { get { return (snapY) ? SnapFloat(input.y, AxisOptions.Vertical) : input.y; } } + public Vector2 Direction { get { return new Vector2(Horizontal, Vertical); } } + + public float HandleRange + { + get { return handleRange; } + set { handleRange = Mathf.Abs(value); } + } + + public float DeadZone + { + get { return deadZone; } + set { deadZone = Mathf.Abs(value); } + } + + public AxisOptions AxisOptions { get { return AxisOptions; } set { axisOptions = value; } } + public bool SnapX { get { return snapX; } set { snapX = value; } } + public bool SnapY { get { return snapY; } set { snapY = value; } } + + [SerializeField] private float handleRange = 1; + [SerializeField] private float deadZone = 0; + [SerializeField] private AxisOptions axisOptions = AxisOptions.Both; + [SerializeField] private bool snapX = false; + [SerializeField] private bool snapY = false; + + [SerializeField] protected RectTransform background = null; + [SerializeField] private RectTransform handle = null; + private RectTransform baseRect = null; + + private Canvas canvas; + private Camera cam; + + private Vector2 input = Vector2.zero; + + protected virtual void Start() + { + HandleRange = handleRange; + DeadZone = deadZone; + baseRect = GetComponent(); + canvas = GetComponentInParent(); + if (canvas == null) + Debug.LogError("The Joystick is not placed inside a canvas"); + + Vector2 center = new Vector2(0.5f, 0.5f); + background.pivot = center; + handle.anchorMin = center; + handle.anchorMax = center; + handle.pivot = center; + handle.anchoredPosition = Vector2.zero; + } + + public virtual void OnPointerDown(PointerEventData eventData) + { + OnDrag(eventData); + } + + public void OnDrag(PointerEventData eventData) + { + cam = null; + if (canvas.renderMode == RenderMode.ScreenSpaceCamera) + cam = canvas.worldCamera; + + Vector2 position = RectTransformUtility.WorldToScreenPoint(cam, background.position); + Vector2 radius = background.sizeDelta / 2; + input = (eventData.position - position) / (radius * canvas.scaleFactor); + FormatInput(); + HandleInput(input.magnitude, input.normalized, radius, cam); + handle.anchoredPosition = input * radius * handleRange; + } + + protected virtual void HandleInput(float magnitude, Vector2 normalised, Vector2 radius, Camera cam) + { + if (magnitude > deadZone) + { + if (magnitude > 1) + input = normalised; + } + else + input = Vector2.zero; + } + + private void FormatInput() + { + if (axisOptions == AxisOptions.Horizontal) + input = new Vector2(input.x, 0f); + else if (axisOptions == AxisOptions.Vertical) + input = new Vector2(0f, input.y); + } + + private float SnapFloat(float value, AxisOptions snapAxis) + { + if (value == 0) + return value; + + if (axisOptions == AxisOptions.Both) + { + float angle = Vector2.Angle(input, Vector2.up); + if (snapAxis == AxisOptions.Horizontal) + { + if (angle < 22.5f || angle > 157.5f) + return 0; + else + return (value > 0) ? 1 : -1; + } + else if (snapAxis == AxisOptions.Vertical) + { + if (angle > 67.5f && angle < 112.5f) + return 0; + else + return (value > 0) ? 1 : -1; + } + return value; + } + else + { + if (value > 0) + return 1; + if (value < 0) + return -1; + } + return 0; + } + + public virtual void OnPointerUp(PointerEventData eventData) + { + input = Vector2.zero; + handle.anchoredPosition = Vector2.zero; + } + + protected Vector2 ScreenPointToAnchoredPosition(Vector2 screenPosition) + { + Vector2 localPoint = Vector2.zero; + if (RectTransformUtility.ScreenPointToLocalPointInRectangle(baseRect, screenPosition, cam, out localPoint)) + { + Vector2 pivotOffset = baseRect.pivot * baseRect.sizeDelta; + return localPoint - (background.anchorMax * baseRect.sizeDelta) + pivotOffset; + } + return Vector2.zero; + } +} + +public enum AxisOptions { Both, Horizontal, Vertical } \ No newline at end of file diff --git a/Assets/Joystick Pack/Scripts/Base/Joystick.cs.meta b/Assets/Joystick Pack/Scripts/Base/Joystick.cs.meta new file mode 100644 index 00000000..40806d8c --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Base/Joystick.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b9fca4100a7477741b3973b4ff2c405f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Scripts/Editor.meta b/Assets/Joystick Pack/Scripts/Editor.meta new file mode 100644 index 00000000..fc352952 --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8bf1b896f4e24d441975cb6f11f92e74 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Scripts/Editor/DynamicJoystickEditor.cs b/Assets/Joystick Pack/Scripts/Editor/DynamicJoystickEditor.cs new file mode 100644 index 00000000..e562c3b7 --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Editor/DynamicJoystickEditor.cs @@ -0,0 +1,35 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; + +[CustomEditor(typeof(DynamicJoystick))] +public class DynamicJoystickEditor : JoystickEditor +{ + private SerializedProperty moveThreshold; + + protected override void OnEnable() + { + base.OnEnable(); + moveThreshold = serializedObject.FindProperty("moveThreshold"); + } + + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + + if (background != null) + { + RectTransform backgroundRect = (RectTransform)background.objectReferenceValue; + backgroundRect.anchorMax = Vector2.zero; + backgroundRect.anchorMin = Vector2.zero; + backgroundRect.pivot = center; + } + } + + protected override void DrawValues() + { + base.DrawValues(); + EditorGUILayout.PropertyField(moveThreshold, new GUIContent("Move Threshold", "The distance away from the center input has to be before the joystick begins to move.")); + } +} \ No newline at end of file diff --git a/Assets/Joystick Pack/Scripts/Editor/DynamicJoystickEditor.cs.meta b/Assets/Joystick Pack/Scripts/Editor/DynamicJoystickEditor.cs.meta new file mode 100644 index 00000000..bb13db0b --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Editor/DynamicJoystickEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 52071c88a467b46438b3cbf159bf988b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Scripts/Editor/FloatingJoystickEditor.cs b/Assets/Joystick Pack/Scripts/Editor/FloatingJoystickEditor.cs new file mode 100644 index 00000000..9ae160e9 --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Editor/FloatingJoystickEditor.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; + +[CustomEditor(typeof(FloatingJoystick))] +public class FloatingJoystickEditor : JoystickEditor +{ + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + + if (background != null) + { + RectTransform backgroundRect = (RectTransform)background.objectReferenceValue; + backgroundRect.anchorMax = Vector2.zero; + backgroundRect.anchorMin = Vector2.zero; + backgroundRect.pivot = center; + } + } +} \ No newline at end of file diff --git a/Assets/Joystick Pack/Scripts/Editor/FloatingJoystickEditor.cs.meta b/Assets/Joystick Pack/Scripts/Editor/FloatingJoystickEditor.cs.meta new file mode 100644 index 00000000..1026f94f --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Editor/FloatingJoystickEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 614d06243900d764f9c50b4da2c950a3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Scripts/Editor/JoystickEditor.cs b/Assets/Joystick Pack/Scripts/Editor/JoystickEditor.cs new file mode 100644 index 00000000..782c9f3f --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Editor/JoystickEditor.cs @@ -0,0 +1,64 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; + +[CustomEditor(typeof(Joystick), true)] +public class JoystickEditor : Editor +{ + private SerializedProperty handleRange; + private SerializedProperty deadZone; + private SerializedProperty axisOptions; + private SerializedProperty snapX; + private SerializedProperty snapY; + protected SerializedProperty background; + private SerializedProperty handle; + + protected Vector2 center = new Vector2(0.5f, 0.5f); + + protected virtual void OnEnable() + { + handleRange = serializedObject.FindProperty("handleRange"); + deadZone = serializedObject.FindProperty("deadZone"); + axisOptions = serializedObject.FindProperty("axisOptions"); + snapX = serializedObject.FindProperty("snapX"); + snapY = serializedObject.FindProperty("snapY"); + background = serializedObject.FindProperty("background"); + handle = serializedObject.FindProperty("handle"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + DrawValues(); + EditorGUILayout.Space(); + DrawComponents(); + + serializedObject.ApplyModifiedProperties(); + + if(handle != null) + { + RectTransform handleRect = (RectTransform)handle.objectReferenceValue; + handleRect.anchorMax = center; + handleRect.anchorMin = center; + handleRect.pivot = center; + handleRect.anchoredPosition = Vector2.zero; + } + } + + protected virtual void DrawValues() + { + EditorGUILayout.PropertyField(handleRange, new GUIContent("Handle Range", "The distance the visual handle can move from the center of the joystick.")); + EditorGUILayout.PropertyField(deadZone, new GUIContent("Dead Zone", "The distance away from the center input has to be before registering.")); + EditorGUILayout.PropertyField(axisOptions, new GUIContent("Axis Options", "Which axes the joystick uses.")); + EditorGUILayout.PropertyField(snapX, new GUIContent("Snap X", "Snap the horizontal input to a whole value.")); + EditorGUILayout.PropertyField(snapY, new GUIContent("Snap Y", "Snap the vertical input to a whole value.")); + } + + protected virtual void DrawComponents() + { + EditorGUILayout.ObjectField(background, new GUIContent("Background", "The background's RectTransform component.")); + EditorGUILayout.ObjectField(handle, new GUIContent("Handle", "The handle's RectTransform component.")); + } +} \ No newline at end of file diff --git a/Assets/Joystick Pack/Scripts/Editor/JoystickEditor.cs.meta b/Assets/Joystick Pack/Scripts/Editor/JoystickEditor.cs.meta new file mode 100644 index 00000000..59d5e45b --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Editor/JoystickEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d4b2b0d911a01a64ebfca9918e2b90b4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Scripts/Editor/VariableJoystickEditor.cs b/Assets/Joystick Pack/Scripts/Editor/VariableJoystickEditor.cs new file mode 100644 index 00000000..f2ba9790 --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Editor/VariableJoystickEditor.cs @@ -0,0 +1,37 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +using UnityEditor; + +[CustomEditor(typeof(VariableJoystick))] +public class VariableJoystickEditor : JoystickEditor +{ + private SerializedProperty moveThreshold; + private SerializedProperty joystickType; + + protected override void OnEnable() + { + base.OnEnable(); + moveThreshold = serializedObject.FindProperty("moveThreshold"); + joystickType = serializedObject.FindProperty("joystickType"); + } + + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + + if (background != null) + { + RectTransform backgroundRect = (RectTransform)background.objectReferenceValue; + backgroundRect.pivot = center; + } + } + + protected override void DrawValues() + { + base.DrawValues(); + EditorGUILayout.PropertyField(moveThreshold, new GUIContent("Move Threshold", "The distance away from the center input has to be before the joystick begins to move.")); + EditorGUILayout.PropertyField(joystickType, new GUIContent("Joystick Type", "The type of joystick the variable joystick is current using.")); + } +} \ No newline at end of file diff --git a/Assets/Joystick Pack/Scripts/Editor/VariableJoystickEditor.cs.meta b/Assets/Joystick Pack/Scripts/Editor/VariableJoystickEditor.cs.meta new file mode 100644 index 00000000..881d5243 --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Editor/VariableJoystickEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 58b5a2db95af76c4c9d4116a09ec3697 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Scripts/Joysticks.meta b/Assets/Joystick Pack/Scripts/Joysticks.meta new file mode 100644 index 00000000..06db9f18 --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Joysticks.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 30f674d88470a814e8648e216b61b9ef +folderAsset: yes +timeCreated: 1513537874 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Scripts/Joysticks/DynamicJoystick.cs b/Assets/Joystick Pack/Scripts/Joysticks/DynamicJoystick.cs new file mode 100644 index 00000000..42245505 --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Joysticks/DynamicJoystick.cs @@ -0,0 +1,41 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +public class DynamicJoystick : Joystick +{ + public float MoveThreshold { get { return moveThreshold; } set { moveThreshold = Mathf.Abs(value); } } + + [SerializeField] private float moveThreshold = 1; + + protected override void Start() + { + MoveThreshold = moveThreshold; + base.Start(); + background.gameObject.SetActive(false); + } + + public override void OnPointerDown(PointerEventData eventData) + { + background.anchoredPosition = ScreenPointToAnchoredPosition(eventData.position); + background.gameObject.SetActive(true); + base.OnPointerDown(eventData); + } + + public override void OnPointerUp(PointerEventData eventData) + { + background.gameObject.SetActive(false); + base.OnPointerUp(eventData); + } + + protected override void HandleInput(float magnitude, Vector2 normalised, Vector2 radius, Camera cam) + { + if (magnitude > moveThreshold) + { + Vector2 difference = normalised * (magnitude - moveThreshold) * radius; + background.anchoredPosition += difference; + } + base.HandleInput(magnitude, normalised, radius, cam); + } +} \ No newline at end of file diff --git a/Assets/Joystick Pack/Scripts/Joysticks/DynamicJoystick.cs.meta b/Assets/Joystick Pack/Scripts/Joysticks/DynamicJoystick.cs.meta new file mode 100644 index 00000000..a236f7c3 --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Joysticks/DynamicJoystick.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ba0d0e7a039f526499c356a3c5cd6d3f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Scripts/Joysticks/FixedJoystick.cs b/Assets/Joystick Pack/Scripts/Joysticks/FixedJoystick.cs new file mode 100644 index 00000000..34ffec07 --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Joysticks/FixedJoystick.cs @@ -0,0 +1,8 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class FixedJoystick : Joystick +{ + +} \ No newline at end of file diff --git a/Assets/Joystick Pack/Scripts/Joysticks/FixedJoystick.cs.meta b/Assets/Joystick Pack/Scripts/Joysticks/FixedJoystick.cs.meta new file mode 100644 index 00000000..a5643e1d --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Joysticks/FixedJoystick.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 45977bbae16431c46a013576a1aea384 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Scripts/Joysticks/FloatingJoystick.cs b/Assets/Joystick Pack/Scripts/Joysticks/FloatingJoystick.cs new file mode 100644 index 00000000..95acaacc --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Joysticks/FloatingJoystick.cs @@ -0,0 +1,26 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +public class FloatingJoystick : Joystick +{ + protected override void Start() + { + base.Start(); + background.gameObject.SetActive(false); + } + + public override void OnPointerDown(PointerEventData eventData) + { + background.anchoredPosition = ScreenPointToAnchoredPosition(eventData.position); + background.gameObject.SetActive(true); + base.OnPointerDown(eventData); + } + + public override void OnPointerUp(PointerEventData eventData) + { + background.gameObject.SetActive(false); + base.OnPointerUp(eventData); + } +} \ No newline at end of file diff --git a/Assets/Joystick Pack/Scripts/Joysticks/FloatingJoystick.cs.meta b/Assets/Joystick Pack/Scripts/Joysticks/FloatingJoystick.cs.meta new file mode 100644 index 00000000..9667e61a --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Joysticks/FloatingJoystick.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7a47f546fc70ec8428172694e78e4288 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Scripts/Joysticks/VariableJoystick.cs b/Assets/Joystick Pack/Scripts/Joysticks/VariableJoystick.cs new file mode 100644 index 00000000..17e98dbe --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Joysticks/VariableJoystick.cs @@ -0,0 +1,63 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +public class VariableJoystick : Joystick +{ + public float MoveThreshold { get { return moveThreshold; } set { moveThreshold = Mathf.Abs(value); } } + + [SerializeField] private float moveThreshold = 1; + [SerializeField] private JoystickType joystickType = JoystickType.Fixed; + + private Vector2 fixedPosition = Vector2.zero; + + public void SetMode(JoystickType joystickType) + { + this.joystickType = joystickType; + if(joystickType == JoystickType.Fixed) + { + background.anchoredPosition = fixedPosition; + background.gameObject.SetActive(true); + } + else + background.gameObject.SetActive(false); + } + + protected override void Start() + { + base.Start(); + fixedPosition = background.anchoredPosition; + SetMode(joystickType); + } + + public override void OnPointerDown(PointerEventData eventData) + { + if(joystickType != JoystickType.Fixed) + { + background.anchoredPosition = ScreenPointToAnchoredPosition(eventData.position); + background.gameObject.SetActive(true); + } + base.OnPointerDown(eventData); + } + + public override void OnPointerUp(PointerEventData eventData) + { + if(joystickType != JoystickType.Fixed) + background.gameObject.SetActive(false); + + base.OnPointerUp(eventData); + } + + protected override void HandleInput(float magnitude, Vector2 normalised, Vector2 radius, Camera cam) + { + if (joystickType == JoystickType.Dynamic && magnitude > moveThreshold) + { + Vector2 difference = normalised * (magnitude - moveThreshold) * radius; + background.anchoredPosition += difference; + } + base.HandleInput(magnitude, normalised, radius, cam); + } +} + +public enum JoystickType { Fixed, Floating, Dynamic } \ No newline at end of file diff --git a/Assets/Joystick Pack/Scripts/Joysticks/VariableJoystick.cs.meta b/Assets/Joystick Pack/Scripts/Joysticks/VariableJoystick.cs.meta new file mode 100644 index 00000000..81f40bfa --- /dev/null +++ b/Assets/Joystick Pack/Scripts/Joysticks/VariableJoystick.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 42844a4fccbd54746b90cade4ff70f73 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites.meta b/Assets/Joystick Pack/Sprites.meta new file mode 100644 index 00000000..85a51af5 --- /dev/null +++ b/Assets/Joystick Pack/Sprites.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f36f8459cb8c3fd44ba4390ba9652af8 +folderAsset: yes +timeCreated: 1513710650 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/All Axis Backgrounds.meta b/Assets/Joystick Pack/Sprites/All Axis Backgrounds.meta new file mode 100644 index 00000000..3038cbb9 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/All Axis Backgrounds.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8ca78f589dc53fd419c85dd20ea22ade +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Outline.png b/Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Outline.png new file mode 100644 index 0000000000000000000000000000000000000000..3da64477f8b1f1bab71db4b668e8a10d582252fa GIT binary patch literal 10076 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≪dz*?cKg!5fKX>Q9acqKzCC71Fd;f!pi*|oO59cZWegLmZV_cR({f5S z@U~pM3%_aNv&-uA-B7Mql(z6a-pZ6**QjbO`Vp8a?`uSf$Z|F33{_7LN$zSRQKSje z$DLPqK_u-j=hLup-BA{|h!)(dW1N>AcVf2o8B~a_%0Z-Rv4JM3$B~_daqd*?!ztWl zk(F*v)>p~%=vbikWA;y_3YU;Du7q!G>c*5g~IYPa<6#`cndCW`J|8!{a(x?W6_&L;#Dp;&g&I_z7mnl zJ0j66^2bTnkb6Tco_WrW%bdshUqCdT;(8F%7aLuXASMWV<2Kl8hxi%o*sbU_uH8{N zSb5N6tXZi%|AyUgy7FZEFWUI`JF^bT?;O}oN-JSyUy{!9Y@ksZSf+!hnB@cr6qp!Y>J54NDfk9>?Cg8oRqw zr6}hqS%yW_^}upVJeH(J<5+ccKqnsE{Fqa2jz;2IfB*BFRvlw zFv5E=I@)a~mk6|wGc?nxH{%fh>->VC$XDe3yk>i6h&Kj@_J|e2qto=n?d{%^qtOnW zII29pZ~ClG>!~e+=~8a=>KEw(q17+U_>;nRd9-5R^Y_w}T;!!{q5C&#)rbv-+~4b0 z#?gyYt3z=Z5Z=5&8@GES@Mc_pNy~JH!7E;B0>r%9IgwSf?foA%%nPKKuKG@8DX5{{ PJYZ^Kb+p`w6#IVwma;1; literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Outline.png.meta b/Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Outline.png.meta new file mode 100644 index 00000000..67b1283c --- /dev/null +++ b/Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Outline.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: 5b56d9fa0e8bd6e409ed188db38a692c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Outline_Arrows.png b/Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Outline_Arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..bd962037072f6e07a4c0006d549850673be1e440 GIT binary patch literal 11326 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 AH2?qr literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Plain_Arrows.png.meta b/Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Plain_Arrows.png.meta new file mode 100644 index 00000000..47e7d2c0 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Plain_Arrows.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: 2a1f3cba20f3e11498474a705db12fde +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Ridged.png b/Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Ridged.png new file mode 100644 index 0000000000000000000000000000000000000000..51b204b6c735cef00448e583b747ef450dff5885 GIT binary patch literal 23051 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 Kck#{u_WuEyTJGxr literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Ridged_Arrows.png.meta b/Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Ridged_Arrows.png.meta new file mode 100644 index 00000000..afc222d6 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/All Axis Backgrounds/AllAxis_Ridged_Arrows.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: 4cbc879550e5e374a925e2e0a84d6f3c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/Handles.meta b/Assets/Joystick Pack/Sprites/Handles.meta new file mode 100644 index 00000000..230e9d51 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/Handles.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6f3c65e147711ac449f6bbd5e7da81df +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/Handles/Handle_Outline.png b/Assets/Joystick Pack/Sprites/Handles/Handle_Outline.png new file mode 100644 index 0000000000000000000000000000000000000000..c66b44ee55bbf5bd2a7f64c0fc5da0c9ba9a215e GIT binary patch literal 4763 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 J6~@%q{{a(;W5@si literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/Handles/Handle_Outline.png.meta b/Assets/Joystick Pack/Sprites/Handles/Handle_Outline.png.meta new file mode 100644 index 00000000..eedba775 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/Handles/Handle_Outline.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: 085185b08a40a924985bc0e4176edea6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/Handles/Handle_Outline_Arrows.png b/Assets/Joystick Pack/Sprites/Handles/Handle_Outline_Arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..fc964dcd4d9248de47f0282ac75048d3faf40940 GIT binary patch literal 5447 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 literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/Handles/Handle_Outline_Arrows.png.meta b/Assets/Joystick Pack/Sprites/Handles/Handle_Outline_Arrows.png.meta new file mode 100644 index 00000000..0bc70cc9 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/Handles/Handle_Outline_Arrows.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: 5eda94a9dcf71e445ad17e3c065d1460 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/Handles/Handle_Plain.png b/Assets/Joystick Pack/Sprites/Handles/Handle_Plain.png new file mode 100644 index 0000000000000000000000000000000000000000..c3bb9d5323b8c2aa4ac60ce8acccf4c8ba92ac4f GIT binary patch literal 3178 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 literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/Handles/Handle_Plain.png.meta b/Assets/Joystick Pack/Sprites/Handles/Handle_Plain.png.meta new file mode 100644 index 00000000..7c4ce9a5 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/Handles/Handle_Plain.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: 010a6e5305fa7004f89c5d317b7b47d4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/Handles/Handle_Plain_Arrows.png b/Assets/Joystick Pack/Sprites/Handles/Handle_Plain_Arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..29fd72ea1d2bcdd92241909938d840f2295f8e73 GIT binary patch literal 4187 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 literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/Handles/Handle_Plain_Arrows.png.meta b/Assets/Joystick Pack/Sprites/Handles/Handle_Plain_Arrows.png.meta new file mode 100644 index 00000000..e5e0bbb2 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/Handles/Handle_Plain_Arrows.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: f353d42d1db27ff42b78b28efd86b316 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/Handles/Handle_Ridged.png b/Assets/Joystick Pack/Sprites/Handles/Handle_Ridged.png new file mode 100644 index 0000000000000000000000000000000000000000..4a54903537a82603ed25e2a13adcf476571a03b8 GIT binary patch literal 8878 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 iKe7Ff=xM$p6K-qWtX;jqp~Rkf=>GsE0ixId literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/Handles/Handle_Ridged.png.meta b/Assets/Joystick Pack/Sprites/Handles/Handle_Ridged.png.meta new file mode 100644 index 00000000..15a16387 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/Handles/Handle_Ridged.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: 3a74f678ee8f3bd49aacf3de1ae4bcaa +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/Handles/Handle_Ridged_Arrows.png b/Assets/Joystick Pack/Sprites/Handles/Handle_Ridged_Arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..e51bd40db45c0233c0c2236ec621f8ac89aea77a GIT binary patch literal 10048 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 literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Outline.png.meta b/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Outline.png.meta new file mode 100644 index 00000000..bd9495f7 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Outline.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: cd0a2c1b2c014ba4c80c1df786e150e9 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Outline_Arrows.png b/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Outline_Arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..6fd085be3ab6c54c2d0a2fbc6f24674fb460b2f9 GIT binary patch literal 6131 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 HiF@MjOneY9 literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Plain.png.meta b/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Plain.png.meta new file mode 100644 index 00000000..527a8663 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Plain.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: 097782735540f2d4db5606eae04ae6a7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Plain_Arrows.png b/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Plain_Arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..bc46919c1c6ba1b3c6e0f8ac37df8d24f750389f GIT binary patch literal 4801 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 literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Plain_Arrows.png.meta b/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Plain_Arrows.png.meta new file mode 100644 index 00000000..71657ceb --- /dev/null +++ b/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Plain_Arrows.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: c8585b68a92b5d440992ddd7d1b1a3d6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Ridged.png b/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Ridged.png new file mode 100644 index 0000000000000000000000000000000000000000..4f65707edd3fa1750349ab840a53892ef6d933f9 GIT binary patch literal 10634 zcmdUVdpMNa`}Z@Z5Y^})avIex?GPO$hlfroZQ32=P)0`;8AXoqj82r$PNKxLcS&s~ zBqYWtj3g;%ISez&A*X2^X3R6sdYA84{jT?Vzt{EqzTe*;@AbMK*9_}fYu)Q!_x)M- z{khk*-F7y!lr)qO1evvC`<6WjA_u?9A&TFDzZ)9KGF{JBct*5WqaYJ%=}g`Lcna{Pht2EjBHENz1Ub*BejEA!-NuLUWue z(f9K#?Ugyz1K|6M5TGH9 zJRUWCwoeos#R_z!=Hk3pQ7^@j9C0KtjRZ5sHx64f-8WksYN|Z19BMaKS4V<$L((^O z&{G=&N9Zp`J&XwcKb|Bmcqt9}ohm;VZo5&%AT5rhyKT6nCL}_ZG%=dv95zP{6HY!L zmygxSbQ;3L>`O)y>4k@{6eAxS9EhZeu7*Fyufd5Y=kDNwCz@ymh0H9H6quyXR!5>+ zYd9{P)(u~emeTMt_+T&jm}9`J4uSWM@Gu|FYVT(XjFDi@-WY;rC)x0ixiBGhP)r?j z3gX0M$OiqH8psFxk@$PLV;MQa!hed*$8!0+3!L!Y#OA+?b4;*2Ph>-4Cnb0QyXo3a z7g+vy%TIub1?UbVYRaWzGP$@}5e$seby%#7jJR?zAk=OZi?o)EAfhEya0bk|AvezO8De*Bim9&kr zk$su;g0pQGMDa{ILzy;sY!Te5O$_xRLK(PbHV(3RtNCa`JK#*LSS zlu8-p=Lk|Q@TmPS1)jwPahNJY$7^(Qm;UjLuOhk7A&O|fe z5ZdYQ|ENkqSSr2oLdtnvIll0e1blG-2SO$Oc`4Ly+iSQnJw3d*k;iQI+O!;Ye@uN_ zTYr!V`&kO`8XO#)brcu*U#X?=0zIslbJgoex(3V(_gz=cw#7|sQw)Y(%zBryXMc)O zJ@-!^$kqT3gV_aniL+)D6x4g_K5)R9c;2soSuWY#yZ zgpG|R4Yf`2vEARk^{##8--GR%vbdqGI0f?*`&*i~Iqy&i^A4%wNJFBr&{{qEA=)bs zWW)0Qet*=IFCjw9v5=4@PKR7<1)Q^Q&`nb=!HW@7NBxI}f^%XIQFh}#hdGRvUfqx5 zNo0k?h~v)a=H?8VkiuDO&tx6zL<>`X0L3LuP@>(`-dy4L)^eC02>3knX{|fL8C@cC zq&1x`p=n(fXP`9ufmY{h> zTbXK4d)MM3i@=^4ZMMo#U=(pNpX}RLutf!08b?`clp#wW;Aa`!b zvL&PDMCStwR5s${XAt@mMdo4tHe)T%lXI77***vtRs;2`jKrbB^C1$0nMjD~Tl=Oy z(A!OWPI^%La~YEBShg{8*;;qxv5m0$xPtP|aKXBHQkUm%? z;-0p$=kwI%YDgU?{y3{+xPhRKuO^y(WE{(#MWEB>r!>#_%&n_s)`lw$ei5mCbsgMv zR!GTf7dPhdLe103#q3AndSlH`_uU%O31ymxjHRdjkclIv7FGAZ_x%2jpK{F8GhIzs zozV^&O?d74D{8h{O!wAf69BxQt_VdoX{|P@XZ2Jv+`#VM4`SXDrh$GQCIp%N4#aY3)+8jW|2uZPr^ykZw z(HK#FE>Pbom?-QKcNZz@QG&(?^8RA4b~FFp0BqP1;H;5QvrarT;80uXHRjXCV*0z$ z=_U&qdsmT1>U(-luC}m9Vq2J*#ovgIO2Lxfwd;HlE38>l+uMlVN`GdN0fJo}@sff~ zE<-8t6#28$JKlE7A|tS-W~2KJXH^8WmKIwM_w?BLtKUA)kuF8NUp@6TPDs9IccS}5 zY<{zHMQLeiaVbY~$NTS2cm3+;A|<%46Ih5z4S{6IGg7`pbjzx3asRZqevh=rjTb4q zZx|!*tBsDOkwwZP=neP^O}XTCvq)v7sA8&0kz}xiZbW&9c%$srjrKx{t+;;YQg*-N zJB6OCPoJ`mojtoMKf(2Ts>*~aICxaCsZDc|_>9N?qFrxq1u=Fpm( zD_|fzVKfuTC_HC+m&vr}a=FsEfUC0G^yS>$R=6k)1dS)13dXdx7)s!lA}F#2b&Xyu93+jH-4VakmZ_Ev|3mZD0AmYSe&`7>K%&LAibd+fZzuA)po|53u$;-@o!2TD))%^o#IH-clY0LY@bo zq{!gPo~?8}*o4JxS|zmaGaT&cuu4jwj24EjU&l72@l1FZT59J>FFzCwc*Yx!lkcBB z++7S8yu>Wo>XWeg%7JO-#K74-7Dt$uR|?;aKrTT4-`_j>*P3W&nSk=mFFI>%zgTEfZKru^1{m4{X=Ci3sNwACOt zx0&yne}*p0n+q~Ws4KUYWA179XCa99ZDRx%3n*90P;BV^dtbj_b&1Z$F0|a2N+0`_ ztXfv2ZesxlCJl6b zdPuefd`hwIEE1G1lCA-4)zl`H>p=42I+9L)Q{2p&JY0M`Hh`@b-9`lByLuWv*7N%! z2=p6FOcHn5|5g@_RSxJ_Ed6TRTQAKLQ1LPG**}GpU}^9ND#Pwdh};-WTLmTZy`OZ* z@u`KNtC41OK3mQ^FG8I0$c0Eu*>hM($q?n`p-7vO{q(ib^HfZU*L8LKRyS_g@%syL z_Ym7fjC>sQ=o7KPU(v&A$>RzPbsfutc77|&J_&e^(;Xd`FD5$w&L-(bO(Z=E<#G~) z6c^C>e%Ds*7F4Uf(K-}~SXy{wp!54VK`UvMfZD#s(z4z6Z~jRkuKzPr@{9S(qb-(iM(9k&W;U#zRW3&#+try zoLLLz0`Hx?zCV|0AQ4>^v3eDvZjVm_YN6xw2o2C-1n|CZWquCGAU7Ht-Vic;JpvG? zLM(}cbzO0L&!85vRjQDN6(w7YQ_TqL2u`<*wA?uYQBRU^?$wX-x3+$l}YMT+?zG+spx4YJf72?(semMC7 zZ4=JCe6(fD4NM&2{kXWfxj6wU-HW*v3cV0Gf~5XvKSLcheKootdaQW8 z0DB-Te}!2tdsWE0I$105rPfj0~G7Y=yY8# zJVpoEV{(*>W$z0*H3Yl_)DI)wo)|Lo-nsnyxAWe8;xnfQ`L4ZtH#vGCAhW1#ly9y9 zXF8%Bg_PM;Nk)rUp?>{`r3k_v>2Iz*DXjjjdKZ+brgh?zUoPPi1qdZ8)6@940#XTu zdmQIp{TCP2MEdlRKln^Zc|5Jn%L6&7M^xz}S$ujoipV!dCXocCXo4xfpV3yz$(I<; zLI$|lnsc~FVF7IBW*K30lnA7_pLl$fi@v~%k<9t}#A}!m!TqZLyBmdSX&txIDD}SGi8Y)*J#&6#^$@$MNJjgB(E7ZpBT_xb1Bu>gykxzW8 z<*OQg`vj{LZE9mpu;kp9d#;@w#tXqqn9EX^!6`*CSZKaFR6h3xmdR#o8xm47V{+O% zBsU9Z{L)kIUgRvF#^F^NBL-zRKtqEAlq?t?_*b`>VjAX~@K~;j@tifp>zXjqgBEeP zG$|M7dEwcl;!glke@udgaOqQ4R)UZ|6N${?Q}4gPdB5WpfKq&OhCR9TI%Zt!YxO`; zNEsU^MW})%7h=h^E)2Qqt@@zuOsW*K=4 zf%lf;2w`)G|(uZ)uU2 zfP%R13>PvJ5+G)Ga8LFdf}JVQ&s<4Japteo^IKYH3#f$IDodR;#N9gz4A+%XDqhq- z9Vzw>JVj-!GW__oc^IND7B|{yBBfO11B94^q@Lx( zfcZ)Y{DF6;%Nr2ovyn@4v4|7 zpvcJSjXiW+lU!WP<;}i`L|_6-xcQJM&;fHcBgp0xo}Qi$ATpESO1=tI%bUJaEe5Tp zF-YsytkGOY)bCVw=bl*t_tc6tw)MRs5Kb(NG=P7N3n}1?Wv$l@acYsGK9UAE#-|cB zS-*ZzO@Z;}Y7|@Kj31>-8d~%)cR>4~>wB?6rGh*II`XdH?6yU5_CvF) z=L>A z0C-M!^DsM&i@tX6KNPJBWF)uM&bW_YUTkPKqJA z8(bn6mx{$Qh;xriR#-g}cQ11ebe)b&bbRkR0O8Sd#Ouyyb;P;#_hI`XS!bw7$!d6O zy4YPG=`@a*19hbVDdi?o$2sV!DGu?#1&gzKIQlR=e%g^z)P%vM-U@=E$yHy9`nfP>zjU1z~BrjtUvZ@@~$;cU>@XmX?+Y!$?4 zAj|ZYIn;6_B1afsPcE;zXm}(n@wpOW#mOUJvJM@v!r59g@PcM3z zsj?1cO0{dUKg?CMs=ks<9AXEp3z|IQ9gdW9+Q&9)*4VUm)k1Y~x#h9Fy-%MAtE)a7 z8lF7!4Gj+&{X%rU#o~4@^}}5>k(#F`Os@qvcHkDuB4rrqc&RfJwl7erw*U0Bo{+} zXxclR4MjI`O-QVCARXbNYRU47Mzf|d78m+;?eu%gTg<2C64`7ZCC z(2%0aBH;>{${9-PnwsM-N>=;UWM@~@r)8+YRIvfW#U{?}4T!O+spJ$Z)QjOLq2;ckusX`# z?iU|5Eh@qoyxb@?dY@Mm8(1JTimU8x0M2uSLtaS2XLMPy-YOXFy?nWQJ1){(mU`lO zh#c}@9_a3?|5AT|W@tck3aDu4!F@Pt+Lr?c(vi#dqrdly!^dI#zSPGj`^uylpYZ$O zL?)eV>8i|FmO%?)f1KQpsH#14gcQq-17tgG1R|!+qXSGBeGJy{kN6pY#e8Og_u=*( zmynbCL}LccXe}|xof^gHsHy^QK2zZk1vx(s!&d2+Q@9cB)jmgDgjOw-L)34I6(*Ua z=LH2WTX5QGzXRmry1F_UjDa2C65LOmsHyZlEVRFOm9bDd4e`D)d>=F7g9{-R1(0FL z9L3Pj$W8nCSpp_U_%6k^qNnNPVdxMca&L4Ir0PvOu@&v6UQPkbP$K1tIInP&*MNL1 zR8m<(G^@d!5~e#al<%$^@m-Cb{q*`G@^K7UBw?a*6f#O(DPT6A*U*5q zkc&r%6~%g6wX~ME&J9(ZH*ek*E=L%Zx|dfL8Ly>}bZ9B*jY-CRD>-kM;Oj6*y*Yeu z5$J8@f>;>XWoKlx*}uriVc&KQQ8Od*`v$$fx6or^*=+V3J|?z@F?j`dLS#qvg)xug zcS`DrVPATvO~{3Sc92Lf`ps`e9Lxj<{beXIQr`8(0eQZk(ff2{UY(`EV#0bu^Bb73 zT0~;TckLMQD>?TLk-gVLtY3x^F`5=pm`d`v5hU4iH9@ok(r3FcvUmT6x5YW|q{z+6 zx|@E*XNj5?C^5O5z4}T$gT3CBIitAa-u?UU$G$UZjvLt8e+WQjM$GeWLK!j*9z#{W zh~q#7vYRS5_~-y;w3v{X9dJ1CeBRO#$luKB3;tex-|m$b0J`gs0p2 z-9k$EgiP4YjJ$!pobb>9_GbBDyGfXBI78Z7&w}R15&9lq+VB6dR&0X4?5cTejkqb6 zOyY3=Kxir2KL8-fus|DB*NAz&BWL@@&U^cNNbRQ|gi3gw5~&ueS5OUE|IfAJZuDbw zzH&3^^1CiymE{YkAy=2-QgCzJoH!f<9A=Nz9>+_3zEFKd0a3o1FTOW8h~@SKy|H{H#oNH#yZH!q&!1aC(~?p+l0!;!qK*HNNAd-EA3lh zR`FrX&&Aze?!o!PbRshjMNuaE(a`19%r0?w3P?;U?9aGK($$oE*SVjR!%>5vc$K@; zN?lG~mk38K@nL;4vt}!mG*T)u*+GI?f+={V@f zZzNc)?vLVVjemR~2Kk)id6vR!RBR$-+cszMS36u9!>N9|J(0q{Hg5X0;IzQ!K0*Ju zJrM(QI0c3>N1I#gL$}y~XD@=7mYBtoazOd`!T!%O&XGq^9O)NWk^$)F-fk!DQ<6oY zy_SYuK97=s$V^$XFf<7pj2t;v5KAUTjv-GdBwL%JwZ<@U@;`HDXT`+CRq+%7k5%(w zq=~Nst3Hc}s%^1vVf^_-zO3wbd?j|5?w#gfR<1W*LAWW5}*EJA$J-1X$jaZ87uNdO=V3&6bi| zmv1DhpaI9`_-<0>CH`DYDx_kGPTwMy=cr9IP&kalACu41DjSMR?TkDoyT0u_5g@I-C(X;XU+ z-g7x~h@70=0v}CKG#fFx%5YvkZA71_dgCO0^GEXYy|aFla_(Nkp6=TTi&MwCqn|d4 zVQF`WTui8BF0|8`KienZAyY^%qB+i3o_fhjUD58sg{c`ZH<&IOQd}lrIc)6!ZlN;C zvT7I9+Q=o~l35F5s12=bqn{N6qs% zPNzF_q_UVvmYHqcH&8qaX;#V13e;mOrIFMWU2P0bOH0)=O`AWaY#clr zoag#9C(boDZ!E(_iRgfbK)-+9lf4tk`I8bDEN%V}mZJ$XRl(&&y5>a%^|HecoT*B0 z&L~7%{B!@XXaS9d=4f0#j`zPhxO1!~>ZuCuwYa@oOey^ky4eKjr;s!u(H-1-K+G&z z079{loLb`f_VKiOXPj@3o2T+J8i;ROT8ivhDfEJduib%?(46(521)H1ej`S^>4PR# zG}^!y@aJEx@I|8_8+e}rpx!p)9xO%e_6&z_U&<}hA^i0;>h|}W+$LLjg&Y-p+$%Sw zCnJKq5QH82PJQ=}1=WW$T>h&?9aP84mV&UhzRBiODq>yP({{5$jUT4T=cS6nSwvqnq=EI%o7pd2OIN11d;!jhPa8qJ4NA6?4WMX1Z(0QW@%2IVoFIlmO)1;qs4DzXCgPd`gIrsyE(eLkPAyL*HfgvhA-Zs`#FQMZ?G`15J zk*!3!H;Iy(pPog-t9``PRme@3V8XoLKx|!881r8kqs)8+?>Y>l8z_g&O~_WYx|z3K z+gP+`Kdyn~Lm)Bbm3Q8{ib>2zhg)YM3RlB&y8Zhu71MsW?!hvU9W)X?k#a$vv6A(S zWw@TD)T%O7GhVY07{U7<;rsxZJfnR!8M5L@6Db*bIzJ6mK+PQ)N{zR#Zkfx0+V)>U|xhWOUC839% zfOUvIAYg8KiFJW&MThmGuO(J54bBHo+w?&B2(9i{(~E5lRY6f z_n!~&|L>KxVU>UTUf#b}&wqa7?f>nSwfl5HgO>#vl9wZuE9`jC0+1bB?Y2DI|35QvEy*ZKqQ*^&QjIN?Wt2*#NQF>F3AwgVc5|j%xKY$qaZ@Ovk|t!! zGL|G;qZHYVwQMuinK5V1`8~SVz5n<9^1L<=|~j8a|m zB(P#o4*HWVFpxPYQ@s>o2}V9Ydw%;s>TMh(U;i``g5)5`8259JV}K`72>O}F&mOt3 z?kA62Soc3MYajxp0FHs)f9630AW?;&pL+b{kqe~$?2%yI#q66w;-5OYy3V|(dkx1| z52f)+vblrdFFqE2spYzl!A%#iGBK~Qi$(9Q_he-ZuGx%TslDg^noCP6>y#iDe&ox3 z{Nj64Cn-{{es*;DQts(gp=$wn?`D2-gDlltkv{x^Vz8Ff{B4YEve{c+?A~bac;D+m zqk58AV=PgdOkEw13YL&U{+q_L}SA7y7lwEh0>T$DUi$S4rV5g;{V#C3Y=M zy7PPUV>#`p-;bT9&YD#lI7<8@I5RcAlp~KWypMTRVTFT6?)R<;d}^0g zn7E}uPsEYcZ(?6DI!ekuK2?7k&iMP)06EljJNK#WFGkl#b*X$a6%k2eQ+IwqVtfE0 z?C8SDBqSW;L|~S>)b?#ll1nBtDQngqgJMoM!}Oq{%MD@I{@E!xi$mU~BOfXkUm|sy zcl*lHGtd-6=%qD-1=b1weQBIS9wYI6iCw%ebR$b>hxs>B{)_RR3;jRnUO0_u!z+bZA+LjtpY0OiW#9) zY$gA)-{iZdi7o04qK+CJ`jOLFxognT(b2Y+7VG@%?AzmG6E2FQiq+%x9rpb3ju4A- zR7>L%8rL$UNeaumnXKW9h-F|mPTW)2C5*gW+HlYn{=B6}(7R0Kq2c?@BrV_1M^$V$ zTMRtodfTQqv(E_G&E2CTgMxxdJ0-XNSp7*sGN*m*cg`LIpTBOKV~Qmu4F@~0xDFv5 znQ|}4%DB8?w0Fzy`Mf`SUKc0U{N_}^yAZhq!#&FSHfA=YItgx7Gt1w`TVorPyY>craP}7x8cKtx#bFf|NQ8^uS!e9 zR#h^P3%ju4QeAoZNUwm3v)dqU&d{E)h+T*Z$DQw-Wleg?MV-h$!_9>`JR$PpLM;nO)8+()R7fVi!V$q!BUEzF=y-Osi=ro1ll(CmKWoSY6$3`L9bJL}DWn z-g_5eA+{Vf4P%!U*(6ra%7nvPhD1ASqsz-Ti%FZ{PBp~*HKzNN6D!|n!Az2`fCG;% zf?~nOSxR5Oc5d5ro)}0Xp5_(YqZJ291P0z-T0TB>AG>>29J?#8)@H#>W_vf2XDejU zzmFu}0TiRzLCR6(E)L?qD4}VCh*?1Qn<8HC`c~xa-ym^{04sITmI>K#9o)yIz@HUvz2H3TRfn-2N2*SK>3f zkowqjx)oRM(DumDu0+BLNcOv)LkWwPLl&^$zk~H%_~S$V@IIwGHXN^(WbYdfH=@y{Tc* zx{`Z1-oguEPAc|i&KT<0Z#4CnoFry6ka~+$kxr_hF_FMD!L5G3hk7mxD`vy0lEwvRcl-ke>|8jUsR~(& ztoNRmL(}>k_XJ5iopIbFRD}rhYf;mz*+rJ+(eVh_y}RTqaoIOB9y^{^0(HLBd|;|3 zjm6F@pw;;(Z1kZF9kTz=17&bXdo|(5tA>Vii|TVp!+S5Yhy~sA0x~-J(RMpPxlz(r zS3h?(!N|u}p!K9#xuHd=g<~vdmvq-0n^iAe;&+@GG3CYEz^EV|E3~mXXp<+=>qX_W zso|K9$v+qYUI(VLVD0h0%mm$elc0|3a0{!hY`%e?sH7T}+zqUEh3 z;qSS6K~40YV6Cl=NI-r;RF9`VV-*kj@&{gBSC?`_x}lM| zY(Eh5eu==ADYJqP2Dn((18o!!A(>`$F~ z|8gMSSGF>xlJS~?_xH~P#@1pnjlbx+TGH4fmdB9)73t?j=LxeK8y`cEdY~ob5Hx6~ zqpKT#=8d+_Elv*!XD?=o-zttxjgYCrIeVgX4z$fBG6H2f@oK#D^NP-T5*^>0ioQHk zY<=fSAI&gK8vEq$fIlZc`%pz!VzUHxY-~+JJT3AJ*}>4Ln`otg{^}wiYz4=*H(X_u zJ9phk3tE@G<28B;7Di_7?EH z?fS*^I#lrSJDgh`itY*PGwE~N5&JJAqixe^X}^**une&*4Nwj8Slw-&$J4M1Mg70hBv14FA=$1 zEYU06T1A%TG_yIeJ+4lr_p(~uD~Y{IZSC!K>kN^tg85N;?n4u;nM^6H@QtrC)teOl zTP3)eeQd-z%n0I*x; z!~>`L<2(d^?2<5yfHM;r-!JZU)K!7F&n2;hSCg~4J%GySLsZ4l>iZ0im>w4OfIn|J z$Ar;~j(<8@u_$+9K7Jf)&$EfDT4y7NPJRioiiJ9BNfr?gl0{tyez?2MJ5XB*VnBaDC!z3`h zQ1*eYTV$y5YGc@J>==J~_-+LJedJ4cypHGwNsKcwOhJU^Q}|nAL#1BpI{kmwk)HDl zEQVLIh+@;%YpKvh<;XIDj$pE;1}t3uCN)0C=A}c{dc@4r^|HOFGGX$9+*-P@Ko-@Q zA;v$ig8fPzKn|pLSdQk+5T@sFNQ~WvhE}Hmh6}%UG4ggvHcf~d*SKTj*Dy;H45<6T zb9u--X9nS$ZB%v!My4To%tP{^BD&Uj?itvBs^j5HVL@@2FtR3=ASGN1LlMtJPA*6H z^M+XPY~5Z!=sCGw|ET4(m>BiXUOal%7ipzo#&b`!l1TG9Tpk-sv{``;X5<1d@Oj|; z2*+E$*wjK|x*8c_KC2=lyn#b$EMl(Eb6PCLUSqSPH=8!I5FU!!$e=7HEa;1_b~pfa zXRb$*huu;4JUeF=QNT|eCm7SuohV0r@GBzWga;2AT(}m;?`%Wr>18%SxNnz|=Y7W+ z&sC6We;7K*`j{HoHq_!W#pxl6CL{x=)&IO0e=Bmn>qXEz#vK;X9rJNXe;zYVjO1Rv zMTCxDH*8sF7+MHV(7=xr1w}>oT~0|99%nSCcxtzznY%M79@7DV z6zI4;(`E-8iZBOQ6o?35n z)gsxb(V^s&`8t#}Y)N~apIOAD0fNIy79+rp(jmk>ZPD!s_3PEH z+ycU~i;t8<56YvPU4m;wQ#v@5pzPxw0*kfiua!N3Rwl)0Q@N!I6aYTH z;J4lv2s40r55Jp#W1|9v<-ujNYb;`V`ljgH;2+o{zrYF#mcTg8xpOV3{xYnw@g`zA z7Q7MPWRsYf*w$Zz9a)14QlV+TXI0n?zUhGw^Qz+zfW6gLk*TCy6u0_LhDGvg9}n7x zO7iKX(g(Ydeg`%>JI$0gUxO=*+l|;*TjzFlbpZk8PjPf73A8=eIq;gA{6nizpIE&U zy$uaV>Nq6&#DkO2M7k8_-+~rPU_6Nyuywj6O%5oe@r;r1J#B3ScI5`yUqso8#~vGV zQL8>udx@1yI;k|tY$roi>XMu%gJbzyD#;BW8st=P5>+s{pRyHd?83aBfLl1{&7TH{ zr$Edx&=eO;z^2gLY8Tph7LnM^OJ;@fCQ~f3NeYWUfU`4&CZ0%PoO8|_-FT5%jTMm-EiL|YebrI2 z1f0~d5;2BqjHW*CYDKlGaUDP~4j8AYJgsy54vS%(S*k5yv~prMhcrD>yy>@*q%))p zNja3r*Mv-^n4TY<4YsDxH!sE3r&`7Jxw{pqVyR%WYtXaB zSN$YTp7r$1DumQeN3ewaw%p`D!(q4Ig10*JT(fM+?X~T2F^i##KW4E84H0!zUq)Kv zBBj+f1g@_>!`EQ%a$NZj}_2c)w-MvP`l+_w#gy(x4YTtS<#YL^>< zdpz}7GUZLt+>z2&^6r)#HgET2p)!R-$ z5m;%+?ANXyeFCOQ$jHbz9s!@{U%|gh08G4_Kk$ju<9=D#g%V8;P2x4%2)$$1xf6i| zHaEQ^)f9R|z|=J~Zfhc3Eygy8oi2%;6G?FZoZRf{>ia~>=2xC4({f4O^&N(5!z6v~ zl{YRa&g8B_&;E8!)0xM1MKAaf78K3x{>?9+s?Q?&`_JbJ4c9o8oN8&+Md&!a&3%T3 z-5r9RkBi^H;z)ND*(fpL!9fKy9OIAntU4#s>klBWsF)#k0Z7pXdfpS`luj<^e_3wIJnm=F#c&&C9S?_CB~je$RgW+9QWpzN>}KoewTjFxbO$ z6>M}gaOOo;FA+@v>K`;$MA_O%H2xUtBlb&ak18Z=j{VsE7}_9(sRw^Q4sb()mOiV5 zNyl_QMZn=5n4t8GIE|%>vtn|i8lh*E-k&%oRz9iF zu9~yHdQ;!LrRm#oO{BkPGCTVYi*lhDn(_OJab!P5pVc$fhFndfIs@JO_7YghfsHU+ zlzmnj>rU)^-ps={Wv>?f+Sb-MG_)h&l5cTbWoSYrBWpR$ypo}@fkpAEUyeeT)HI(A z7de>#&@@Yy+e*P&Lfq=8BMN;SvX4kgCWk%X^Gq4ZY)_V@MXOa$Iz?|8{B z!LO0MG*}mEV<87Usk;M+1+^Z7YZyx0x!dk_UUs$y-2r;DLScpNiocFmys9*=f*FvM zCy%SX=ao{<^+r6@bp3tI`&+kfOS+_9mPH$#kB7sSP=p~862@_Lb&XyM&8X?dbe&h< zz+#Z`w=@y^Sepmu8e#2(E^BiHf*!#jK-z2>?ir`s!6=0(4(BBP#$&0bL)X4opX!aG}$6EFE7 zT{_G?|J4MdQO}z^Fab_D!(rOn?l< ziD$aY+4Pc4l9*jqk|q*8xc&?g_~K(y*_)N-=)ZXyZVGH@Xb7BLa{Ab9oYm14$w^7; zT6SW-MPing_W;MK7f!_0Rx(tfl@s;kojYw`m)T_vy}tskUx}8|p!!7{Eb?a22QV^0o zm6bhI#Tc=q^$93%?rh(7T4R??uhM91h_IpI($raO_U29Cs437oK=f2x)y9-~PAtKE zjg_8RmJF@p+wcW%B{L9sc|Rdw9LGx@9v)kqc{O6P+kb6$=do`>H@JhMD@ZpIWLEes zf%J%fdzrjv1>^Xpp=*qD<77{sD+3-b5ESF6_qQV41JI_pa5z-P51J2xlD7i$Z6XW1 z``yo-ThDl%y`rtc1G_nU6L@JC>R-_% zGR#**`7H2$RNEias~Z~LUGOpLv=f5ezRKloTJO0NCnB+8J)Ls9ta}U26&uFiQbo9C z<)2T2(9;z9C0oZ~9Whu&RD|~7ZOClO2SH9je8t{R9D3_02nHN+tBH!m$(l&j$s2eO z4u9gkb=)-EW&%0#mdzLLXniSM@5Za?$+jL%fnM*jUY)>c6T{4cx`V95{-r*$$260rRyqX%|&A5eV4*_@PD+jb& zv$=oCeW}1xH})mSLh5>x>kOnq+{TZh#rL%llkwN%Sl3#mZ-aPsBO_Fu5e%%QKdwpz zzzgeMqJ9795%ZwICF*hxVYBlU>;F_ns_I4#k8t1_K>$_2dAgkTSOH+GFEKV|EPf%@ zp{noN>8WS{nPktw!ueUrN_c07o8b~iHj9{1%IKNre|yx4Zm{CT6Hk{JBx)n|V)dXI zV3IeNtcp~9n(`gt#AaH=Y=>-%Je4hZk*jg4bH5yvLpP>EkW^zkT*--T!_?F=0guBs z$j_l8H)2VHJ^bdAAZ)h;0W$^Z<1f*5lY?k`=)%oXm{ThnLclCAPI16J5YAnYUjD>z z8|N;c4?x(xd#9n+ttvzO#q4TZ%pqhvZ-7Ol2G1E>=IQ1No1$ixM~D6i;E|S{-51)h zrHY}g71E}*oK|Lcy2KU)(zmhv{QTpQaEPd~_fA6YwMfw&3{A3bvH{W`kv%!-5n74z zpc&H#99J)@Q4mkw9b+cjEJu@ttN^xwhm%MO#}dSiEuUS}DZ5i0=nJyb8f_|pPLlHZ zr0&q%KRK~GF<~wIy^J> z2Yj5WDGmr>vSxrV=bSMjs{Cm66fDRp$jz2EH~4%=dZjyNW@dE_OAQ^z;$oJTUl{^M zYGyNMiu)7}^Y7{z4h+^$J7hx}CR;ifA2w~?tR{h#=3yCN$#sw^uB5$XQDX2%*80gY z96&`;MQW z!)|wFXl=3oxP03vz0?6%?|p2O<*$TzQ#c}H`X#m>YdWMD%Dd~Xj7il6#5@n%sjdO`Gxe}|cJM8mJ z6>%EJs5$s!I#Hj&cAUB|nV^dHv96LK=ZAkR4jE@Aj8kTHFc}l9Ck!*OV)e|m!=|Ds zmlvFaJmc-R3zqojpkf~#cj81_=Uq{;rT7%R_e^he7Pc|!V0^A^g5`g#$xwmB68HD@ zFF7(?5z3$PNLzrckeOUZ_CY(M2p3-7?7Lo zfKG&@LPQ&%iz$U0ldgfN>Tnf|5t#NpchzjxszJT@C|LpGUN%G-T#nkY8D(WjLf(Me zT^8oE*&VB9w|*zsQF=}_(8~_5MbpL~J{+qdCZ8`ZF1`z@qD)XY%lUFwzRTzv^kBKh z05M}GYvcvhw2PcCfcb;uoW`uI=auAp#e8oD)>Tz^00QpfSuG-_ZS-_KV)DR)1)`=kB+ivS2FmJg3Tn8M^BD#*3K9r}W zmC4auBnlHL!hn@PjFbFN(|!9SK)Gisf>)5AfB(zq&O}k@!_(Ch@a&h-Hg|gIs@hI2 zC)Pwr6$rUj5%6i@7U0<4*ixUw)9TI2g~&)3sJ|h-8N*Dc?md($#%x7aYl|F?rnMSr zrBg^o>-O<#JTN+gpFhIE%+{d+#bFPEy9g7d@4C}zYQT9E1`i&dyEJT@pO@Fw${{5; z{nb`qjk`87TO$5>VINr}#Csr&fF(@!e5jxXOJQFRpj1+9>p}VzYYHWn(u-LyN7EAa zD0CdlPu!S71Tnhi&7p|j0%fEJa&oP!cioZSEO{c(l37rK*WQi0;Ul$fO@?$d& z5twjfsezZumX-^njYn|{^)R!sRlKn_rV36djaBK6d3X<6Tr#w$x89V5q#QlT=AC}y z?Rg$9E<;bx8!=g!8{jH9OzH%v=o&mrOvHbRgxvx%Z1HxjWnwaDq<4(vm8`5r4?m~W z)LeaBQ&~bI(Vg$-=U2TWZ1aZcAZcv%Jfo}83%)Bydo1$ViB5Y5+pI(fmkCsGmiP!| zgwR7yLKX_PGH*9UkB@K1+;MMYOaxk5&HH<6oX6G_?%^{p&&eLB&V|Qu6pwP>G zUJ1h+lu5XH(!E>|k39li3teGoKWN!J7T2EY3DF|`ayG=hK7C1VW%MIt>g2eeU;H$) zCaU>uKrRzaaS_y9V;F^F@E{ALKCdyljQd05FVK^<26i0W|0!BtV@mxqtLKBJ%6Q3X z(>H?dFPPD0q*s;=&uglvcp^TVsaSu!g2LbJJSX(IH1*wg_8yhBR7}O8*wZje#a7JX z<45{k|9AxsTgw-LY351cI*jUrVm*QZ=L5U3SpWGTYtwe>9~8UvES}Q$0hk)FhZ@73 zCWYOjOkDCSPyT`BQwF}R<-l1}-LkCft*xyWyEaQPU{}N#PV2l|&N!NNAop#0Mn=DU zD4ob6y12UJWG=OlHrn-XhXWR65sTAmaMbzLC=1k~D2H(3ppK-mhjsON6+?6aOfL;^Z~w*@&#NCgnV%4cXk>htM2-RykKD}sPqA289meIZF|PP9`;&n ztur_v#?F3+^~Ys+j*mQ4N5~(lu+rz6!B0m1`j%&BIJBhm`EJDC)5GI@eUM2syf_14rKY7lU0g_pB^YfT5AaW~X)xT{RP!bXsG8sI9 zG021UGk1Q94g2Vx*M6=g$JO{Q=$aMXyxHiHwrh>@KOHCvFWDb6Z=IKogg0uTV%E_8 zjmi<46S^^mevb1T?=YH;jSbgaZQH-E6aBES1sEul>hFFL(#MGn6B1`s;!Wp+wBO{p zNT{0P=a-{d`8owTdBNK|+S^zBOBw8ND62JhvqjSRO!qto6XeJ>xCdO*E1L91jQ4yA zhezdGbz7W#&uKLLI|I-c0l$zj3Yvd?YMQORjOoiGJb~mkI*vCTG$w+;EOAYBH{MdD zuM@whRgyW6Es9wLaYzr7ejQdv06z{pa6$rREfz&vY&7~QqJj!WiIQ9B*(x|iw0C$# zlj`Ae&_JqV#4GS%8Zd)&v(;2VcN^A!afXq%OnB5i!; zSxGF_!`oZlSy_5jc9*8B@jtA>vn&d|H8;0$=pHefKYV_mPx>Zqwbzp!5%5#}3_dzl82(|5kKh7`swz z_p)@~H{YTIsfiiF7ZDh|pSrB-JVVPCI;@tN8L1;7{$osLp%ZDMfSTwJz?+sD=Zb98 zF)J@#6n{7-6M<#4b>G68Ud|@h;+u|(bTgB`ghZMySsac5Qyby%i`klsSfuL~3+8DY zfL&e1M`#f>m9Q}ji$|u=SLQSN0ir2s;+>5>%8z}z{+7)G4T9BZ?EMPzOvikz*8PWP zfeY`y5}PYY{m-1aTM!jLujD}vd0GX^a(MA#+mH=6XX;qxzl6f=988Zg(QT_VL2mtV z%9beO)S`k#0|B!w_Pm-gGz8{#>2sMU9FmIhuP7o8+R?`GvZ9ObmcrwZ<165arN-{d z-}juFi~espeETX^DM$MR+O!(B9N~-0G5`IB<;H?xn;;IkP`oJctfaBoau8{CyE}L- ziWrRU5R0e7pA&hdp-nHqd-O|I=~XU;1*sjxHBploql0^jI?XN`Xh1dc`1x%h6a{MVaxd>h|7Z zOl}`)9UQiu?zdmulVTS~`E3U`WjT=@F069-s#s?OM(!ML27?&;Cx;yWKPL`$BDzAnXCL~9`mQ>D*qXdl<&ag9if1yC+e=56F|}qL5KF6?|Zq|@%R4& De1+y1 literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Ridged_Arrows.png.meta b/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Ridged_Arrows.png.meta new file mode 100644 index 00000000..ed39dc24 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/Horizontal Backgrounds/Horizontal_Ridged_Arrows.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: b8467ea5fbaf9ba42908de6411bd443d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/Vertical Backgrounds.meta b/Assets/Joystick Pack/Sprites/Vertical Backgrounds.meta new file mode 100644 index 00000000..75323822 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/Vertical Backgrounds.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 90487ea2fbd75ca4aafda6529e728976 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Outline.png b/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Outline.png new file mode 100644 index 0000000000000000000000000000000000000000..6077a405e8dccf7ae2e11b24c46120efb1f53ccd GIT binary patch literal 5367 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 literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Outline.png.meta b/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Outline.png.meta new file mode 100644 index 00000000..ce7ccaa9 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Outline.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: f054197ef28924b4986cbd91de2ab054 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Outline_Arrows.png b/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Outline_Arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..b78adcdd657570312c1951b0b2766a49d060c54d GIT binary patch literal 5851 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 Un!2<42?9K@*<`md*U}^EUvO2jOaK4? literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Plain.png.meta b/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Plain.png.meta new file mode 100644 index 00000000..0c588c81 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Plain.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: ab6db91373811284caeba2e9472fa9c2 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Plain_Arrows.png b/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Plain_Arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..a7dbfe178ac684af71571e5f1c19b5d89fd60d7c GIT binary patch literal 4697 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 literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Plain_Arrows.png.meta b/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Plain_Arrows.png.meta new file mode 100644 index 00000000..7d0e9b8d --- /dev/null +++ b/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Plain_Arrows.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: 3bf6d9f920f7458448a390f80318ebe6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Ridged.png b/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Ridged.png new file mode 100644 index 0000000000000000000000000000000000000000..f1c37c79d2fe6cfeea71e37e7e0ff6c65737f73e GIT binary patch literal 12445 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 QN8lgpjdmOI)_I)zf7KftWdHyG literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Ridged.png.meta b/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Ridged.png.meta new file mode 100644 index 00000000..e75a5734 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Ridged.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: 08c1fa6351174a9439d97cfc9d3307cc +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Ridged_Arrows.png b/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Ridged_Arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..fb33ab8deee7c8ef77f54f3b23d4219be32d9aa1 GIT binary patch literal 13111 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 literal 0 HcmV?d00001 diff --git a/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Ridged_Arrows.png.meta b/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Ridged_Arrows.png.meta new file mode 100644 index 00000000..2fe53db1 --- /dev/null +++ b/Assets/Joystick Pack/Sprites/Vertical Backgrounds/Vertical_Ridged_Arrows.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: 9332cf0d233636a40a024382720294a3 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins.meta b/Assets/Plugins.meta new file mode 100644 index 00000000..f9dd55d1 --- /dev/null +++ b/Assets/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1373ba581539eed4dafea29c531eddac +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Demigiant.meta b/Assets/Plugins/Demigiant.meta new file mode 100644 index 00000000..47a2513a --- /dev/null +++ b/Assets/Plugins/Demigiant.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6821a6c2ffc000c42bb2a104c7544a19 +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 00000000..cbebc392 --- /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 00000000..7b6f33df --- /dev/null +++ b/Assets/Plugins/Demigiant/DOTween/DOTween.XML @@ -0,0 +1,3089 @@ + + + + DOTween + + + +