From 116105680ad40017ed3da20a69a96f62fee23949 Mon Sep 17 00:00:00 2001 From: Burak Kayalak Date: Sun, 16 Apr 2023 01:11:19 +0300 Subject: [PATCH] First commit --- .gitignore | 72 + .idea/.idea.StarGameWIG/.idea/.gitignore | 13 + .idea/.idea.StarGameWIG/.idea/encodings.xml | 4 + .idea/.idea.StarGameWIG/.idea/indexLayout.xml | 8 + Assets/Asset.meta | 8 + Assets/Asset/Lulu Star.meta | 8 + Assets/Asset/Lulu Star/Animation.meta | 8 + .../Asset/Lulu Star/Animation/Lulu-Move.anim | 74 + .../Lulu Star/Animation/Lulu-Move.anim.meta | 8 + .../Animation/Lulu-Movement.controller | 72 + .../Animation/Lulu-Movement.controller.meta | 8 + Assets/Asset/Lulu Star/Movement.meta | 8 + Assets/Asset/Lulu Star/Movement/lulu-1.png | Bin 0 -> 141980 bytes .../Asset/Lulu Star/Movement/lulu-1.png.meta | 147 + Assets/Asset/Lulu Star/Movement/lulu-2.png | Bin 0 -> 134877 bytes .../Asset/Lulu Star/Movement/lulu-2.png.meta | 147 + Assets/Asset/Lulu Star/Movement/lulu-3.png | Bin 0 -> 142050 bytes .../Asset/Lulu Star/Movement/lulu-3.png.meta | 147 + Assets/InputSystem.meta | 8 + Assets/InputSystem/InputManager.cs | 143 + Assets/InputSystem/InputManager.cs.meta | 11 + Assets/InputSystem/Plugins.meta | 8 + Assets/InputSystem/Plugins/Demigiant.meta | 8 + .../Plugins/Demigiant/DOTween.meta | 21 + .../Plugins/Demigiant/DOTween/DOTween.XML | 3051 ++++++++++++++ .../Demigiant/DOTween/DOTween.XML.meta | 4 + .../Plugins/Demigiant/DOTween/DOTween.dll | Bin 0 -> 174592 bytes .../Demigiant/DOTween/DOTween.dll.meta | 22 + .../Plugins/Demigiant/DOTween/Editor.meta | 5 + .../DOTween/Editor/DOTweenEditor.XML | 110 + .../DOTween/Editor/DOTweenEditor.XML.meta | 4 + .../DOTween/Editor/DOTweenEditor.dll | Bin 0 -> 66560 bytes .../DOTween/Editor/DOTweenEditor.dll.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 + .../Plugins/Demigiant/DOTween/Modules.meta | 5 + .../DOTween/Modules/DOTweenModuleAudio.cs | 202 + .../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 | 403 ++ .../Modules/DOTweenModuleUnityVersion.cs.meta | 8 + .../DOTween/Modules/DOTweenModuleUtils.cs | 167 + .../Modules/DOTweenModuleUtils.cs.meta | 8 + .../Plugins/Demigiant/DOTween/readme.txt | 29 + .../Plugins/Demigiant/DOTween/readme.txt.meta | 4 + Assets/InputSystem/StarInputSystem.cs | 182 + Assets/InputSystem/StarInputSystem.cs.meta | 11 + .../InputSystem/StarInputSystem.inputactions | 54 + .../StarInputSystem.inputactions.meta | 14 + Assets/InputSystem/SwipeDetection.cs | 129 + Assets/InputSystem/SwipeDetection.cs.meta | 11 + Assets/Prefabs.meta | 8 + Assets/Prefabs/Bonus.prefab | 86 + Assets/Prefabs/Bonus.prefab.meta | 7 + Assets/Prefabs/Enemy.prefab | 86 + Assets/Prefabs/Enemy.prefab.meta | 7 + Assets/Resources.meta | 8 + Assets/Resources/DOTweenSettings.asset | 54 + Assets/Resources/DOTweenSettings.asset.meta | 8 + Assets/Samples.meta | 8 + Assets/Samples/Input System.meta | 8 + Assets/Samples/Input System/1.4.4.meta | 8 + .../1.4.4/On-Screen Controls.meta | 8 + .../1.4.4/On-Screen Controls/.sample.json | 4 + .../1.4.4/On-Screen Controls/Button.prefab | 222 ++ .../On-Screen Controls/Button.prefab.meta | 8 + .../OnScreenControlsSample.unity | 1109 ++++++ .../OnScreenControlsSample.unity.meta | 7 + .../1.4.4/On-Screen Controls/Stick.prefab | 173 + .../On-Screen Controls/Stick.prefab.meta | 8 + Assets/Scenes.meta | 8 + Assets/Scenes/SampleScene.unity | 3515 +++++++++++++++++ Assets/Scenes/SampleScene.unity.meta | 7 + Assets/Scripts.meta | 8 + Assets/Scripts/Background.cs | 24 + Assets/Scripts/Background.cs.meta | 11 + Assets/Scripts/CameraFollow.cs | 26 + Assets/Scripts/CameraFollow.cs.meta | 11 + Assets/Scripts/MouseVisual.cs | 47 + Assets/Scripts/MouseVisual.cs.meta | 11 + Assets/Scripts/StarCharacter.cs | 231 ++ Assets/Scripts/StarCharacter.cs.meta | 11 + Packages/manifest.json | 46 + Packages/packages-lock.json | 492 +++ ProjectSettings/AudioManager.asset | 19 + ProjectSettings/ClusterInputManager.asset | 6 + ProjectSettings/DynamicsManager.asset | 37 + ProjectSettings/EditorBuildSettings.asset | 11 + ProjectSettings/EditorSettings.asset | 43 + ProjectSettings/GraphicsSettings.asset | 64 + ProjectSettings/InputManager.asset | 487 +++ ProjectSettings/MemorySettings.asset | 35 + ProjectSettings/NavMeshAreas.asset | 93 + ProjectSettings/NetworkManager.asset | 8 + ProjectSettings/PackageManagerSettings.asset | 35 + ProjectSettings/Physics2DSettings.asset | 56 + ProjectSettings/PresetManager.asset | 7 + ProjectSettings/ProjectSettings.asset | 761 ++++ ProjectSettings/ProjectVersion.txt | 2 + ProjectSettings/QualitySettings.asset | 239 ++ ProjectSettings/SceneTemplateSettings.json | 167 + ProjectSettings/TagManager.asset | 43 + ProjectSettings/TimeManager.asset | 9 + ProjectSettings/UnityConnectSettings.asset | 35 + ProjectSettings/VFXManager.asset | 14 + ProjectSettings/VersionControlSettings.asset | 8 + ProjectSettings/XRSettings.asset | 10 + ProjectSettings/boot.config | 0 126 files changed, 15463 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.idea.StarGameWIG/.idea/.gitignore create mode 100644 .idea/.idea.StarGameWIG/.idea/encodings.xml create mode 100644 .idea/.idea.StarGameWIG/.idea/indexLayout.xml create mode 100644 Assets/Asset.meta create mode 100644 Assets/Asset/Lulu Star.meta create mode 100644 Assets/Asset/Lulu Star/Animation.meta create mode 100644 Assets/Asset/Lulu Star/Animation/Lulu-Move.anim create mode 100644 Assets/Asset/Lulu Star/Animation/Lulu-Move.anim.meta create mode 100644 Assets/Asset/Lulu Star/Animation/Lulu-Movement.controller create mode 100644 Assets/Asset/Lulu Star/Animation/Lulu-Movement.controller.meta create mode 100644 Assets/Asset/Lulu Star/Movement.meta create mode 100644 Assets/Asset/Lulu Star/Movement/lulu-1.png create mode 100644 Assets/Asset/Lulu Star/Movement/lulu-1.png.meta create mode 100644 Assets/Asset/Lulu Star/Movement/lulu-2.png create mode 100644 Assets/Asset/Lulu Star/Movement/lulu-2.png.meta create mode 100644 Assets/Asset/Lulu Star/Movement/lulu-3.png create mode 100644 Assets/Asset/Lulu Star/Movement/lulu-3.png.meta create mode 100644 Assets/InputSystem.meta create mode 100644 Assets/InputSystem/InputManager.cs create mode 100644 Assets/InputSystem/InputManager.cs.meta create mode 100644 Assets/InputSystem/Plugins.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/DOTween.XML create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/DOTween.XML.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/DOTween.dll create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/DOTween.dll.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Editor.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/readme.txt create mode 100644 Assets/InputSystem/Plugins/Demigiant/DOTween/readme.txt.meta create mode 100644 Assets/InputSystem/StarInputSystem.cs create mode 100644 Assets/InputSystem/StarInputSystem.cs.meta create mode 100644 Assets/InputSystem/StarInputSystem.inputactions create mode 100644 Assets/InputSystem/StarInputSystem.inputactions.meta create mode 100644 Assets/InputSystem/SwipeDetection.cs create mode 100644 Assets/InputSystem/SwipeDetection.cs.meta create mode 100644 Assets/Prefabs.meta create mode 100644 Assets/Prefabs/Bonus.prefab create mode 100644 Assets/Prefabs/Bonus.prefab.meta create mode 100644 Assets/Prefabs/Enemy.prefab create mode 100644 Assets/Prefabs/Enemy.prefab.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/Samples.meta create mode 100644 Assets/Samples/Input System.meta create mode 100644 Assets/Samples/Input System/1.4.4.meta create mode 100644 Assets/Samples/Input System/1.4.4/On-Screen Controls.meta create mode 100644 Assets/Samples/Input System/1.4.4/On-Screen Controls/.sample.json create mode 100644 Assets/Samples/Input System/1.4.4/On-Screen Controls/Button.prefab create mode 100644 Assets/Samples/Input System/1.4.4/On-Screen Controls/Button.prefab.meta create mode 100644 Assets/Samples/Input System/1.4.4/On-Screen Controls/OnScreenControlsSample.unity create mode 100644 Assets/Samples/Input System/1.4.4/On-Screen Controls/OnScreenControlsSample.unity.meta create mode 100644 Assets/Samples/Input System/1.4.4/On-Screen Controls/Stick.prefab create mode 100644 Assets/Samples/Input System/1.4.4/On-Screen Controls/Stick.prefab.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/Background.cs create mode 100644 Assets/Scripts/Background.cs.meta create mode 100644 Assets/Scripts/CameraFollow.cs create mode 100644 Assets/Scripts/CameraFollow.cs.meta create mode 100644 Assets/Scripts/MouseVisual.cs create mode 100644 Assets/Scripts/MouseVisual.cs.meta create mode 100644 Assets/Scripts/StarCharacter.cs create mode 100644 Assets/Scripts/StarCharacter.cs.meta create mode 100644 Packages/manifest.json create mode 100644 Packages/packages-lock.json create mode 100644 ProjectSettings/AudioManager.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 ProjectSettings/boot.config diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7a5cd83 --- /dev/null +++ b/.gitignore @@ -0,0 +1,72 @@ +# This .gitignore file should be placed at the root of your Unity project directory +# +# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore +# +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Uu]ser[Ss]ettings/ + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/[Mm]emoryCaptures/ + +# Recordings can get excessive in size +/[Rr]ecordings/ + +# Uncomment this line if you wish to ignore the asset store tools plugin +# /[Aa]ssets/AssetStoreTools* + +# Autogenerated Jetbrains Rider plugin +/[Aa]ssets/Plugins/Editor/JetBrains* + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.csproj +*.unityproj +*.sln +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.mdb +*.opendb +*.VC.db + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Builds +*.apk +*.aab +*.unitypackage +*.app + +# Crashlytics generated file +crashlytics-build.properties + +# Packed Addressables +/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* + +# Temporary auto-generated Android Assets +/[Aa]ssets/[Ss]treamingAssets/aa.meta +/[Aa]ssets/[Ss]treamingAssets/aa/* \ No newline at end of file diff --git a/.idea/.idea.StarGameWIG/.idea/.gitignore b/.idea/.idea.StarGameWIG/.idea/.gitignore new file mode 100644 index 0000000..2ccbbc5 --- /dev/null +++ b/.idea/.idea.StarGameWIG/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/contentModel.xml +/projectSettingsUpdater.xml +/modules.xml +/.idea.StarGameWIG.iml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.idea.StarGameWIG/.idea/encodings.xml b/.idea/.idea.StarGameWIG/.idea/encodings.xml new file mode 100644 index 0000000..df87cf9 --- /dev/null +++ b/.idea/.idea.StarGameWIG/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/.idea.StarGameWIG/.idea/indexLayout.xml b/.idea/.idea.StarGameWIG/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/.idea/.idea.StarGameWIG/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Assets/Asset.meta b/Assets/Asset.meta new file mode 100644 index 0000000..504eab4 --- /dev/null +++ b/Assets/Asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0a5b267c2746ede40a4fa2006fe6e649 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Asset/Lulu Star.meta b/Assets/Asset/Lulu Star.meta new file mode 100644 index 0000000..ab766d3 --- /dev/null +++ b/Assets/Asset/Lulu Star.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5f3a5f5944d12444ea1d3b76ba63e749 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Asset/Lulu Star/Animation.meta b/Assets/Asset/Lulu Star/Animation.meta new file mode 100644 index 0000000..22f756c --- /dev/null +++ b/Assets/Asset/Lulu Star/Animation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 94dd06c21abe6644ea8659071853bae9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Asset/Lulu Star/Animation/Lulu-Move.anim b/Assets/Asset/Lulu Star/Animation/Lulu-Move.anim new file mode 100644 index 0000000..5178d77 --- /dev/null +++ b/Assets/Asset/Lulu Star/Animation/Lulu-Move.anim @@ -0,0 +1,74 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Lulu-Move + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: 21300000, guid: f3cd0e84911d316468f1e53f0abecfff, type: 3} + - time: 0.6666667 + value: {fileID: 21300000, guid: 01be833bae09df641b49c6970dc76139, type: 3} + - time: 1.3333334 + value: {fileID: 21300000, guid: f3d457e7ee24023409609fe8fca53bfa, type: 3} + attribute: m_Sprite + path: lulu-1 + classID: 212 + script: {fileID: 0} + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 2918758888 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: 21300000, guid: f3cd0e84911d316468f1e53f0abecfff, type: 3} + - {fileID: 21300000, guid: 01be833bae09df641b49c6970dc76139, type: 3} + - {fileID: 21300000, guid: f3d457e7ee24023409609fe8fca53bfa, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1.35 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Asset/Lulu Star/Animation/Lulu-Move.anim.meta b/Assets/Asset/Lulu Star/Animation/Lulu-Move.anim.meta new file mode 100644 index 0000000..78a39db --- /dev/null +++ b/Assets/Asset/Lulu Star/Animation/Lulu-Move.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 00e09fff843da8a41a2038880ba426ac +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Asset/Lulu Star/Animation/Lulu-Movement.controller b/Assets/Asset/Lulu Star/Animation/Lulu-Movement.controller new file mode 100644 index 0000000..1e4a662 --- /dev/null +++ b/Assets/Asset/Lulu Star/Animation/Lulu-Movement.controller @@ -0,0 +1,72 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Lulu-Movement + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 9005676318028010743} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1102 &3096317757574130291 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Lulu-Move + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 00e09fff843da8a41a2038880ba426ac, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &9005676318028010743 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 3096317757574130291} + m_Position: {x: 362.8, y: 166, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 3096317757574130291} diff --git a/Assets/Asset/Lulu Star/Animation/Lulu-Movement.controller.meta b/Assets/Asset/Lulu Star/Animation/Lulu-Movement.controller.meta new file mode 100644 index 0000000..8df6629 --- /dev/null +++ b/Assets/Asset/Lulu Star/Animation/Lulu-Movement.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f07895196d1b34d46bf1e61241c06473 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Asset/Lulu Star/Movement.meta b/Assets/Asset/Lulu Star/Movement.meta new file mode 100644 index 0000000..b23e7dd --- /dev/null +++ b/Assets/Asset/Lulu Star/Movement.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2eaf26d13b0f40b4d9cb9aea4d339c0a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Asset/Lulu Star/Movement/lulu-1.png b/Assets/Asset/Lulu Star/Movement/lulu-1.png new file mode 100644 index 0000000000000000000000000000000000000000..17055cfa7cbf8f6e8fe6b355c82a064ef15924c4 GIT binary patch literal 141980 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

A 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¬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 B_y+(0 literal 0 HcmV?d00001 diff --git a/Assets/Asset/Lulu Star/Movement/lulu-1.png.meta b/Assets/Asset/Lulu Star/Movement/lulu-1.png.meta new file mode 100644 index 0000000..48637d1 --- /dev/null +++ b/Assets/Asset/Lulu Star/Movement/lulu-1.png.meta @@ -0,0 +1,147 @@ +fileFormatVersion: 2 +guid: f3cd0e84911d316468f1e53f0abecfff +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 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: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Asset/Lulu Star/Movement/lulu-2.png b/Assets/Asset/Lulu Star/Movement/lulu-2.png new file mode 100644 index 0000000000000000000000000000000000000000..dd698711a9e64d71b848c47eccb29416e766998b GIT binary patch literal 134877 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 Dp2(d?fvRx_cfwxQ9xRY> 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

A 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¬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 + + OnStartTouch(worldPosition, (float)_ctx.startTime); + } + } + + private void EndTouch(InputAction.CallbackContext _ctx) + { + if (OnEndTouch != null) + { + Vector2 worldPosition = cameraMain.ScreenToWorldPoint(starInputSystem.Mobile.Touch.ReadValue()); + + OnEndTouch(worldPosition, (float)_ctx.time); + } + } + + private void GetDelta(InputAction.CallbackContext _ctx) + { + if (OnTouchDelta != null) + { + OnTouchDelta(_ctx.ReadValue()); + } + } + + private void SubscribeToInputEvents() + { + SubscribeStarted(starInputSystem.Mobile.Touch, StartTouch); + SubscribeCancelled(starInputSystem.Mobile.Touch, EndTouch); + + SubscribeAllPhases(starInputSystem.Mobile.TouchDelta, GetDelta); + } + + public Vector2 PrimaryPosition() + { + return cameraMain.ScreenToWorldPoint(starInputSystem.Mobile.Touch.ReadValue()); + } + + private void SubscribeStarted(InputAction action, Action function) + { + action.started += function; + //action.performed += function; + //action.canceled += function; + } + + private void SubscribeCancelled(InputAction action, Action function) + { + //action.started += function; + //action.performed += function; + action.canceled += function; + } + + private void SubscribeAllPhases(InputAction action, Action function) + { + action.started += function; + action.performed += function; + action.canceled += function; + } + + private void OnEnable() + { + starInputSystem.Enable(); + } + private void OnDisable() + { + starInputSystem.Disable(); + } + + + private void Log(string _msg) + { + if (!debugMode) + return; + + Debug.Log("[" + this.name + "] > [" + this.GetType().Name + "]: " + _msg); + } + + private void LogWarning(string _msg) + { + if (!debugMode) + return; + + Debug.LogWarning("[" + this.name + "] > [" + this.GetType().Name + "]: " + _msg); + } + + private void LogError(string _msg) + { + if (!debugMode) + return; + + Debug.LogError("[" + this.name + "] > [" + this.GetType().Name + "]: " + _msg); + } +} diff --git a/Assets/InputSystem/InputManager.cs.meta b/Assets/InputSystem/InputManager.cs.meta new file mode 100644 index 0000000..f43513d --- /dev/null +++ b/Assets/InputSystem/InputManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fd2d0fe53cb5f96469bf499cc62577cc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/InputSystem/Plugins.meta b/Assets/InputSystem/Plugins.meta new file mode 100644 index 0000000..105b495 --- /dev/null +++ b/Assets/InputSystem/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c1e365b251c04ed4ca703c7dc81e2948 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/InputSystem/Plugins/Demigiant.meta b/Assets/InputSystem/Plugins/Demigiant.meta new file mode 100644 index 0000000..c80a0a7 --- /dev/null +++ b/Assets/InputSystem/Plugins/Demigiant.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 46c78d3ccb88e6d4083fcfe8c3c06030 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween.meta new file mode 100644 index 0000000..cbebc39 --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/DOTween.XML b/Assets/InputSystem/Plugins/Demigiant/DOTween/DOTween.XML new file mode 100644 index 0000000..522a316 --- /dev/null +++ b/Assets/InputSystem/Plugins/Demigiant/DOTween/DOTween.XML @@ -0,0 +1,3051 @@ + + + + DOTween + + + +

+ Types of autoPlay behaviours + + + + No tween is automatically played + + + Only Sequences are automatically played + + + Only Tweeners are automatically played + + + All tweens are automatically played + + + + What axis to constrain in case of Vector tweens + + + + Called the first time the tween is set in a playing state, after any eventual delay + + + + Used in place of System.Func, which is not available in mscorlib. + + + + + Used in place of System.Action. + + + + + Public so it can be used by lose scripts related to DOTween (like DOTweenAnimation) + + + + + Used to separate DOTween class from the MonoBehaviour instance (in order to use static constructors on DOTween). + Contains all instance-based methods + + + + Used internally inside Unity Editor, as a trick to update DOTween's inspector at every frame + + + + Directly sets the current max capacity of Tweeners and Sequences + (meaning how many Tweeners and Sequences can be running at the same time), + so that DOTween doesn't need to automatically increase them in case the max is reached + (which might lead to hiccups when that happens). + Sequences capacity must be less or equal to Tweeners capacity + (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's). + Beware: use this method only when there are no tweens running. + + Max Tweeners capacity. + Default: 200 + Max Sequences capacity. + Default: 50 + + + + This class contains a C# port of the easing equations created by Robert Penner (http://robertpenner.com/easing). + + + + + Easing equation function for a bounce (exponentially decaying parabolic bounce) easing in: accelerating from zero velocity. + + + Current time (in frames or seconds). + + + Expected easing duration (in frames or seconds). + + Unused: here to keep same delegate for all ease types. + Unused: here to keep same delegate for all ease types. + + The eased value. + + + + + Easing equation function for a bounce (exponentially decaying parabolic bounce) easing out: decelerating from zero velocity. + + + Current time (in frames or seconds). + + + Expected easing duration (in frames or seconds). + + Unused: here to keep same delegate for all ease types. + Unused: here to keep same delegate for all ease types. + + The eased value. + + + + + Easing equation function for a bounce (exponentially decaying parabolic bounce) easing in/out: acceleration until halfway, then deceleration. + + + Current time (in frames or seconds). + + + Expected easing duration (in frames or seconds). + + Unused: here to keep same delegate for all ease types. + Unused: here to keep same delegate for all ease types. + + The eased value. + + + + + Returns a value between 0 and 1 (inclusive) based on the elapsed time and ease selected + + + + + Returns a value between 0 and 1 (inclusive) based on the elapsed time and ease selected + + + + + Used to interpret AnimationCurves as eases. + Public so it can be used by external ease factories + + + + + Behaviour in case a tween nested inside a Sequence fails and is captured by safe mode + + + + If the Sequence contains other elements, kill the failed tween but preserve the rest + + + Kill the whole Sequence + + + + Log types thrown by errors captured and prevented by safe mode + + + + No logs. NOT RECOMMENDED + + + Throw a normal log + + + Throw a warning log (default) + + + Throw an error log + + + + Additional notices passed to plugins when updating. + Public so it can be used by custom plugins. Internally, only PathPlugin uses it + + + + + None + + + + + Lets the plugin know that we restarted or rewinded + + + + + OnRewind callback behaviour (can only be set via DOTween's Utility Panel) + + + + + When calling Rewind or PlayBackwards/SmoothRewind, OnRewind callbacks will be fired only if the tween isn't already rewinded + + + + + When calling Rewind, OnRewind callbacks will always be fired, even if the tween is already rewinded. + When calling PlayBackwards/SmoothRewind instead, OnRewind callbacks will be fired only if the tween isn't already rewinded + + + + + When calling Rewind or PlayBackwards/SmoothRewind, OnRewind callbacks will always be fired, even if the tween is already rewinded + + + + + Public only so custom shortcuts can access some of these methods + + + + + INTERNAL: used by DO shortcuts and Modules to set special startup mode + + + + + INTERNAL: used by DO shortcuts and Modules to set the tween as blendable + + + + + INTERNAL: used by DO shortcuts and Modules to prevent a tween from using a From setup even if passed + + + + + Used to dispatch commands that need to be captured externally, usually by Modules + + + + + Returns a Vector3 with z = 0 + + + + + Returns the 2D angle between two vectors + + + + + Returns a point on a circle with the given center and radius, + using Unity's circle coordinates (0° points up and increases clockwise) + + + + + Uses approximate equality on each axis instead of Unity's Vector3 equality, + because the latter fails (in some cases) when assigning a Vector3 to a transform.position and then checking it. + + + + + Looks for the type within all possible project assembly names + + + + NO-GC METHOD: changes the start value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new start value + If bigger than 0 applies it as the new tween duration + + + NO-GC METHOD: changes the end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new end value + If TRUE the start value will become the current target's value, otherwise it will stay the same + + + NO-GC METHOD: changes the end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new end value + If bigger than 0 applies it as the new tween duration + If TRUE the start value will become the current target's value, otherwise it will stay the same + + + NO-GC METHOD: changes the start and end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new start value + The new end value + If bigger than 0 applies it as the new tween duration + + + + Struct that stores two colors (used for LineRenderer tweens) + + + + + Used for tween callbacks + + + + + Used for tween callbacks + + + + + Used for custom and animationCurve-based ease functions. Must return a value between 0 and 1. + + + + + Straight Quaternion plugin. Instead of using Vector3 values accepts Quaternion values directly. + Beware: doesn't work with LoopType.Incremental (neither directly nor if inside a LoopType.Incremental Sequence). + To use it, call DOTween.To with the plugin parameter overload, passing it PureQuaternionPlugin.Plug() as first parameter + (do not use any of the other public PureQuaternionPlugin methods): + DOTween.To(PureQuaternionPlugin.Plug(), ()=> myQuaternionProperty, x=> myQuaternionProperty = x, myQuaternionEndValue, duration); + + + + + Plug this plugin inside a DOTween.To call. + Example: + DOTween.To(PureQuaternionPlugin.Plug(), ()=> myQuaternionProperty, x=> myQuaternionProperty = x, myQuaternionEndValue, duration); + + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + + Extra non-tweening-related curve methods + + + + + Cubic bezier curve methods + + + + + Calculates a point along the given Cubic Bezier segment-curve. + + Segment start point + Start point's control point/handle + Segment end point + End point's control point/handle + 0-1 percentage along which to retrieve point + + + + Returns an array containing a series of points along the given Cubic Bezier segment-curve. + + Start point + Start point's control point/handle + End point + End point's control point/handle + Cloud resolution (min: 2) + + + + Calculates a series of points along the given Cubic Bezier segment-curve and adds them to the given list. + + Start point + Start point's control point/handle + End point + End point's control point/handle + Cloud resolution (min: 2) + + + + Main DOTween class. Contains static methods to create and control tweens in a generic way + + + + DOTween's version + + + If TRUE (default) makes tweens slightly slower but safer, automatically taking care of a series of things + (like targets becoming null while a tween is playing). + Default: TRUE + + + Log type when safe mode reports capturing an error and preventing it + + + Behaviour in case a tween nested inside a Sequence fails (and is caught by safe mode). + Default: NestedTweenFailureBehaviour.TryToPreserveSequence + + + If TRUE you will get a DOTween report when exiting play mode (only in the Editor). + Useful to know how many max Tweeners and Sequences you reached and optimize your final project accordingly. + Beware, this will slightly slow down your tweens while inside Unity Editor. + Default: FALSE + + + Global DOTween global timeScale (default: 1). + The final timeScale of a non-timeScaleIndependent tween is: + Unity's Time.timeScale * DOTween.timeScale * tween.timeScale + while the final timeScale of a timeScaleIndependent tween is: + DOTween.unscaledTimeScale * DOTween.timeScale * tween.timeScale + + + DOTween timeScale applied only to timeScaleIndependent tweens (default: 1). + The final timeScale of a timeScaleIndependent tween is: + DOTween.unscaledTimeScale * DOTween.timeScale * tween.timeScale + + + If TRUE, DOTween will use Time.smoothDeltaTime instead of Time.deltaTime for UpdateType.Normal and UpdateType.Late tweens + (unless they're set as timeScaleIndependent, in which case a value between the last timestep + and will be used instead). + Setting this to TRUE will lead to smoother animations. + Default: FALSE + + + If is TRUE, this indicates the max timeStep that an independent update call can last. + Setting this to TRUE will lead to smoother animations. + Default: FALSE + + + DOTween's log behaviour. + Default: LogBehaviour.ErrorsOnly + + + Used to intercept DOTween's logs. If this method isn't NULL, DOTween will call it before writing a log via Unity's own Debug log methods. + Return TRUE if you want DOTween to proceed with the log, FALSE otherwise. + This method must return a bool and accept two parameters: + - LogType: the type of Unity log that DOTween is trying to log + - object: the log message that DOTween wants to log + + + If TRUE draws path gizmos in Unity Editor (if the gizmos button is active). + Deactivate this if you want to avoid gizmos overhead while in Unity Editor + + + If TRUE activates various debug options + + + Stores the target id so it can be used to give more info in case of safeMode error capturing. + Only active if both debugMode and useSafeMode are TRUE + + + Default updateType for new tweens. + Default: UpdateType.Normal + + + Sets whether Unity's timeScale should be taken into account by default or not. + Default: false + + + Default autoPlay behaviour for new tweens. + Default: AutoPlay.All + + + Default autoKillOnComplete behaviour for new tweens. + Default: TRUE + + + Default loopType applied to all new tweens. + Default: LoopType.Restart + + + If TRUE all newly created tweens are set as recyclable, otherwise not. + Default: FALSE + + + Default ease applied to all new Tweeners (not to Sequences which always have Ease.Linear as default). + Default: Ease.InOutQuad + + + Default overshoot/amplitude used for eases + Default: 1.70158f + + + Default period used for eases + Default: 0 + + + Used internally. Assigned/removed by DOTweenComponent.Create/DestroyInstance + + + + Must be called once, before the first ever DOTween call/reference, + otherwise it will be called automatically and will use default options. + Calling it a second time won't have any effect. + You can chain SetCapacity to this method, to directly set the max starting size of Tweeners and Sequences: + DOTween.Init(false, false, LogBehaviour.Default).SetCapacity(100, 20); + + If TRUE all new tweens will be set for recycling, meaning that when killed, + instead of being destroyed, they will be put in a pool and reused instead of creating new tweens. This option allows you to avoid + GC allocations by reusing tweens, but you will have to take care of tween references, since they might result active + even if they were killed (since they might have been respawned and are now being used for other tweens). + If you want to automatically set your tween references to NULL when a tween is killed + you can use the OnKill callback like this: + .OnKill(()=> myTweenReference = null) + You can change this setting at any time by changing the static property, + or you can set the recycling behaviour for each tween separately, using: + SetRecyclable(bool recyclable) + Default: FALSE + If TRUE makes tweens slightly slower but safer, automatically taking care of a series of things + (like targets becoming null while a tween is playing). + You can change this setting at any time by changing the static property. + Default: FALSE + Type of logging to use. + You can change this setting at any time by changing the static property. + Default: ErrorsOnly + + + + Directly sets the current max capacity of Tweeners and Sequences + (meaning how many Tweeners and Sequences can be running at the same time), + so that DOTween doesn't need to automatically increase them in case the max is reached + (which might lead to hiccups when that happens). + Sequences capacity must be less or equal to Tweeners capacity + (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's). + Beware: use this method only when there are no tweens running. + + Max Tweeners capacity. + Default: 200 + Max Sequences capacity. + Default: 50 + + + + Kills all tweens, clears all cached tween pools and plugins and resets the max Tweeners/Sequences capacities to the default values. + + If TRUE also destroys DOTween's gameObject and resets its initializiation, default settings and everything else + (so that next time you use it it will need to be re-initialized) + + + + Clears all cached tween pools. + + + + + Checks all active tweens to find and remove eventually invalid ones (usually because their targets became NULL) + and returns the total number of invalid tweens found and removed. + IMPORTANT: this will cause an error on UWP platform, so don't use it there + BEWARE: this is a slightly expensive operation so use it with care + + + + + Updates all tweens that are set to . + + Manual deltaTime + Unscaled delta time (used with tweens set as timeScaleIndependent) + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using a custom plugin + The plugin to use. Each custom plugin implements a static Get() method + you'll need to call to assign the correct plugin in the correct way, like this: + CustomPlugin.Get() + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens only one axis of a Vector3 to the given value using default plugins. + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + The axis to tween + + + Tweens only the alpha of a Color to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a virtual property from the given start to the given end value + and implements a setter that allows to use that value with an external method or a lambda + Example: + To(MyMethod, 0, 12, 0.5f); + Where MyMethod is a function that accepts a float parameter (which will be the result of the virtual tween) + The action to perform with the tweened value + The value to start from + The end value to reach + The duration of the virtual tween + + + + Punches a Vector3 towards the given direction and then back to the starting one + as if it was connected to the starting position via an elastic. + This tween type generates some GC allocations at startup + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The direction and strength of the punch + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards. + 1 creates a full oscillation between the direction and the opposite decaying direction, + while 0 oscillates only between the starting position and the decaying direction + + + Shakes a Vector3 with the given values. + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction and behave like a random punch. + If TRUE only shakes on the X Y axis (looks better with things like cameras). + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Vector3 with the given values. + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction and behave like a random punch. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Tweens a property or field to the given values using default plugins. + Ease is applied between each segment and not as a whole. + This tween type generates some GC allocations at startup + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end values to reach for each segment. This array must have the same length as durations + The duration of each segment. This array must have the same length as endValues + + + + Returns a new to be used for tween groups. + Mind that Sequences don't have a target applied automatically like Tweener creation shortcuts, + so if you want to be able to kill this Sequence when calling DOTween.Kill(target) you'll have to add + the target manually; you can do that directly by using the overload instead of this one + + + + + Returns a new to be used for tween groups, and allows to set a target + (because Sequences don't have their target set automatically like Tweener creation shortcuts). + That way killing/controlling tweens by target will apply to this Sequence too. + + The target of the Sequence. Relevant only for static target-based methods like DOTween.Kill(target), + useless otherwise + + + Completes all tweens and returns the number of actual tweens completed + (meaning tweens that don't have infinite loops and were not already complete) + For Sequences only: if TRUE also internal Sequence callbacks will be fired, + otherwise they will be ignored + + + Completes all tweens with the given ID or target and returns the number of actual tweens completed + (meaning the tweens that don't have infinite loops and were not already complete) + For Sequences only: if TRUE internal Sequence callbacks will be fired, + otherwise they will be ignored + + + Flips all tweens (changing their direction to forward if it was backwards and viceversa), + then returns the number of actual tweens flipped + + + Flips the tweens with the given ID or target (changing their direction to forward if it was backwards and viceversa), + then returns the number of actual tweens flipped + + + Sends all tweens to the given position (calculating also eventual loop cycles) and returns the actual tweens involved + + + Sends all tweens with the given ID or target to the given position (calculating also eventual loop cycles) + and returns the actual tweens involved + + + Kills all tweens and returns the number of actual tweens killed + If TRUE completes the tweens before killing them + + + Kills all tweens and returns the number of actual tweens killed + If TRUE completes the tweens before killing them + Eventual IDs or targets to exclude from the killing + + + Kills all tweens with the given ID or target and returns the number of actual tweens killed + If TRUE completes the tweens before killing them + + + Kills all tweens with the given target and the given ID, and returns the number of actual tweens killed + If TRUE completes the tweens before killing them + + + Pauses all tweens and returns the number of actual tweens paused + + + Pauses all tweens with the given ID or target and returns the number of actual tweens paused + (meaning the tweens that were actually playing and have been paused) + + + Plays all tweens and returns the number of actual tweens played + (meaning tweens that were not already playing or complete) + + + Plays all tweens with the given ID or target and returns the number of actual tweens played + (meaning the tweens that were not already playing or complete) + + + Plays all tweens with the given target and the given ID, and returns the number of actual tweens played + (meaning the tweens that were not already playing or complete) + + + Plays backwards all tweens and returns the number of actual tweens played + (meaning tweens that were not already started, playing backwards or rewinded) + + + Plays backwards all tweens with the given ID or target and returns the number of actual tweens played + (meaning the tweens that were not already started, playing backwards or rewinded) + + + Plays backwards all tweens with the given target and ID and returns the number of actual tweens played + (meaning the tweens that were not already started, playing backwards or rewinded) + + + Plays forward all tweens and returns the number of actual tweens played + (meaning tweens that were not already playing forward or complete) + + + Plays forward all tweens with the given ID or target and returns the number of actual tweens played + (meaning the tweens that were not already playing forward or complete) + + + Plays forward all tweens with the given target and ID and returns the number of actual tweens played + (meaning the tweens that were not already started, playing backwards or rewinded) + + + Restarts all tweens, then returns the number of actual tweens restarted + + + Restarts all tweens with the given ID or target, then returns the number of actual tweens restarted + If TRUE includes the eventual tweens delays, otherwise skips them + If >= 0 changes the startup delay of all involved tweens to this value, otherwise doesn't touch it + + + Restarts all tweens with the given target and the given ID, and returns the number of actual tweens played + (meaning the tweens that were not already playing or complete) + If TRUE includes the eventual tweens delays, otherwise skips them + If >= 0 changes the startup delay of all involved tweens to this value, otherwise doesn't touch it + + + Rewinds and pauses all tweens, then returns the number of actual tweens rewinded + (meaning tweens that were not already rewinded) + + + Rewinds and pauses all tweens with the given ID or target, then returns the number of actual tweens rewinded + (meaning the tweens that were not already rewinded) + + + Smoothly rewinds all tweens (delays excluded), then returns the number of actual tweens rewinding/rewinded + (meaning tweens that were not already rewinded). + A "smooth rewind" animates the tween to its start position, + skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent. + Note that a tween that was smoothly rewinded will have its play direction flipped + + + Smoothly rewinds all tweens (delays excluded) with the given ID or target, then returns the number of actual tweens rewinding/rewinded + (meaning the tweens that were not already rewinded). + A "smooth rewind" animates the tween to its start position, + skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent. + Note that a tween that was smoothly rewinded will have its play direction flipped + + + Toggles the play state of all tweens and returns the number of actual tweens toggled + (meaning tweens that could be played or paused, depending on the toggle state) + + + Toggles the play state of all tweens with the given ID or target and returns the number of actual tweens toggled + (meaning the tweens that could be played or paused, depending on the toggle state) + + + + Returns TRUE if a tween with the given ID or target is active. + You can also use this to know if a shortcut tween is active for a given target. + Example: + transform.DOMoveX(45, 1); // transform is automatically added as the tween target + DOTween.IsTweening(transform); // Returns true + + The target or ID to look for + If FALSE (default) returns TRUE as long as a tween for the given target/ID is active, + otherwise also requires it to be playing + + + + Returns the total number of active tweens (so both Tweeners and Sequences). + A tween is considered active if it wasn't killed, regardless if it's playing or paused + + + + + Returns the total number of active Tweeners. + A Tweener is considered active if it wasn't killed, regardless if it's playing or paused + + + + + Returns the total number of active Sequences. + A Sequence is considered active if it wasn't killed, regardless if it's playing or paused + + + + + Returns the total number of active and playing tweens. + A tween is considered as playing even if its delay is actually playing + + + + + Returns a the total number of active tweens with the given id. + + If TRUE returns only the tweens with the given ID that are currently playing + + + + Returns a list of all active tweens in a playing state. + Returns NULL if there are no active playing tweens. + Beware: each time you call this method a new list is generated, so use it for debug only + + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) + + + + Returns a list of all active tweens in a paused state. + Returns NULL if there are no active paused tweens. + Beware: each time you call this method a new list is generated, so use it for debug only + + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) + + + + Returns a list of all active tweens with the given id. + Returns NULL if there are no active tweens with the given id. + Beware: each time you call this method a new list is generated + + If TRUE returns only the tweens with the given ID that are currently playing + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) + + + + Returns a list of all active tweens with the given target. + Returns NULL if there are no active tweens with the given target. + Beware: each time you call this method a new list is generated + If TRUE returns only the tweens with the given target that are currently playing + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) + + + + + Creates virtual tweens that can be used to change other elements via their OnUpdate calls + + + + + Tweens a virtual float. + You can add regular settings to the generated tween, + but do not use SetUpdate or you will overwrite the onVirtualUpdate parameter + + The value to start from + The value to tween to + The duration of the tween + A callback which must accept a parameter of type float, called at each update + + + + Tweens a virtual int. + You can add regular settings to the generated tween, + but do not use SetUpdate or you will overwrite the onVirtualUpdate parameter + + The value to start from + The value to tween to + The duration of the tween + A callback which must accept a parameter of type int, called at each update + + + + Tweens a virtual Vector3. + You can add regular settings to the generated tween, + but do not use SetUpdate or you will overwrite the onVirtualUpdate parameter + + The value to start from + The value to tween to + The duration of the tween + A callback which must accept a parameter of type Vector3, called at each update + + + + Tweens a virtual Color. + You can add regular settings to the generated tween, + but do not use SetUpdate or you will overwrite the onVirtualUpdate parameter + + The value to start from + The value to tween to + The duration of the tween + A callback which must accept a parameter of type Color, called at each update + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + Eventual overshoot to use with Back ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + Eventual amplitude to use with Elastic easeType + Eventual period to use with Elastic easeType + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The AnimationCurve to use for ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + Eventual overshoot to use with Back ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + Eventual amplitude to use with Elastic easeType + Eventual period to use with Elastic easeType + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The AnimationCurve to use for ease + + + Fires the given callback after the given time. + Callback delay + Callback to fire when the delay has expired + If TRUE (default) ignores Unity's timeScale + + + + Don't assign this! It's assigned automatically when creating 0 duration tweens + + + + + Don't assign this! It's assigned automatically when setting the ease to an AnimationCurve or to a custom ease function + + + + + Allows to wrap ease method in special ways, adding extra features + + + + + Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS + + FPS at which the tween should be played + Ease type + + + + Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS + + FPS at which the tween should be played + AnimationCurve to use for the ease + + + + Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS + + FPS at which the tween should be played + Custom ease function to use + + + + Used to allow method chaining with DOTween.Init + + + + + Directly sets the current max capacity of Tweeners and Sequences + (meaning how many Tweeners and Sequences can be running at the same time), + so that DOTween doesn't need to automatically increase them in case the max is reached + (which might lead to hiccups when that happens). + Sequences capacity must be less or equal to Tweeners capacity + (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's). + Beware: use this method only when there are no tweens running. + + Max Tweeners capacity. + Default: 200 + Max Sequences capacity. + Default: 50 + + + + Behaviour that can be assigned when chaining a SetLink to a tween + + + + Pauses the tween when the link target is disabled + + + Pauses the tween when the link target is disabled, plays it when it's enabled + + + Pauses the tween when the link target is disabled, restarts it when it's enabled + + + Plays the tween when the link target is enabled + + + Restarts the tween when the link target is enabled + + + Kills the tween when the link target is disabled + + + Kills the tween when the link target is destroyed (becomes NULL). This is always active even if another behaviour is chosen + + + Completes the tween when the link target is disabled + + + Completes and kills the tween when the link target is disabled + + + Rewinds the tween (delay excluded) when the link target is disabled + + + Rewinds and kills the tween when the link target is disabled + + + + Path mode (used to determine correct LookAt orientation) + + + + Ignores the path mode (and thus LookAt behaviour) + + + Regular 3D path + + + 2D top-down path + + + 2D side-scroller path + + + + Type of path to use with DOPath tweens + + + + Linear, composed of straight segments between each waypoint + + + Curved path (which uses Catmull-Rom curves) + + + EXPERIMENTAL: Curved path (which uses Cubic Bezier curves, where each point requires two extra control points) + + + + Tweens a Vector2 along a circle. + EndValue represents the center of the circle, start and end value degrees are inside options + ChangeValue x is changeValue°, y is unused + + + + + Path control point + + + + + Path waypoints (modified by PathPlugin when setting relative end/change value or by CubicBezierDecoder) and by DOTweenPathInspector + + + + + Minimum input points necessary to create the path (doesn't correspond to actual waypoints required) + + + + + Gets the point on the path at the given percentage (0 to 1) + + The percentage (0 to 1) at which to get the point + If TRUE constant speed is taken into account, otherwise not + + + + Base interface for all tween plugins options + + + + Resets the plugin + + + + This plugin generates some GC allocations at startup + + + + + Path plugin works exclusively with Transforms + + + + + Rotation mode used with DORotate methods + + + + + Fastest way that never rotates beyond 360° + + + + + Fastest way that rotates beyond 360° + + + + + Adds the given rotation to the transform using world axis and an advanced precision mode + (like when using transform.Rotate(Space.World)). + In this mode the end value is is always considered relative + + + + + Adds the given rotation to the transform's local axis + (like when rotating an object with the "local" switch enabled in Unity's editor or using transform.Rotate(Space.Self)). + In this mode the end value is is always considered relative + + + + + Type of scramble to apply to string tweens + + + + + No scrambling of characters + + + + + A-Z + a-z + 0-9 characters + + + + + A-Z characters + + + + + a-z characters + + + + + 0-9 characters + + + + + Custom characters + + + + + Type of randomness to apply to a shake tween + + + + Default, full randomness + + + Creates a more balanced randomness that looks more harmonic + + + + Methods that extend Tween objects and allow to control or get data from them + + + + Completes the tween + + + Completes the tween + For Sequences only: if TRUE also internal Sequence callbacks will be fired, + otherwise they will be ignored + + + Flips the direction of this tween (backwards if it was going forward or viceversa) + + + Forces the tween to initialize its settings immediately + + + Send the tween to the given position in time + Time position to reach + (if higher than the whole tween duration the tween will simply reach its end) + If TRUE will play the tween after reaching the given position, otherwise it will pause it + + + Send the tween to the given position in time while also executing any callback between the previous time position and the new one + Time position to reach + (if higher than the whole tween duration the tween will simply reach its end) + If TRUE will play the tween after reaching the given position, otherwise it will pause it + + + Kills the tween + If TRUE completes the tween before killing it + + + + Forces this tween to update manually, regardless of the set via SetUpdate. + Note that the tween will still be subject to normal tween rules, so if for example it's paused this method will do nothing. + Also note that if you only want to update this tween instance manually you'll have to set it to anyway, + so that it's not updated automatically. + + Manual deltaTime + Unscaled delta time (used with tweens set as timeScaleIndependent) + + + Pauses the tween + + + Plays the tween + + + Sets the tween in a backwards direction and plays it + + + Sets the tween in a forward direction and plays it + + + Restarts the tween from the beginning + Ignored in case of Sequences. If TRUE includes the eventual tween delay, otherwise skips it + Ignored in case of Sequences. If >= 0 changes the startup delay to this value, otherwise doesn't touch it + + + Rewinds and pauses the tween + Ignored in case of Sequences. If TRUE includes the eventual tween delay, otherwise skips it + + + Smoothly rewinds the tween (delays excluded). + A "smooth rewind" animates the tween to its start position, + skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent. + If called on a tween who is still waiting for its delay to happen, it will simply set the delay to 0 and pause the tween. + Note that a tween that was smoothly rewinded will have its play direction flipped + + + Plays the tween if it was paused, pauses it if it was playing + + + Send a path tween to the given waypoint. + Has no effect if this is not a path tween. + BEWARE, this is a special utility method: + it works only with Linear eases. Also, the lookAt direction might be wrong after calling this and might need to be set manually + (because it relies on a smooth path movement and doesn't work well with jumps that encompass dramatic direction changes) + Waypoint index to reach + (if higher than the max waypoint index the tween will simply go to the last one) + If TRUE will play the tween after reaching the given waypoint, otherwise it will pause it + + + + Creates a yield instruction that waits until the tween is killed or complete. + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForCompletion(); + + + + + Creates a yield instruction that waits until the tween is killed or rewinded. + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForRewind(); + + + + + Creates a yield instruction that waits until the tween is killed. + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForKill(); + + + + + Creates a yield instruction that waits until the tween is killed or has gone through the given amount of loops. + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForElapsedLoops(2); + + Elapsed loops to wait for + + + + Creates a yield instruction that waits until the tween is killed or has reached the given position (loops included, delays excluded). + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForPosition(2.5f); + + Position (loops included, delays excluded) to wait for + + + + Creates a yield instruction that waits until the tween is killed or started + (meaning when the tween is set in a playing state the first time, after any eventual delay). + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForStart(); + + + + Returns the total number of loops completed by this tween + + + Returns the eventual delay set for this tween + + + Returns the eventual elapsed delay set for this tween + + + Returns the duration of this tween (delays excluded). + NOTE: when using settings like SpeedBased, the duration will be recalculated when the tween starts + If TRUE returns the full duration loops included, + otherwise the duration of a single loop cycle + + + Returns the elapsed time for this tween (delays exluded) + If TRUE returns the elapsed time since startup loops included, + otherwise the elapsed time within the current loop cycle + + + Returns the elapsed percentage (0 to 1) of this tween (delays exluded) + If TRUE returns the elapsed percentage since startup loops included, + otherwise the elapsed percentage within the current loop cycle + + + Returns the elapsed percentage (0 to 1) of this tween (delays exluded), + based on a single loop, and calculating eventual backwards Yoyo loops as 1 to 0 instead of 0 to 1 + + + Returns FALSE if this tween has been killed or is NULL, TRUE otherwise. + BEWARE: if this tween is recyclable it might have been spawned again for another use and thus return TRUE anyway. + When working with recyclable tweens you should take care to know when a tween has been killed and manually set your references to NULL. + If you want to be sure your references are set to NULL when a tween is killed you can use the OnKill callback like this: + .OnKill(()=> myTweenReference = null) + + + Returns TRUE if this tween was reversed and is set to go backwards + + + Returns TRUE if the tween is complete + (silently fails and returns FALSE if the tween has been killed) + + + Returns TRUE if this tween has been initialized + + + Returns TRUE if this tween is playing + + + Returns the total number of loops set for this tween + (returns -1 if the loops are infinite) + + + + Returns a point on a path based on the given path percentage. + Returns Vector3.zero if this is not a path tween, if the tween is invalid, or if the path is not yet initialized. + A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature). + You can force a path to be initialized by calling myTween.ForceInit(). + + Percentage of the path (0 to 1) on which to get the point + + + + Returns an array of points that can be used to draw the path. + Note that this method generates allocations, because it creates a new array. + Returns NULL if this is not a path tween, if the tween is invalid, or if the path is not yet initialized. + A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature). + You can force a path to be initialized by calling myTween.ForceInit(). + + How many points to create for each path segment (waypoint to waypoint). + Only used in case of non-Linear paths + + + + Returns the length of a path. + Returns -1 if this is not a path tween, if the tween is invalid, or if the path is not yet initialized. + A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature). + You can force a path to be initialized by calling myTween.ForceInit(). + + + + + Types of loop + + + + Each loop cycle restarts from the beginning + + + The tween moves forward and backwards at alternate cycles + + + Continuously increments the tween at the end of each loop cycle (A to B, B to B+(A-B), and so on), thus always moving "onward". + In case of String tweens works only if the tween is set as relative + + + + Controls other tweens as a group + + + + + Methods that extend known Unity objects and allow to directly create and control tweens from their instances + + + + Tweens a Camera's aspect to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's backgroundColor to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's farClipPlane to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's fieldOfView to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's nearClipPlane to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's orthographicSize to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's pixelRect to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's rect to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Shakes a Camera's localPosition along its relative X Y axes with the given values. + Also stores the camera as the tween's target so it can be used for filtered operations + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Camera's localPosition along its relative X Y axes with the given values. + Also stores the camera as the tween's target so it can be used for filtered operations + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Camera's localRotation. + Also stores the camera as the tween's target so it can be used for filtered operations + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Camera's localRotation. + Also stores the camera as the tween's target so it can be used for filtered operations + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Tweens a Light's color to the given value. + Also stores the light as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Light's intensity to the given value. + Also stores the light as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Light's shadowStrength to the given value. + Also stores the light as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a LineRenderer's color to the given value. + Also stores the LineRenderer as the tween's target so it can be used for filtered operations. + Note that this method requires to also insert the start colors for the tween, + since LineRenderers have no way to get them. + The start value to tween from + The end value to reachThe duration of the tween + + + Tweens a Material's color to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Material's named color property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween (like _Tint or _SpecColor) + The duration of the tween + + + Tweens a Material's named color property with the given ID to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + + + Tweens a Material's alpha color to the given value + (will have no effect unless your material supports transparency). + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Material's alpha color to the given value + (will have no effect unless your material supports transparency). + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween (like _Tint or _SpecColor) + The duration of the tween + + + Tweens a Material's alpha color with the given ID to the given value + (will have no effect unless your material supports transparency). + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + + + Tweens a Material's named float property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween + The duration of the tween + + + Tweens a Material's named float property with the given ID to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + + + Tweens a Material's texture offset to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The duration of the tween + + + Tweens a Material's named texture offset property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween + The duration of the tween + + + Tweens a Material's texture scale to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The duration of the tween + + + Tweens a Material's named texture scale property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween + The duration of the tween + + + Tweens a Material's named Vector property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween + The duration of the tween + + + Tweens a Material's named Vector property with the given ID to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + + + Tweens a TrailRenderer's startWidth/endWidth to the given value. + Also stores the TrailRenderer as the tween's target so it can be used for filtered operations + The end startWidth to reachThe end endWidth to reach + The duration of the tween + + + Tweens a TrailRenderer's time to the given value. + Also stores the TrailRenderer as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's position to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's X position to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's Y position to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's Z position to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's localPosition to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's X localPosition to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's Y localPosition to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's Z localPosition to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's rotation to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + Rotation mode + + + Tweens a Transform's rotation to the given value using pure quaternion values. + Also stores the transform as the tween's target so it can be used for filtered operations. + PLEASE NOTE: DORotate, which takes Vector3 values, is the preferred rotation method. + This method was implemented for very special cases, and doesn't support LoopType.Incremental loops + (neither for itself nor if placed inside a LoopType.Incremental Sequence) + + The end value to reachThe duration of the tween + + + Tweens a Transform's localRotation to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + Rotation mode + + + Tweens a Transform's rotation to the given value using pure quaternion values. + Also stores the transform as the tween's target so it can be used for filtered operations. + PLEASE NOTE: DOLocalRotate, which takes Vector3 values, is the preferred rotation method. + This method was implemented for very special cases, and doesn't support LoopType.Incremental loops + (neither for itself nor if placed inside a LoopType.Incremental Sequence) + + The end value to reachThe duration of the tween + + + Tweens a Transform's localScale to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's localScale uniformly to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's X localScale to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's Y localScale to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's Z localScale to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's rotation so that it will look towards the given world position. + Also stores the transform as the tween's target so it can be used for filtered operations + The position to look atThe duration of the tween + Eventual axis constraint for the rotation + The vector that defines in which direction up is (default: Vector3.up) + + + EXPERIMENTAL Tweens a Transform's rotation so that it will look towards the given world position, + while also updating the lookAt position every frame + (contrary to which calculates the lookAt rotation only once, when the tween starts). + Also stores the transform as the tween's target so it can be used for filtered operations + The position to look atThe duration of the tween + Eventual axis constraint for the rotation + The vector that defines in which direction up is (default: Vector3.up) + + + Punches a Transform's localPosition towards the given direction and then back to the starting one + as if it was connected to the starting position via an elastic. + The direction and strength of the punch (added to the Transform's current position) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards. + 1 creates a full oscillation between the punch direction and the opposite direction, + while 0 oscillates only between the punch and the start position + If TRUE the tween will smoothly snap all values to integers + + + Punches a Transform's localScale towards the given size and then back to the starting one + as if it was connected to the starting scale via an elastic. + The punch strength (added to the Transform's current scale) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting size when bouncing backwards. + 1 creates a full oscillation between the punch scale and the opposite scale, + while 0 oscillates only between the punch scale and the start scale + + + Punches a Transform's localRotation towards the given size and then back to the starting one + as if it was connected to the starting rotation via an elastic. + The punch strength (added to the Transform's current rotation) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting rotation when bouncing backwards. + 1 creates a full oscillation between the punch rotation and the opposite rotation, + while 0 oscillates only between the punch and the start rotation + + + Shakes a Transform's localPosition with the given values. + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the tween will smoothly snap all values to integers + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Transform's localPosition with the given values. + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the tween will smoothly snap all values to integers + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Transform's localRotation. + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Transform's localRotation. + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Transform's localScale. + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Shakes a Transform's localScale. + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + Randomness mode + + + Tweens a Transform's position to the given value, while also applying a jump effect along the Y axis. + Returns a Sequence instead of a Tweener. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reach + Power of the jump (the max height of the jump is represented by this plus the final Y offset) + Total number of jumps + The duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's localPosition to the given value, while also applying a jump effect along the Y axis. + Returns a Sequence instead of a Tweener. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reach + Power of the jump (the max height of the jump is represented by this plus the final Y offset) + Total number of jumps + The duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's position through the given path waypoints, using the chosen path algorithm. + Also stores the transform as the tween's target so it can be used for filtered operations + The waypoints to go through + The duration of the tween + The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + The path mode: 3D, side-scroller 2D, top-down 2D + The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive. + Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + The color of the path (shown when gizmos are active in the Play panel and the tween is running) + + + Tweens a Transform's localPosition through the given path waypoints, using the chosen path algorithm. + Also stores the transform as the tween's target so it can be used for filtered operations + The waypoint to go through + The duration of the tween + The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + The path mode: 3D, side-scroller 2D, top-down 2D + The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive. + Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + The color of the path (shown when gizmos are active in the Play panel and the tween is running) + + + IMPORTANT: Unless you really know what you're doing, you should use the overload that accepts a Vector3 array instead. + Tweens a Transform's position via the given path. + Also stores the transform as the tween's target so it can be used for filtered operations + The path to use + The duration of the tween + The path mode: 3D, side-scroller 2D, top-down 2D + + + IMPORTANT: Unless you really know what you're doing, you should use the overload that accepts a Vector3 array instead. + Tweens a Transform's localPosition via the given path. + Also stores the transform as the tween's target so it can be used for filtered operations + The path to use + The duration of the tween + The path mode: 3D, side-scroller 2D, top-down 2D + + + Tweens a Tween's timeScale to the given value. + Also stores the Tween as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Light's color to the given value, + in a way that allows other DOBlendableColor tweens to work together on the same target, + instead than fight each other as multiple DOColor would do. + Also stores the Light as the tween's target so it can be used for filtered operations + The value to tween toThe duration of the tween + + + Tweens a Material's color to the given value, + in a way that allows other DOBlendableColor tweens to work together on the same target, + instead than fight each other as multiple DOColor would do. + Also stores the Material as the tween's target so it can be used for filtered operations + The value to tween toThe duration of the tween + + + Tweens a Material's named color property to the given value, + in a way that allows other DOBlendableColor tweens to work together on the same target, + instead than fight each other as multiple DOColor would do. + Also stores the Material as the tween's target so it can be used for filtered operations + The value to tween to + The name of the material property to tween (like _Tint or _SpecColor) + The duration of the tween + + + Tweens a Material's named color property with the given ID to the given value, + in a way that allows other DOBlendableColor tweens to work together on the same target, + instead than fight each other as multiple DOColor would do. + Also stores the Material as the tween's target so it can be used for filtered operations + The value to tween to + The ID of the material property to tween (also called nameID in Unity's manual) + The duration of the tween + + + Tweens a Transform's position BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableMove tweens to work together on the same target, + instead than fight each other as multiple DOMove would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's localPosition BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableMove tweens to work together on the same target, + instead than fight each other as multiple DOMove would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + EXPERIMENTAL METHOD - Tweens a Transform's rotation BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableRotate tweens to work together on the same target, + instead than fight each other as multiple DORotate would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + Rotation mode + + + EXPERIMENTAL METHOD - Tweens a Transform's lcoalRotation BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableRotate tweens to work together on the same target, + instead than fight each other as multiple DORotate would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + Rotation mode + + + Punches a Transform's localRotation BY the given value and then back to the starting one + as if it was connected to the starting rotation via an elastic. Does it in a way that allows other + DOBlendableRotate tweens to work together on the same target + The punch strength (added to the Transform's current rotation) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting rotation when bouncing backwards. + 1 creates a full oscillation between the punch rotation and the opposite rotation, + while 0 oscillates only between the punch and the start rotation + + + Tweens a Transform's localScale BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableScale tweens to work together on the same target, + instead than fight each other as multiple DOScale would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + + + + Completes all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens completed + (meaning the tweens that don't have infinite loops and were not already complete) + + For Sequences only: if TRUE also internal Sequence callbacks will be fired, + otherwise they will be ignored + + + + Completes all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens completed + (meaning the tweens that don't have infinite loops and were not already complete) + + For Sequences only: if TRUE also internal Sequence callbacks will be fired, + otherwise they will be ignored + + + + Kills all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens killed. + + If TRUE completes the tween before killing it + + + + Kills all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens killed. + + If TRUE completes the tween before killing it + + + + Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens flipped. + + + + + Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens flipped. + + + + + Sends to the given position all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens involved. + + Time position to reach + (if higher than the whole tween duration the tween will simply reach its end) + If TRUE will play the tween after reaching the given position, otherwise it will pause it + + + + Sends to the given position all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens involved. + + Time position to reach + (if higher than the whole tween duration the tween will simply reach its end) + If TRUE will play the tween after reaching the given position, otherwise it will pause it + + + + Pauses all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens paused. + + + + + Pauses all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens paused. + + + + + Plays all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays backwards all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays backwards all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays forward all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays forward all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Restarts all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens restarted. + + + + + Restarts all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens restarted. + + + + + Rewinds all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens rewinded. + + + + + Rewinds all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens rewinded. + + + + + Smoothly rewinds all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens rewinded. + + + + + Smoothly rewinds all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens rewinded. + + + + + Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens involved. + + + + + Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens involved. + + + + + This class serves only as a utility class to store tween settings to apply on multiple tweens. + It is in no way needed otherwise, since you can directly apply tween settings to a tween via chaining + + + + A variable you can eventually Clear and reuse when needed, + to avoid instantiating TweenParams objects + + + Creates a new TweenParams object, which you can use to store tween settings + to pass to multiple tweens via myTween.SetAs(myTweenParms) + + + Clears and resets this TweenParams instance using default values, + so it can be reused without instantiating another one + + + Sets the autoKill behaviour of the tween. + Has no effect if the tween has already started + If TRUE the tween will be automatically killed when complete + + + Sets an ID for the tween, which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets an ID for the tween, which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets an ID for the tween, which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets the target for the tween, which can then be used as a filter with DOTween's static methods. + IMPORTANT: use it with caution. If you just want to set an ID for the tween use SetId instead. + When using shorcuts the shortcut target is already assigned as the tween's target, + so using this method will overwrite it and prevent shortcut-operations like myTarget.DOPause from working correctly. + The target to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets the looping options for the tween. + Has no effect if the tween has already started + Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence) + Loop behaviour type (default: LoopType.Restart) + + + Sets the ease of the tween. + If applied to Sequences eases the whole sequence animation + Eventual overshoot or amplitude to use with Back or Elastic easeType (default is 1.70158) + Eventual period to use with Elastic easeType (default is 0) + + + Sets the ease of the tween using an AnimationCurve. + If applied to Sequences eases the whole sequence animation + + + Sets the ease of the tween using a custom ease function. + If applied to Sequences eases the whole sequence animation + + + Sets the recycling behaviour for the tween. + If TRUE the tween will be recycled after being killed, otherwise it will be destroyed. + + + Sets the update type to the one defined in DOTween.defaultUpdateType (UpdateType.Normal unless changed) + and lets you choose if it should be independent from Unity's Time.timeScale + If TRUE the tween will ignore Unity's Time.timeScale + + + Sets the type of update (default or independent) for the tween + The type of update (default: UpdateType.Normal) + If TRUE the tween will ignore Unity's Time.timeScale + + + Sets the onStart callback for the tween. + Called the first time the tween is set in a playing state, after any eventual delay + + + Sets the onPlay callback for the tween. + Called when the tween is set in a playing state, after any eventual delay. + Also called each time the tween resumes playing from a paused state + + + Sets the onRewind callback for the tween. + Called when the tween is rewinded, + either by calling Rewind or by reaching the start position while playing backwards. + Rewinding a tween that is already rewinded will not fire this callback + + + Sets the onUpdate callback for the tween. + Called each time the tween updates + + + Sets the onStepComplete callback for the tween. + Called the moment the tween completes one loop cycle, even when going backwards + + + Sets the onComplete callback for the tween. + Called the moment the tween reaches its final forward position, loops included + + + Sets the onKill callback for the tween. + Called the moment the tween is killed + + + Sets the onWaypointChange callback for the tween. + Called when a path tween reaches a new waypoint + + + Sets a delayed startup for the tween. + Has no effect on Sequences or if the tween has already started + + + If isRelative is TRUE sets the tween as relative + (the endValue will be calculated as startValue + endValue instead than being used directly). + Has no effect on Sequences or if the tween has already started + + + If isSpeedBased is TRUE sets the tween as speed based + (the duration will represent the number of units the tween moves x second). + Has no effect on Sequences, nested tweens, or if the tween has already started + + + + Methods that extend Tween objects and allow to set their parameters + + + + Sets the autoKill behaviour of the tween to TRUE. + Has no effect if the tween has already started or if it's added to a Sequence + + + Sets the autoKill behaviour of the tween. + Has no effect if the tween has already started or if it's added to a Sequence + If TRUE the tween will be automatically killed when complete + + + Sets an ID for the tween (), which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets a string ID for the tween (), which can then be used as a filter with DOTween's static methods. + Filtering via string is 2X faster than using an object as an ID (using the alternate obejct overload) + The string ID to assign to this tween. + + + Sets an int ID for the tween (), which can then be used as a filter with DOTween's static methods. + Filtering via int is 4X faster than via object, 2X faster than via string (using the alternate object/string overloads) + The int ID to assign to this tween. + + + Allows to link this tween to a GameObject + so that it will be automatically killed when the GameObject is destroyed. + Has no effect if the tween is added to a Sequence + The link target (unrelated to the target set via SetTarget) + + + Allows to link this tween to a GameObject and assign a behaviour depending on it. + This will also automatically kill the tween when the GameObject is destroyed. + Has no effect if the tween is added to a Sequence + The link target (unrelated to the target set via SetTarget) + The behaviour to use ( is always evaluated even if you choose another one) + + + Sets the target for the tween, which can then be used as a filter with DOTween's static methods. + IMPORTANT: use it with caution. If you just want to set an ID for the tween use SetId instead. + When using shorcuts the shortcut target is already assigned as the tween's target, + so using this method will overwrite it and prevent shortcut-operations like myTarget.DOPause from working correctly. + The target to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets the looping options for the tween. + Has no effect if the tween has already started + Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence) + + + Sets the looping options for the tween. + Has no effect if the tween has already started + Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence) + Loop behaviour type (default: LoopType.Restart) + + + Sets the ease of the tween. + If applied to Sequences eases the whole sequence animation + + + Sets the ease of the tween. + If applied to Sequences eases the whole sequence animation + + Eventual overshoot to use with Back or Flash ease (default is 1.70158 - 1 for Flash). + In case of Flash ease it must be an intenger and sets the total number of flashes that will happen. + Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value. + + + + Sets the ease of the tween. + If applied to Sequences eases the whole sequence animation + Eventual amplitude to use with Elastic easeType or overshoot to use with Flash easeType (default is 1.70158 - 1 for Flash). + In case of Flash ease it must be an integer and sets the total number of flashes that will happen. + Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value. + + Eventual period to use with Elastic or Flash easeType (default is 0). + In case of Flash ease it indicates the power in time of the ease, and must be between -1 and 1. + 0 is balanced, 1 weakens the ease with time, -1 starts the ease weakened and gives it power towards the end. + + + + Sets the ease of the tween using an AnimationCurve. + If applied to Sequences eases the whole sequence animation + + + Sets the ease of the tween using a custom ease function (which must return a value between 0 and 1). + If applied to Sequences eases the whole sequence animation + + + Allows the tween to be recycled after being killed. + + + Sets the recycling behaviour for the tween. + If TRUE the tween will be recycled after being killed, otherwise it will be destroyed. + + + Sets the update type to UpdateType.Normal and lets you choose if it should be independent from Unity's Time.timeScale + If TRUE the tween will ignore Unity's Time.timeScale + + + Sets the type of update for the tween + The type of update (defalt: UpdateType.Normal) + + + Sets the type of update for the tween and lets you choose if it should be independent from Unity's Time.timeScale + The type of update + If TRUE the tween will ignore Unity's Time.timeScale + + + EXPERIMENTAL: inverts this tween, so that it will play from the end to the beginning + (playing it backwards will actually play it from the beginning to the end). + Has no effect if the tween has already started or if it's added to a Sequence + + + EXPERIMENTAL: inverts this tween, so that it will play from the end to the beginning + (playing it backwards will actually play it from the beginning to the end). + Has no effect if the tween has already started or if it's added to a Sequence + If TRUE the tween will be inverted, otherwise it won't + + + Sets the onStart callback for the tween, clearing any previous onStart callback that was set. + Called the first time the tween is set in a playing state, after any eventual delay + + + Sets the onPlay callback for the tween, clearing any previous onPlay callback that was set. + Called when the tween is set in a playing state, after any eventual delay. + Also called each time the tween resumes playing from a paused state + + + Sets the onPause callback for the tween, clearing any previous onPause callback that was set. + Called when the tween state changes from playing to paused. + If the tween has autoKill set to FALSE, this is called also when the tween reaches completion. + + + Sets the onRewind callback for the tween, clearing any previous onRewind callback that was set. + Called when the tween is rewinded, + either by calling Rewind or by reaching the start position while playing backwards. + Rewinding a tween that is already rewinded will not fire this callback + + + Sets the onUpdate callback for the tween, clearing any previous onUpdate callback that was set. + Called each time the tween updates + + + Sets the onStepComplete callback for the tween, clearing any previous onStepComplete callback that was set. + Called the moment the tween completes one loop cycle, even when going backwards + + + Sets the onComplete callback for the tween, clearing any previous onComplete callback that was set. + Called the moment the tween reaches its final forward position, loops included + + + Sets the onKill callback for the tween, clearing any previous onKill callback that was set. + Called the moment the tween is killed + + + Sets the onWaypointChange callback for the tween, clearing any previous onWaypointChange callback that was set. + Called when a path tween's current waypoint changes + + + Sets the parameters of the tween (id, ease, loops, delay, timeScale, callbacks, etc) as the parameters of the given one. + Doesn't copy specific SetOptions settings: those will need to be applied manually each time. + Has no effect if the tween has already started. + NOTE: the tween's target will not be changed + Tween from which to copy the parameters + + + Sets the parameters of the tween (id, ease, loops, delay, timeScale, callbacks, etc) as the parameters of the given TweenParams. + Has no effect if the tween has already started. + TweenParams from which to copy the parameters + + + Adds the given tween to the end of the Sequence. + Has no effect if the Sequence has already started + The tween to append + + + Adds the given tween to the beginning of the Sequence, pushing forward the other nested content. + Has no effect if the Sequence has already started + The tween to prepend + + + Inserts the given tween at the same time position of the last tween, callback or intervale added to the Sequence. + Note that, in case of a Join after an interval, the insertion time will be the time where the interval starts, not where it finishes. + Has no effect if the Sequence has already started + + + Inserts the given tween at the given time position in the Sequence, + automatically adding an interval if needed. + Has no effect if the Sequence has already started + The time position where the tween will be placed + The tween to insert + + + Adds the given interval to the end of the Sequence. + Has no effect if the Sequence has already started + The interval duration + + + Adds the given interval to the beginning of the Sequence, pushing forward the other nested content. + Has no effect if the Sequence has already started + The interval duration + + + Adds the given callback to the end of the Sequence. + Has no effect if the Sequence has already started + The callback to append + + + Adds the given callback to the beginning of the Sequence, pushing forward the other nested content. + Has no effect if the Sequence has already started + The callback to prepend + + + Inserts the given callback at the given time position in the Sequence, + automatically adding an interval if needed. + Has no effect if the Sequence has already started + The time position where the callback will be placed + The callback to insert + + + Changes a TO tween into a FROM tween: sets the current target's position as the tween's endValue + then immediately sends the target to the previously set endValue. + + + Changes a TO tween into a FROM tween: sets the current target's position as the tween's endValue + then immediately sends the target to the previously set endValue. + If TRUE the FROM value will be calculated as relative to the current one + + + Changes a TO tween into a FROM tween: sets the current value of the target as the endValue, + and the previously passed endValue as the actual startValue. + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + If TRUE the FROM value will be calculated as relative to the current one + + + Changes a TO tween into a FROM tween: sets the tween's starting value to the given one + and eventually sets the tween's target to that value immediately. + Value to start from + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + If TRUE the FROM/TO values will be calculated as relative to the current ones + + + Changes a TO tween into a FROM tween: sets the tween's starting value to the given one + and eventually sets the tween's target to that value immediately. + Alpha value to start from (in case of Fade tweens) + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + If TRUE the FROM/TO values will be calculated as relative to the current ones + + + Changes a TO tween into a FROM tween: sets the tween's starting value to the given one + and eventually sets the tween's target to that value immediately. + Value to start from (in case of Vector tweens that act on a single coordinate or scale tweens) + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + If TRUE the FROM/TO values will be calculated as relative to the current ones + + + Changes a TO tween into a FROM tween: sets the tween's starting value to the given one + and eventually sets the tween's target to that value immediately. + Value to start from (in case of Vector tweens that act on a single coordinate or scale tweens) + If TRUE sets the target to from value immediately, otherwise waits for the tween to start + If TRUE the FROM/TO values will be calculated as relative to the current ones + + + Sets a delayed startup for the tween. + In case of Sequences behaves the same as , + which means the delay will repeat in case of loops (while with tweens it's ignored after the first loop cycle). + Has no effect if the tween has already started + + + EXPERIMENTAL: implemented in v1.2.340. + Sets a delayed startup for the tween with options to choose how the delay is applied in case of Sequences. + Has no effect if the tween has already started + Only used by types: If FALSE sets the delay as a one-time occurrence + (defaults to this for types), + otherwise as a Sequence interval which will repeat at the beginning of every loop cycle + + + Sets the tween as relative + (the endValue will be calculated as startValue + endValue instead than being used directly). + Has no effect on Sequences or if the tween has already started + + + If isRelative is TRUE sets the tween as relative + (the endValue will be calculated as startValue + endValue instead than being used directly). + Has no effect on Sequences or if the tween has already started + + + If isSpeedBased is TRUE sets the tween as speed based + (the duration will represent the number of units the tween moves x second). + Has no effect on Sequences, nested tweens, or if the tween has already started + + + If isSpeedBased is TRUE sets the tween as speed based + (the duration will represent the number of units the tween moves x second). + Has no effect on Sequences, nested tweens, or if the tween has already started + + + Options for float tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector2 tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector2 tweens + Selecting an axis will tween the vector only on that axis, leaving the others untouched + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector3 tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector3 tweens + Selecting an axis will tween the vector only on that axis, leaving the others untouched + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector4 tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector4 tweens + Selecting an axis will tween the vector only on that axis, leaving the others untouched + If TRUE the tween will smoothly snap all values to integers + + + Options for Quaternion tweens + If TRUE (default) the rotation will take the shortest route, and will not rotate more than 360°. + If FALSE the rotation will be fully accounted. Is always FALSE if the tween is set as relative + + + Options for Color tweens + If TRUE only the alpha value of the color will be tweened + + + Options for Vector4 tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector4 tweens + If TRUE, rich text will be interpreted correctly while animated, + otherwise all tags will be considered as normal text + The type of scramble to use, if any + A string containing the characters to use for scrambling. + Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters. + Leave it to NULL to use default ones + + + Options for Vector3Array tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector3Array tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for ShapeCircle tweens + If TRUE the center you set in the DOTween.To method will be considered as relative + to the starting position of the target + If TRUE the tween will smoothly snap all values to integers + + + Options for Path tweens (created via the DOPath shortcut) + The eventual movement axis to lock. You can input multiple axis if you separate them like this: + AxisConstrain.X | AxisConstraint.Y + The eventual rotation axis to lock. You can input multiple axis if you separate them like this: + AxisConstrain.X | AxisConstraint.Y + + + Options for Path tweens (created via the DOPath shortcut) + If TRUE the path will be automatically closed + The eventual movement axis to lock. You can input multiple axis if you separate them like this: + AxisConstrain.X | AxisConstraint.Y + The eventual rotation axis to lock. You can input multiple axis if you separate them like this: + AxisConstrain.X | AxisConstraint.Y + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target towards the given position. + Must be chained directly to the tween creation method or to a SetOptions + The position to look at + The eventual direction to consider as "forward". + If left to NULL defaults to the regular forward side of the transform + The vector that defines in which direction up is (default: Vector3.up) + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target towards the given position with options to keep the Z rotation stable. + Must be chained directly to the tween creation method or to a SetOptions + The position to look at + If TRUE doesn't rotate the target along the Z axis + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target towards another transform. + Must be chained directly to the tween creation method or to a SetOptions + The transform to look at + The eventual direction to consider as "forward". + If left to NULL defaults to the regular forward side of the transform + The vector that defines in which direction up is (default: Vector3.up) + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target towards another transform with options to keep the Z rotation stable. + Must be chained directly to the tween creation method or to a SetOptions + The transform to look at + If TRUE doesn't rotate the target along the Z axis + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target to the path, with the given lookAhead. + Must be chained directly to the tween creation method or to a SetOptions + The percentage of lookAhead to use (0 to 1) + The eventual direction to consider as "forward". + If left to NULL defaults to the regular forward side of the transform + The vector that defines in which direction up is (default: Vector3.up) + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the path with options to keep the Z rotation stable. + Must be chained directly to the tween creation method or to a SetOptions + The percentage of lookAhead to use (0 to 1) + If TRUE doesn't rotate the target along the Z axis + + + + Types of log behaviours + + + + Log only warnings and errors + + + Log warnings, errors and additional infos + + + Log only errors + + + + Indicates either a Tweener or a Sequence + + + + TimeScale for the tween + + + If TRUE the tween will play backwards + + + If TRUE the tween is completely inverted but without playing it backwards + (play backwards will actually play the tween in the original direction) + + + Object ID (usable for filtering with DOTween static methods). Can be anything except a string or an int + (use or for those) + + + String ID (usable for filtering with DOTween static methods). 2X faster than using an object id + + + Int ID (usable for filtering with DOTween static methods). 4X faster than using an object id, 2X faster than using a string id. + Default is -999 so avoid using an ID like that or it will capture all unset intIds + + + Tween target (usable for filtering with DOTween static methods). Automatically set by tween creation shortcuts + + + Called when the tween is set in a playing state, after any eventual delay. + Also called each time the tween resumes playing from a paused state + + + Called when the tween state changes from playing to paused. + If the tween has autoKill set to FALSE, this is called also when the tween reaches completion. + + + Called when the tween is rewinded, + either by calling Rewind or by reaching the start position while playing backwards. + Rewinding a tween that is already rewinded will not fire this callback + + + Called each time the tween updates + + + Called the moment the tween completes one loop cycle + + + Called the moment the tween reaches completion (loops included) + + + Called the moment the tween is killed + + + Called when a path tween's current waypoint changes + + + Tweeners-only (ignored by Sequences), returns TRUE if the tween was set as relative + + + + Set by SetTarget if DOTween's Debug Mode is on (see DOTween Utility Panel -> "Store GameObject's ID" debug option + + + + FALSE when tween is (or should be) despawned - set only by TweenManager + + + Gets and sets the time position (loops included, delays excluded) of the tween + + + Returns TRUE if the tween is set to loop (either a set number of times or infinitely) + + + TRUE after the tween was set in a play state at least once, AFTER any delay is elapsed + + + Time position within a single loop cycle + + + + Animates a single value + + + + Changes the start value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new start value + If bigger than 0 applies it as the new tween duration + + + Changes the end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new end value + If bigger than 0 applies it as the new tween duration + If TRUE the start value will become the current target's value, otherwise it will stay the same + + + Changes the end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new end value + If TRUE the start value will become the current target's value, otherwise it will stay the same + + + Changes the start and end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new start value + The new end value + If bigger than 0 applies it as the new tween duration + + + + Used internally + + + + + Update type + + + + Updates every frame during Update calls + + + Updates every frame during LateUpdate calls + + + Updates using FixedUpdate calls + + + Updates using manual update calls + + + diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween/DOTween.XML.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/DOTween.XML.meta new file mode 100644 index 0000000..7a866b5 --- /dev/null +++ b/Assets/InputSystem/Plugins/Demigiant/DOTween/DOTween.XML.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 34192c5e0d14aee43a0e86cc4823268a +TextScriptImporter: + userData: diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween/DOTween.dll b/Assets/InputSystem/Plugins/Demigiant/DOTween/DOTween.dll new file mode 100644 index 0000000000000000000000000000000000000000..4122abf7b2468abcc8bab2114f8475a26517fc42 GIT binary patch literal 174592 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 literal 0 HcmV?d00001 diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween/DOTween.dll.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/DOTween.dll.meta new file mode 100644 index 0000000..482dbb8 --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Editor.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor.meta new file mode 100644 index 0000000..532edfb --- /dev/null +++ b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: b27f58ae5d5c33a4bb2d1f4f34bd036d +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML new file mode 100644 index 0000000..8b82472 --- /dev/null +++ b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML @@ -0,0 +1,110 @@ + + + + DOTweenEditor + + + + + Starts the update loop of tween in the editor. Has no effect during playMode. + + Eventual callback to call after every update + + + + Stops the update loop and clears the onPreviewUpdated callback. + + If TRUE also resets the tweened objects to their original state. + Note that this works by calling Rewind on all tweens, so it will work correctly + only if you have a single tween type per object and it wasn't killed + If TRUE also kills any cached tween + + + + Readies the tween for editor preview by setting its UpdateType to Manual plus eventual extra settings. + + The tween to ready + If TRUE (recommended) removes all callbacks (OnComplete/Rewind/etc) + If TRUE prevents the tween from being auto-killed at completion + If TRUE starts playing the tween immediately + + + Full major version + first minor version (ex: 2018.1f) + + + Major version + + + First minor version (ex: in 2018.1 it would be 1) + + + + Checks that the given editor texture use the correct import settings, + and applies them if they're incorrect. + + + + + Returns TRUE if setup is required + + + + + Returns TRUE if the file/directory at the given path exists. + + Path, relative to Unity's project folder + + + + + Converts the given project-relative path to a full path, + with backward (\) slashes). + + + + + Converts the given full path to a path usable with AssetDatabase methods + (relative to Unity's project folder, and with the correct Unity forward (/) slashes). + + + + + Connects to a asset. + If the asset already exists at the given path, loads it and returns it. + Otherwise, either returns NULL or automatically creates it before loading and returning it + (depending on the given parameters). + + Asset type + File path (relative to Unity's project folder) + If TRUE and the requested asset doesn't exist, forces its creation + + + + Full path for the given loaded assembly, assembly file included + + + + + Adds the given global define if it's not already present + + + + + Removes the given global define if it's present + + + + + Returns TRUE if the given global define is present in all the + or only in the given , depending on passed parameters. + + + to use. Leave NULL to check in all of them. + + + + Not used as menu item anymore, but as a utiity function + + + + diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta new file mode 100644 index 0000000..7cec113 --- /dev/null +++ b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 2e2c6224d345d9249acfa6e8ef40bb2d +TextScriptImporter: + userData: diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll new file mode 100644 index 0000000000000000000000000000000000000000..c37b48606037f9f3893239c877854690ec0e4d32 GIT binary patch literal 66560 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 an AudioSource's volume to the given value. + /// Also stores the AudioSource as the tween's target so it can be used for filtered operations + /// The end value to reach (0 to 1)The duration of the tween + public static TweenerCore DOFade(this AudioSource target, float endValue, float duration) + { + if (endValue < 0) endValue = 0; + else if (endValue > 1) endValue = 1; + TweenerCore t = DOTween.To(() => target.volume, x => target.volume = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an AudioSource's pitch to the given value. + /// Also stores the AudioSource as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPitch(this AudioSource target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pitch, x => target.pitch = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + +#if UNITY_5 || UNITY_2017_1_OR_NEWER + #region AudioMixer (Unity 5 or Newer) + + /// Tweens an AudioMixer's exposed float to the given value. + /// Also stores the AudioMixer as the tween's target so it can be used for filtered operations. + /// Note that you need to manually expose a float in an AudioMixerGroup in order to be able to tween it from an AudioMixer. + /// Name given to the exposed float to set + /// The end value to reachThe duration of the tween + public static TweenerCore DOSetFloat(this AudioMixer target, string floatName, float endValue, float duration) + { + TweenerCore t = DOTween.To(()=> { + float currVal; + target.GetFloat(floatName, out currVal); + return currVal; + }, x=> target.SetFloat(floatName, x), endValue, duration); + t.SetTarget(target); + return t; + } + + #region Operation Shortcuts + + /// + /// Completes all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens completed + /// (meaning the tweens that don't have infinite loops and were not already complete) + /// + /// For Sequences only: if TRUE also internal Sequence callbacks will be fired, + /// otherwise they will be ignored + public static int DOComplete(this AudioMixer target, bool withCallbacks = false) + { + return DOTween.Complete(target, withCallbacks); + } + + /// + /// Kills all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens killed. + /// + /// If TRUE completes the tween before killing it + public static int DOKill(this AudioMixer target, bool complete = false) + { + return DOTween.Kill(target, complete); + } + + /// + /// Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens flipped. + /// + public static int DOFlip(this AudioMixer target) + { + return DOTween.Flip(target); + } + + /// + /// Sends to the given position all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens involved. + /// + /// Time position to reach + /// (if higher than the whole tween duration the tween will simply reach its end) + /// If TRUE will play the tween after reaching the given position, otherwise it will pause it + public static int DOGoto(this AudioMixer target, float to, bool andPlay = false) + { + return DOTween.Goto(target, to, andPlay); + } + + /// + /// Pauses all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens paused. + /// + public static int DOPause(this AudioMixer target) + { + return DOTween.Pause(target); + } + + /// + /// Plays all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlay(this AudioMixer target) + { + return DOTween.Play(target); + } + + /// + /// Plays backwards all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlayBackwards(this AudioMixer target) + { + return DOTween.PlayBackwards(target); + } + + /// + /// Plays forward all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlayForward(this AudioMixer target) + { + return DOTween.PlayForward(target); + } + + /// + /// Restarts all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens restarted. + /// + public static int DORestart(this AudioMixer target) + { + return DOTween.Restart(target); + } + + /// + /// Rewinds all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens rewinded. + /// + public static int DORewind(this AudioMixer target) + { + return DOTween.Rewind(target); + } + + /// + /// Smoothly rewinds all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens rewinded. + /// + public static int DOSmoothRewind(this AudioMixer target) + { + return DOTween.SmoothRewind(target); + } + + /// + /// Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens involved. + /// + public static int DOTogglePause(this AudioMixer target) + { + return DOTween.TogglePause(target); + } + + #endregion + + #endregion +#endif + + #endregion + } +} +#endif diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta new file mode 100644 index 0000000..50aa010 --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs new file mode 100644 index 0000000..2ab3775 --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta new file mode 100644 index 0000000..4b8991f --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs new file mode 100644 index 0000000..08b0700 --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta new file mode 100644 index 0000000..0ce0d75 --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs new file mode 100644 index 0000000..d01f728 --- /dev/null +++ b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs @@ -0,0 +1,193 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Plugins; +using DG.Tweening.Plugins.Core.PathCore; +using DG.Tweening.Plugins.Options; +using UnityEngine; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModulePhysics2D + { + #region Shortcuts + + #region Rigidbody2D Shortcuts + + /// Tweens a Rigidbody2D's position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMove(this Rigidbody2D target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody2D's X position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveX(this Rigidbody2D target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector2(endValue, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody2D's Y position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveY(this Rigidbody2D target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector2(0, endValue), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody2D's rotation to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DORotate(this Rigidbody2D target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration); + t.SetTarget(target); + return t; + } + + #region Special + + /// Tweens a Rigidbody2D's position to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations. + /// IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJump(this Rigidbody2D target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.position, x => target.position = x, new Vector2(0, jumpPower), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(() => startPosY = target.position.y); + s.Append(DOTween.To(() => target.position, x => target.position = x, new Vector2(endValue.x, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + yTween.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector3 pos = target.position; + pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad); + target.MovePosition(pos); + }); + return s; + } + + /// Tweens a Rigidbody2D's position through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations. + /// NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOPath. + /// The waypoints to go through + /// The duration of the tween + /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOPath( + this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + int len = path.Length; + Vector3[] path3D = new Vector3[len]; + for (int i = 0; i < len; ++i) path3D[i] = path[i]; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), new Path(pathType, path3D, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody2D = true; + t.plugOptions.mode = pathMode; + return t; + } + /// Tweens a Rigidbody2D's localPosition through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOLocalPath. + /// The waypoint to go through + /// The duration of the tween + /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOLocalPath( + this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + int len = path.Length; + Vector3[] path3D = new Vector3[len]; + for (int i = 0; i < len; ++i) path3D[i] = path[i]; + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path3D, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody2D = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + // Used by path editor when creating the actual tween, so it can pass a pre-compiled path + internal static TweenerCore DOPath( + this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody2D = true; + t.plugOptions.mode = pathMode; + return t; + } + internal static TweenerCore DOLocalPath( + this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody2D = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta new file mode 100644 index 0000000..ca9ed29 --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs new file mode 100644 index 0000000..549fff3 --- /dev/null +++ b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs @@ -0,0 +1,93 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER +using System; +using UnityEngine; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleSprite + { + #region Shortcuts + + #region SpriteRenderer + + /// Tweens a SpriteRenderer's color to the given value. + /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this SpriteRenderer target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Material's alpha color to the given value. + /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this SpriteRenderer target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a SpriteRenderer's color using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this SpriteRenderer target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + + #endregion + + #region Blendables + + #region SpriteRenderer + + /// Tweens a SpriteRenderer's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the SpriteRenderer as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this SpriteRenderer target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta new file mode 100644 index 0000000..a0c67c4 --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs new file mode 100644 index 0000000..b3a6fd1 --- /dev/null +++ b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs @@ -0,0 +1,662 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true && (UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER + +using System; +using System.Globalization; +using UnityEngine; +using UnityEngine.UI; +using DG.Tweening.Core; +using DG.Tweening.Core.Enums; +using DG.Tweening.Plugins; +using DG.Tweening.Plugins.Options; +using Outline = UnityEngine.UI.Outline; +using Text = UnityEngine.UI.Text; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleUI + { + #region Shortcuts + + #region CanvasGroup + + /// Tweens a CanvasGroup's alpha color to the given value. + /// Also stores the canvasGroup as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this CanvasGroup target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.alpha, x => target.alpha = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region Graphic + + /// Tweens an Graphic's color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Graphic target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Graphic's alpha color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Graphic target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region Image + + /// Tweens an Image's color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Image target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Image's alpha color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Image target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Image's fillAmount to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reach (0 to 1)The duration of the tween + public static TweenerCore DOFillAmount(this Image target, float endValue, float duration) + { + if (endValue > 1) endValue = 1; + else if (endValue < 0) endValue = 0; + TweenerCore t = DOTween.To(() => target.fillAmount, x => target.fillAmount = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Image's colors using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this Image target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + + #endregion + + #region LayoutElement + + /// Tweens an LayoutElement's flexibleWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOFlexibleSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => new Vector2(target.flexibleWidth, target.flexibleHeight), x => { + target.flexibleWidth = x.x; + target.flexibleHeight = x.y; + }, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens an LayoutElement's minWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMinSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => new Vector2(target.minWidth, target.minHeight), x => { + target.minWidth = x.x; + target.minHeight = x.y; + }, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens an LayoutElement's preferredWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOPreferredSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => new Vector2(target.preferredWidth, target.preferredHeight), x => { + target.preferredWidth = x.x; + target.preferredHeight = x.y; + }, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + #endregion + + #region Outline + + /// Tweens a Outline's effectColor to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Outline target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.effectColor, x => target.effectColor = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Outline's effectColor alpha to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Outline target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.effectColor, x => target.effectColor = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Outline's effectDistance to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOScale(this Outline target, Vector2 endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.effectDistance, x => target.effectDistance = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region RectTransform + + /// Tweens a RectTransform's anchoredPosition to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPosX(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPosY(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, endValue), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's anchoredPosition3D to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3D(this RectTransform target, Vector3 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition3D X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3DX(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(endValue, 0, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition3D Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3DY(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, endValue, 0), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition3D Z to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3DZ(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, 0, endValue), duration); + t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's anchorMax to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorMax(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchorMax, x => target.anchorMax = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's anchorMin to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorMin(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchorMin, x => target.anchorMin = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's pivot to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPivot(this RectTransform target, Vector2 endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, endValue, duration); + t.SetTarget(target); + return t; + } + /// Tweens a RectTransform's pivot X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPivotX(this RectTransform target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(endValue, 0), duration); + t.SetOptions(AxisConstraint.X).SetTarget(target); + return t; + } + /// Tweens a RectTransform's pivot Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPivotY(this RectTransform target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(0, endValue), duration); + t.SetOptions(AxisConstraint.Y).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's sizeDelta to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOSizeDelta(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.sizeDelta, x => target.sizeDelta = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Punches a RectTransform's anchoredPosition towards the given direction and then back to the starting one + /// as if it was connected to the starting position via an elastic. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The direction and strength of the punch (added to the RectTransform's current position) + /// The duration of the tween + /// Indicates how much will the punch vibrate + /// Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards. + /// 1 creates a full oscillation between the punch direction and the opposite direction, + /// while 0 oscillates only between the punch and the start position + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOPunchAnchorPos(this RectTransform target, Vector2 punch, float duration, int vibrato = 10, float elasticity = 1, bool snapping = false) + { + return DOTween.Punch(() => target.anchoredPosition, x => target.anchoredPosition = x, punch, duration, vibrato, elasticity) + .SetTarget(target).SetOptions(snapping); + } + + /// Shakes a RectTransform's anchoredPosition with the given values. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The duration of the tween + /// The shake strength + /// Indicates how much will the shake vibrate + /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + /// Setting it to 0 will shake along a single direction. + /// If TRUE the tween will smoothly snap all values to integers + /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + /// Randomness mode + public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, float strength = 100, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full) + { + return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, true, fadeOut, randomnessMode) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping); + } + /// Shakes a RectTransform's anchoredPosition with the given values. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The duration of the tween + /// The shake strength on each axis + /// Indicates how much will the shake vibrate + /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + /// Setting it to 0 will shake along a single direction. + /// If TRUE the tween will smoothly snap all values to integers + /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + /// Randomness mode + public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, Vector2 strength, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full) + { + return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, fadeOut, randomnessMode) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping); + } + + #region Special + + /// Tweens a RectTransform's anchoredPosition to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJumpAnchorPos(this RectTransform target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + + // Separate Y Tween so we can elaborate elapsedPercentage on that insted of on the Sequence + // (in case users add a delay or other elements to the Sequence) + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, jumpPower), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(()=> startPosY = target.anchoredPosition.y); + s.Append(DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue.x, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + s.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector2 pos = target.anchoredPosition; + pos.y += DOVirtual.EasedValue(0, offsetY, s.ElapsedDirectionalPercentage(), Ease.OutQuad); + target.anchoredPosition = pos; + }); + return s; + } + + #endregion + + #endregion + + #region ScrollRect + + /// Tweens a ScrollRect's horizontal/verticalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DONormalizedPos(this ScrollRect target, Vector2 endValue, float duration, bool snapping = false) + { + return DOTween.To(() => new Vector2(target.horizontalNormalizedPosition, target.verticalNormalizedPosition), + x => { + target.horizontalNormalizedPosition = x.x; + target.verticalNormalizedPosition = x.y; + }, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + /// Tweens a ScrollRect's horizontalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOHorizontalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.horizontalNormalizedPosition, x => target.horizontalNormalizedPosition = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + /// Tweens a ScrollRect's verticalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOVerticalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.verticalNormalizedPosition, x => target.verticalNormalizedPosition = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + + #endregion + + #region Slider + + /// Tweens a Slider's value to the given value. + /// Also stores the Slider as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOValue(this Slider target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.value, x => target.value = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + #endregion + + #region Text + + /// Tweens a Text's color to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Text target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// + /// Tweens a Text's text from one integer to another, with options for thousands separators + /// + /// The value to start from + /// The end value to reach + /// The duration of the tween + /// If TRUE (default) also adds thousands separators + /// The to use (InvariantCulture if NULL) + public static TweenerCore DOCounter( + this Text target, int fromValue, int endValue, float duration, bool addThousandsSeparator = true, CultureInfo culture = null + ){ + int v = fromValue; + CultureInfo cInfo = !addThousandsSeparator ? null : culture ?? CultureInfo.InvariantCulture; + TweenerCore t = DOTween.To(() => v, x => { + v = x; + target.text = addThousandsSeparator + ? v.ToString("N0", cInfo) + : v.ToString(); + }, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Text's alpha color to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Text target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Text's text to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end string to tween toThe duration of the tween + /// If TRUE (default), rich text will be interpreted correctly while animated, + /// otherwise all tags will be considered as normal text + /// The type of scramble mode to use, if any + /// A string containing the characters to use for scrambling. + /// Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters. + /// Leave it to NULL (default) to use default ones + public static TweenerCore DOText(this Text target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null) + { + if (endValue == null) { + if (Debugger.logPriority > 0) Debugger.LogWarning("You can't pass a NULL string to DOText: an empty string will be used instead to avoid errors"); + endValue = ""; + } + TweenerCore t = DOTween.To(() => target.text, x => target.text = x, endValue, duration); + t.SetOptions(richTextEnabled, scrambleMode, scrambleChars) + .SetTarget(target); + return t; + } + + #endregion + + #region Blendables + + #region Graphic + + /// Tweens a Graphic's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Graphic as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Graphic target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #region Image + + /// Tweens a Image's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Image as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Image target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #region Text + + /// Tweens a Text's color BY the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Text target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #endregion + + #region Shapes + + /// Tweens a RectTransform's anchoredPosition so that it draws a circle around the given center. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations. + /// IMPORTANT: SetFrom(value) requires a instead of a float, where the X property represents the "from degrees value" + /// Circle-center/pivot around which to rotate (in UI anchoredPosition coordinates) + /// The end value degrees to reach (to rotate counter-clockwise pass a negative value) + /// The duration of the tween + /// If TRUE the coordinates will be considered as relative to the target's current anchoredPosition + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOShapeCircle( + this RectTransform target, Vector2 center, float endValueDegrees, float duration, bool relativeCenter = false, bool snapping = false + ) + { + TweenerCore t = DOTween.To( + CirclePlugin.Get(), () => target.anchoredPosition, x => target.anchoredPosition = x, center, duration + ); + t.SetOptions(endValueDegrees, relativeCenter, snapping).SetTarget(target); + return t; + } + + #endregion + + #endregion + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + + public static class Utils + { + /// + /// Converts the anchoredPosition of the first RectTransform to the second RectTransform, + /// taking into consideration offset, anchors and pivot, and returns the new anchoredPosition + /// + public static Vector2 SwitchToRectTransform(RectTransform from, RectTransform to) + { + Vector2 localPoint; + Vector2 fromPivotDerivedOffset = new Vector2(from.rect.width * 0.5f + from.rect.xMin, from.rect.height * 0.5f + from.rect.yMin); + Vector2 screenP = RectTransformUtility.WorldToScreenPoint(null, from.position); + screenP += fromPivotDerivedOffset; + RectTransformUtility.ScreenPointToLocalPointInRectangle(to, screenP, null, out localPoint); + Vector2 pivotDerivedOffset = new Vector2(to.rect.width * 0.5f + to.rect.xMin, to.rect.height * 0.5f + to.rect.yMin); + return to.anchoredPosition + localPoint - pivotDerivedOffset; + } + } + } +} +#endif diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta new file mode 100644 index 0000000..60d55ef --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs new file mode 100644 index 0000000..fa1ac05 --- /dev/null +++ b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs @@ -0,0 +1,403 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +using System; +using UnityEngine; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; +//#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0) +//using Task = System.Threading.Tasks.Task; +//#endif + +#pragma warning disable 1591 +namespace DG.Tweening +{ + /// + /// Shortcuts/functions that are not strictly related to specific Modules + /// but are available only on some Unity versions + /// + public static class DOTweenModuleUnityVersion + { +#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER + #region Unity 4.3 or Newer + + #region Material + + /// Tweens a Material's color using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this Material target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + /// Tweens a Material's named color property using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to use + /// The name of the material property to tween (like _Tint or _SpecColor) + /// The duration of the tween + public static Sequence DOGradientColor(this Material target, Gradient gradient, string property, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.SetColor(property, c.color); + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, property, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + + #endregion + + #endregion +#endif + +#if UNITY_5_3_OR_NEWER || UNITY_2017_1_OR_NEWER + #region Unity 5.3 or Newer + + #region CustomYieldInstructions + + /// + /// Returns a that waits until the tween is killed or complete. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForCompletion(true); + /// + public static CustomYieldInstruction WaitForCompletion(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForCompletion(t); + } + + /// + /// Returns a that waits until the tween is killed or rewinded. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForRewind(); + /// + public static CustomYieldInstruction WaitForRewind(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForRewind(t); + } + + /// + /// Returns a that waits until the tween is killed. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForKill(); + /// + public static CustomYieldInstruction WaitForKill(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForKill(t); + } + + /// + /// Returns a that waits until the tween is killed or has gone through the given amount of loops. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForElapsedLoops(2); + /// + /// Elapsed loops to wait for + public static CustomYieldInstruction WaitForElapsedLoops(this Tween t, int elapsedLoops, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForElapsedLoops(t, elapsedLoops); + } + + /// + /// Returns a that waits until the tween is killed + /// or has reached the given time position (loops included, delays excluded). + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForPosition(2.5f); + /// + /// Position (loops included, delays excluded) to wait for + public static CustomYieldInstruction WaitForPosition(this Tween t, float position, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForPosition(t, position); + } + + /// + /// Returns a that waits until the tween is killed or started + /// (meaning when the tween is set in a playing state the first time, after any eventual delay). + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForStart(); + /// + public static CustomYieldInstruction WaitForStart(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForStart(t); + } + + #endregion + + #endregion +#endif + +#if UNITY_2018_1_OR_NEWER + #region Unity 2018.1 or Newer + + #region Material + + /// Tweens a Material's named texture offset property with the given ID to the given value. + /// Also stores the material as the tween's target so it can be used for filtered operations + /// The end value to reach + /// The ID of the material property to tween (also called nameID in Unity's manual) + /// The duration of the tween + public static TweenerCore DOOffset(this Material target, Vector2 endValue, int propertyID, float duration) + { + if (!target.HasProperty(propertyID)) { + if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID); + return null; + } + TweenerCore t = DOTween.To(() => target.GetTextureOffset(propertyID), x => target.SetTextureOffset(propertyID, x), endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Material's named texture scale property with the given ID to the given value. + /// Also stores the material as the tween's target so it can be used for filtered operations + /// The end value to reach + /// The ID of the material property to tween (also called nameID in Unity's manual) + /// The duration of the tween + public static TweenerCore DOTiling(this Material target, Vector2 endValue, int propertyID, float duration) + { + if (!target.HasProperty(propertyID)) { + if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID); + return null; + } + TweenerCore t = DOTween.To(() => target.GetTextureScale(propertyID), x => target.SetTextureScale(propertyID, x), endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region .NET 4.6 or Newer + +#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0) + + #region Async Instructions + + /// + /// Returns an async that waits until the tween is killed or complete. + /// It can be used inside an async operation. + /// Example usage:await myTween.WaitForCompletion(); + /// + public static async System.Threading.Tasks.Task AsyncWaitForCompletion(this Tween t) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && !t.IsComplete()) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed or rewinded. + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForRewind(); + /// + public static async System.Threading.Tasks.Task AsyncWaitForRewind(this Tween t) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0)) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed. + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForKill(); + /// + public static async System.Threading.Tasks.Task AsyncWaitForKill(this Tween t) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed or has gone through the given amount of loops. + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForElapsedLoops(); + /// + /// Elapsed loops to wait for + public static async System.Threading.Tasks.Task AsyncWaitForElapsedLoops(this Tween t, int elapsedLoops) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && t.CompletedLoops() < elapsedLoops) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed or started + /// (meaning when the tween is set in a playing state the first time, after any eventual delay). + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForPosition(); + /// + /// Position (loops included, delays excluded) to wait for + public static async System.Threading.Tasks.Task AsyncWaitForPosition(this Tween t, float position) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && t.position * (t.CompletedLoops() + 1) < position) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed. + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForKill(); + /// + public static async System.Threading.Tasks.Task AsyncWaitForStart(this Tween t) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && !t.playedOnce) await System.Threading.Tasks.Task.Yield(); + } + + #endregion +#endif + + #endregion + + #endregion +#endif + } + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ CLASSES █████████████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + +#if UNITY_5_3_OR_NEWER || UNITY_2017_1_OR_NEWER + public static class DOTweenCYInstruction + { + public class WaitForCompletion : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && !t.IsComplete(); + }} + readonly Tween t; + public WaitForCompletion(Tween tween) + { + t = tween; + } + } + + public class WaitForRewind : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0); + }} + readonly Tween t; + public WaitForRewind(Tween tween) + { + t = tween; + } + } + + public class WaitForKill : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active; + }} + readonly Tween t; + public WaitForKill(Tween tween) + { + t = tween; + } + } + + public class WaitForElapsedLoops : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && t.CompletedLoops() < elapsedLoops; + }} + readonly Tween t; + readonly int elapsedLoops; + public WaitForElapsedLoops(Tween tween, int elapsedLoops) + { + t = tween; + this.elapsedLoops = elapsedLoops; + } + } + + public class WaitForPosition : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && t.position * (t.CompletedLoops() + 1) < position; + }} + readonly Tween t; + readonly float position; + public WaitForPosition(Tween tween, float position) + { + t = tween; + this.position = position; + } + } + + public class WaitForStart : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && !t.playedOnce; + }} + readonly Tween t; + public WaitForStart(Tween tween) + { + t = tween; + } + } + } +#endif +} diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta new file mode 100644 index 0000000..290189f --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs new file mode 100644 index 0000000..12a365d --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta new file mode 100644 index 0000000..ab62186 --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/readme.txt b/Assets/InputSystem/Plugins/Demigiant/DOTween/readme.txt new file mode 100644 index 0000000..37ff7ef --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/readme.txt.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/readme.txt.meta new file mode 100644 index 0000000..3799165 --- /dev/null +++ b/Assets/InputSystem/Plugins/Demigiant/DOTween/readme.txt.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: fccfc62abf2eb0a4db614853430894fd +TextScriptImporter: + userData: diff --git a/Assets/InputSystem/StarInputSystem.cs b/Assets/InputSystem/StarInputSystem.cs new file mode 100644 index 0000000..a6d43e2 --- /dev/null +++ b/Assets/InputSystem/StarInputSystem.cs @@ -0,0 +1,182 @@ +//------------------------------------------------------------------------------ +// +// This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator +// version 1.4.4 +// from Assets/InputSystem/StarInputSystem.inputactions +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine.InputSystem; +using UnityEngine.InputSystem.Utilities; + +public partial class @StarInputSystem : IInputActionCollection2, IDisposable +{ + public InputActionAsset asset { get; } + public @StarInputSystem() + { + asset = InputActionAsset.FromJson(@"{ + ""name"": ""StarInputSystem"", + ""maps"": [ + { + ""name"": ""Mobile"", + ""id"": ""4f36c9bb-8869-4103-8ffd-632497a0a84e"", + ""actions"": [ + { + ""name"": ""Touch"", + ""type"": ""PassThrough"", + ""id"": ""4da9e580-9e17-4341-89a4-2924d2989d1c"", + ""expectedControlType"": ""Vector2"", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": false + }, + { + ""name"": ""TouchDelta"", + ""type"": ""PassThrough"", + ""id"": ""c441710c-d02e-47a9-ac55-0b42c193376c"", + ""expectedControlType"": ""Vector2"", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": false + } + ], + ""bindings"": [ + { + ""name"": """", + ""id"": ""6a48cde5-5a8e-4f4a-9b0f-1af368b14877"", + ""path"": ""/position"", + ""interactions"": """", + ""processors"": """", + ""groups"": """", + ""action"": ""Touch"", + ""isComposite"": false, + ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""678e2c13-4728-43d2-98fd-efb0effcbc84"", + ""path"": ""/delta"", + ""interactions"": """", + ""processors"": """", + ""groups"": """", + ""action"": ""TouchDelta"", + ""isComposite"": false, + ""isPartOfComposite"": false + } + ] + } + ], + ""controlSchemes"": [] +}"); + // Mobile + m_Mobile = asset.FindActionMap("Mobile", throwIfNotFound: true); + m_Mobile_Touch = m_Mobile.FindAction("Touch", throwIfNotFound: true); + m_Mobile_TouchDelta = m_Mobile.FindAction("TouchDelta", throwIfNotFound: true); + } + + public void Dispose() + { + UnityEngine.Object.Destroy(asset); + } + + public InputBinding? bindingMask + { + get => asset.bindingMask; + set => asset.bindingMask = value; + } + + public ReadOnlyArray? devices + { + get => asset.devices; + set => asset.devices = value; + } + + public ReadOnlyArray controlSchemes => asset.controlSchemes; + + public bool Contains(InputAction action) + { + return asset.Contains(action); + } + + public IEnumerator GetEnumerator() + { + return asset.GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + public void Enable() + { + asset.Enable(); + } + + public void Disable() + { + asset.Disable(); + } + public IEnumerable bindings => asset.bindings; + + public InputAction FindAction(string actionNameOrId, bool throwIfNotFound = false) + { + return asset.FindAction(actionNameOrId, throwIfNotFound); + } + public int FindBinding(InputBinding bindingMask, out InputAction action) + { + return asset.FindBinding(bindingMask, out action); + } + + // Mobile + private readonly InputActionMap m_Mobile; + private IMobileActions m_MobileActionsCallbackInterface; + private readonly InputAction m_Mobile_Touch; + private readonly InputAction m_Mobile_TouchDelta; + public struct MobileActions + { + private @StarInputSystem m_Wrapper; + public MobileActions(@StarInputSystem wrapper) { m_Wrapper = wrapper; } + public InputAction @Touch => m_Wrapper.m_Mobile_Touch; + public InputAction @TouchDelta => m_Wrapper.m_Mobile_TouchDelta; + public InputActionMap Get() { return m_Wrapper.m_Mobile; } + public void Enable() { Get().Enable(); } + public void Disable() { Get().Disable(); } + public bool enabled => Get().enabled; + public static implicit operator InputActionMap(MobileActions set) { return set.Get(); } + public void SetCallbacks(IMobileActions instance) + { + if (m_Wrapper.m_MobileActionsCallbackInterface != null) + { + @Touch.started -= m_Wrapper.m_MobileActionsCallbackInterface.OnTouch; + @Touch.performed -= m_Wrapper.m_MobileActionsCallbackInterface.OnTouch; + @Touch.canceled -= m_Wrapper.m_MobileActionsCallbackInterface.OnTouch; + @TouchDelta.started -= m_Wrapper.m_MobileActionsCallbackInterface.OnTouchDelta; + @TouchDelta.performed -= m_Wrapper.m_MobileActionsCallbackInterface.OnTouchDelta; + @TouchDelta.canceled -= m_Wrapper.m_MobileActionsCallbackInterface.OnTouchDelta; + } + m_Wrapper.m_MobileActionsCallbackInterface = instance; + if (instance != null) + { + @Touch.started += instance.OnTouch; + @Touch.performed += instance.OnTouch; + @Touch.canceled += instance.OnTouch; + @TouchDelta.started += instance.OnTouchDelta; + @TouchDelta.performed += instance.OnTouchDelta; + @TouchDelta.canceled += instance.OnTouchDelta; + } + } + } + public MobileActions @Mobile => new MobileActions(this); + public interface IMobileActions + { + void OnTouch(InputAction.CallbackContext context); + void OnTouchDelta(InputAction.CallbackContext context); + } +} diff --git a/Assets/InputSystem/StarInputSystem.cs.meta b/Assets/InputSystem/StarInputSystem.cs.meta new file mode 100644 index 0000000..b9b158d --- /dev/null +++ b/Assets/InputSystem/StarInputSystem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d07a11d507557384ba93604316bdb152 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/InputSystem/StarInputSystem.inputactions b/Assets/InputSystem/StarInputSystem.inputactions new file mode 100644 index 0000000..3842872 --- /dev/null +++ b/Assets/InputSystem/StarInputSystem.inputactions @@ -0,0 +1,54 @@ +{ + "name": "StarInputSystem", + "maps": [ + { + "name": "Mobile", + "id": "4f36c9bb-8869-4103-8ffd-632497a0a84e", + "actions": [ + { + "name": "Touch", + "type": "PassThrough", + "id": "4da9e580-9e17-4341-89a4-2924d2989d1c", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "TouchDelta", + "type": "PassThrough", + "id": "c441710c-d02e-47a9-ac55-0b42c193376c", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": false + } + ], + "bindings": [ + { + "name": "", + "id": "6a48cde5-5a8e-4f4a-9b0f-1af368b14877", + "path": "/position", + "interactions": "", + "processors": "", + "groups": "", + "action": "Touch", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "678e2c13-4728-43d2-98fd-efb0effcbc84", + "path": "/delta", + "interactions": "", + "processors": "", + "groups": "", + "action": "TouchDelta", + "isComposite": false, + "isPartOfComposite": false + } + ] + } + ], + "controlSchemes": [] +} \ No newline at end of file diff --git a/Assets/InputSystem/StarInputSystem.inputactions.meta b/Assets/InputSystem/StarInputSystem.inputactions.meta new file mode 100644 index 0000000..5d34ff3 --- /dev/null +++ b/Assets/InputSystem/StarInputSystem.inputactions.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 0c751048f9ad69d4dbe0b4d6ba090b22 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3} + generateWrapperCode: 1 + wrapperCodePath: + wrapperClassName: + wrapperCodeNamespace: diff --git a/Assets/InputSystem/SwipeDetection.cs b/Assets/InputSystem/SwipeDetection.cs new file mode 100644 index 0000000..c87c91e --- /dev/null +++ b/Assets/InputSystem/SwipeDetection.cs @@ -0,0 +1,129 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System.Threading.Tasks; +using System.Threading; + +public class SwipeDetection : MonoBehaviour +{ + public bool debugMode; + + [SerializeField] + private float minimumDistance = 1f; + [SerializeField] + private float maximumTime = 1.0f; + [SerializeField, Range(0f, 1f)] + private float directionThreshold = 0.9f; + + + private InputManager inputManager; + + private Vector2 startPosition; + private float startTime; + + private Vector2 endPosition; + private float endTime; + + private void Awake() + { + + inputManager = InputManager.Instance; + } + + // Start is called before the first frame update + void Start() + { + + } + + + private void SwipeStart(Vector2 position, float time) + { + Log("Swipe started.. position: " + position); + startPosition = position; + startTime = time; + + } + + private void SwipeEnd(Vector2 position, float time) + { + Log("Swipe end.. position: " + position); + + endPosition = position; + endTime = time; + + DetectSwipe(); + } + + + private void DetectSwipe() + { + if (Vector2.Distance(startPosition, endPosition) >= minimumDistance && (endTime - startTime) <= maximumTime) + { + Log("Swipe detected."); + Debug.DrawLine(startPosition, endPosition, Color.red, 5f); + Vector3 direction = endPosition - startPosition; + Vector2 direction2D = new Vector2(direction.x, direction.y).normalized; + + SwipeDirection(direction2D); + Log("Direction: " + direction2D); + } + } + + private void SwipeDirection(Vector2 direction) + { + if(Vector2.Dot(Vector2.up, direction) > directionThreshold) + { + Log("Swipe UP"); + } + else if (Vector2.Dot(Vector2.down, direction) > directionThreshold) + { + Log("Swipe DOWN"); + } + else if (Vector2.Dot(Vector2.left, direction) > directionThreshold) + { + Log("Swipe LEFT"); + } + else if (Vector2.Dot(Vector2.right, direction) > directionThreshold) + { + Log("Swipe RIGHT"); + } + } + + private void OnEnable() + { + inputManager.OnStartTouch += SwipeStart; + inputManager.OnEndTouch += SwipeEnd; + } + + private void OnDisable() + { + inputManager.OnStartTouch -= SwipeStart; + inputManager.OnEndTouch -= SwipeEnd; + } + + private void Log(string _msg) + { + if (!debugMode) + return; + + Debug.Log("[" + this.name + "] > [" + this.GetType().Name + "]: " + _msg); + } + + private void LogWarning(string _msg) + { + if (!debugMode) + return; + + Debug.LogWarning("[" + this.name + "] > [" + this.GetType().Name + "]: " + _msg); + } + + private void LogError(string _msg) + { + if (!debugMode) + return; + + Debug.LogError("[" + this.name + "] > [" + this.GetType().Name + "]: " + _msg); + } +} diff --git a/Assets/InputSystem/SwipeDetection.cs.meta b/Assets/InputSystem/SwipeDetection.cs.meta new file mode 100644 index 0000000..f8a418c --- /dev/null +++ b/Assets/InputSystem/SwipeDetection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 906c29a95077be3468eea18a60df0c18 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs.meta b/Assets/Prefabs.meta new file mode 100644 index 0000000..3b484ab --- /dev/null +++ b/Assets/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 89e7fad21c6c838409dbfacfc3845cb4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Bonus.prefab b/Assets/Prefabs/Bonus.prefab new file mode 100644 index 0000000..1be347e --- /dev/null +++ b/Assets/Prefabs/Bonus.prefab @@ -0,0 +1,86 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &15876814893281715 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 15876814893281869} + - component: {fileID: 15876814893281868} + m_Layer: 0 + m_Name: Bonus + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &15876814893281869 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15876814893281715} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &15876814893281868 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15876814893281715} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 2747690628134850419, guid: b670ab75dde984907b8570040daa08c5, type: 3} + m_Color: {r: 0.631583, g: 0.8113208, b: 0.10256318, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 0.8828125} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 diff --git a/Assets/Prefabs/Bonus.prefab.meta b/Assets/Prefabs/Bonus.prefab.meta new file mode 100644 index 0000000..5f1fd5d --- /dev/null +++ b/Assets/Prefabs/Bonus.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1298e19fe9146cf48823e72a0a54ec73 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Enemy.prefab b/Assets/Prefabs/Enemy.prefab new file mode 100644 index 0000000..26c5e5e --- /dev/null +++ b/Assets/Prefabs/Enemy.prefab @@ -0,0 +1,86 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6555607577028800588 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6555607577028800590} + - component: {fileID: 6555607577028800589} + m_Layer: 0 + m_Name: Enemy + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6555607577028800590 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6555607577028800588} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &6555607577028800589 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6555607577028800588} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2135585597343286014, guid: 5aa8b770bc43046bc8d993d0d5b7f4a5, type: 3} + m_Color: {r: 0.7830189, g: 0.20978993, b: 0.20978993, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.8828125, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 diff --git a/Assets/Prefabs/Enemy.prefab.meta b/Assets/Prefabs/Enemy.prefab.meta new file mode 100644 index 0000000..c05c19f --- /dev/null +++ b/Assets/Prefabs/Enemy.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b2f66176e8d23584d82ec1e622c33647 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources.meta b/Assets/Resources.meta new file mode 100644 index 0000000..3db6710 --- /dev/null +++ b/Assets/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 67ea8ca2d09a48943b2dcaffa62e4108 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/DOTweenSettings.asset b/Assets/Resources/DOTweenSettings.asset new file mode 100644 index 0000000..62ebbaf --- /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 0000000..b33431e --- /dev/null +++ b/Assets/Resources/DOTweenSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6c8974641a251cb4d8c854446c51eeca +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples.meta b/Assets/Samples.meta new file mode 100644 index 0000000..5330cbf --- /dev/null +++ b/Assets/Samples.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fad3593dc2235ce4ea3ef0792502b009 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/Input System.meta b/Assets/Samples/Input System.meta new file mode 100644 index 0000000..1e87010 --- /dev/null +++ b/Assets/Samples/Input System.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 54071b334e52a714186a8f379eada3cd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/Input System/1.4.4.meta b/Assets/Samples/Input System/1.4.4.meta new file mode 100644 index 0000000..67e7755 --- /dev/null +++ b/Assets/Samples/Input System/1.4.4.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 53fb96b89ee68e74ea1833ea38277ab5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/Input System/1.4.4/On-Screen Controls.meta b/Assets/Samples/Input System/1.4.4/On-Screen Controls.meta new file mode 100644 index 0000000..92c07a4 --- /dev/null +++ b/Assets/Samples/Input System/1.4.4/On-Screen Controls.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 59f8fc343d632fc4dab65b98dbf23e95 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/Input System/1.4.4/On-Screen Controls/.sample.json b/Assets/Samples/Input System/1.4.4/On-Screen Controls/.sample.json new file mode 100644 index 0000000..e48d86f --- /dev/null +++ b/Assets/Samples/Input System/1.4.4/On-Screen Controls/.sample.json @@ -0,0 +1,4 @@ +{ + "displayName": "On-Screen Controls", + "description": "Demonstrates a simple setup for an on-screen joystick." +} diff --git a/Assets/Samples/Input System/1.4.4/On-Screen Controls/Button.prefab b/Assets/Samples/Input System/1.4.4/On-Screen Controls/Button.prefab new file mode 100644 index 0000000..d74b6aa --- /dev/null +++ b/Assets/Samples/Input System/1.4.4/On-Screen Controls/Button.prefab @@ -0,0 +1,222 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 0} + m_RootGameObject: {fileID: 1728513650105062} + m_IsPrefabAsset: 1 +--- !u!1 &1728513650105062 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224771122883764374} + - component: {fileID: 222401134047137570} + - component: {fileID: 114826362001716654} + - component: {fileID: 114204224268582166} + - component: {fileID: 114344768413473294} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1977925927173892 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224750732080817856} + - component: {fileID: 222878083001498966} + - component: {fileID: 114547973042304788} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114204224268582166 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1728513650105062} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, 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: 114826362001716654} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +--- !u!114 &114344768413473294 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1728513650105062} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6d54531977ecb194c95e2d3aa7a5d72a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ControlPath: //a + m_UsePressure: 0 +--- !u!114 &114547973042304788 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1977925927173892} + 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: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Keyboard 'A' Key +--- !u!114 &114826362001716654 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1728513650105062} + 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 +--- !u!222 &222401134047137570 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1728513650105062} + m_CullTransparentMesh: 0 +--- !u!222 &222878083001498966 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1977925927173892} + m_CullTransparentMesh: 0 +--- !u!224 &224750732080817856 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1977925927173892} + 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: 224771122883764374} + 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!224 &224771122883764374 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1728513650105062} + 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: 224750732080817856} + m_Father: {fileID: 0} + 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: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/Samples/Input System/1.4.4/On-Screen Controls/Button.prefab.meta b/Assets/Samples/Input System/1.4.4/On-Screen Controls/Button.prefab.meta new file mode 100644 index 0000000..82538a3 --- /dev/null +++ b/Assets/Samples/Input System/1.4.4/On-Screen Controls/Button.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 05f32eddd3e41fd4597ada617b785928 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/Input System/1.4.4/On-Screen Controls/OnScreenControlsSample.unity b/Assets/Samples/Input System/1.4.4/On-Screen Controls/OnScreenControlsSample.unity new file mode 100644 index 0000000..cb7fc9f --- /dev/null +++ b/Assets/Samples/Input System/1.4.4/On-Screen Controls/OnScreenControlsSample.unity @@ -0,0 +1,1109 @@ +%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: 11 + 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_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!1001 &182059024 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1993296955} + m_Modifications: + - target: {fileID: 1613174875475300, guid: f77f88b14a477764bb65a49d28c02d33, type: 3} + propertyPath: m_Name + value: LeftStick + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -161 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -129 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: f77f88b14a477764bb65a49d28c02d33, type: 3} +--- !u!1001 &213445084 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1993296955} + m_Modifications: + - target: {fileID: 1728513650105062, guid: 05f32eddd3e41fd4597ada617b785928, type: 3} + propertyPath: m_Name + value: Button A + objectReference: {fileID: 0} + - target: {fileID: 114344768413473294, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_ControlPath + value: //Y + objectReference: {fileID: 0} + - target: {fileID: 114547973042304788, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_Text + value: Y + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 122 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 172 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_SizeDelta.x + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 05f32eddd3e41fd4597ada617b785928, type: 3} +--- !u!224 &223523015 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + m_PrefabInstance: {fileID: 182059024} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &334844325 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1993296955} + m_Modifications: + - target: {fileID: 1728513650105062, guid: 05f32eddd3e41fd4597ada617b785928, type: 3} + propertyPath: m_Name + value: Button D + objectReference: {fileID: 0} + - target: {fileID: 114344768413473294, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_ControlPath + value: //A + objectReference: {fileID: 0} + - target: {fileID: 114547973042304788, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_Text + value: A + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 122 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 27 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_SizeDelta.x + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 05f32eddd3e41fd4597ada617b785928, type: 3} +--- !u!224 &334844326 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + m_PrefabInstance: {fileID: 334844325} + m_PrefabAsset: {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: 0} + 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} +--- !u!224 &703313166 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + m_PrefabInstance: {fileID: 213445084} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &827737257 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1993296955} + m_Modifications: + - target: {fileID: 1728513650105062, guid: 05f32eddd3e41fd4597ada617b785928, type: 3} + propertyPath: m_Name + value: Button B + objectReference: {fileID: 0} + - target: {fileID: 114344768413473294, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_ControlPath + value: //X + objectReference: {fileID: 0} + - target: {fileID: 114547973042304788, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_Text + value: X + objectReference: {fileID: 0} + - target: {fileID: 224750732080817856, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224750732080817856, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 47 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 102 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_SizeDelta.x + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 05f32eddd3e41fd4597ada617b785928, type: 3} +--- !u!224 &827737258 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + m_PrefabInstance: {fileID: 827737257} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1467932572 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1993296955} + m_Modifications: + - target: {fileID: 1728513650105062, guid: 05f32eddd3e41fd4597ada617b785928, type: 3} + propertyPath: m_Name + value: Button C + objectReference: {fileID: 0} + - target: {fileID: 114344768413473294, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_ControlPath + value: //B + objectReference: {fileID: 0} + - target: {fileID: 114547973042304788, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_Text + value: B + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 197 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 102 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_SizeDelta.x + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 05f32eddd3e41fd4597ada617b785928, type: 3} +--- !u!224 &1467932573 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 224771122883764374, guid: 05f32eddd3e41fd4597ada617b785928, + type: 3} + m_PrefabInstance: {fileID: 1467932572} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1554469708 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1554469711} + - component: {fileID: 1554469710} + - component: {fileID: 1554469709} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1554469709 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1554469708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_PointAction: {fileID: 1054132383583890850, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_MoveAction: {fileID: 3710738434707379630, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_SubmitAction: {fileID: 2064916234097673511, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_CancelAction: {fileID: -1967631576421560919, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_LeftClickAction: {fileID: 8056856818456041789, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_MiddleClickAction: {fileID: 3279352641294131588, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_RightClickAction: {fileID: 3837173908680883260, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_ScrollWheelAction: {fileID: 4502412055082496612, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_TrackedDevicePositionAction: {fileID: 4754684134866288074, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_TrackedDeviceOrientationAction: {fileID: 1025543830046995696, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 +--- !u!114 &1554469710 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1554469708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1554469711 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1554469708} + 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!1001 &1763776550 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1993296955} + m_Modifications: + - target: {fileID: 1613174875475300, guid: f77f88b14a477764bb65a49d28c02d33, type: 3} + propertyPath: m_Name + value: RightStick + objectReference: {fileID: 0} + - target: {fileID: 114017654419583406, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_Text + value: Right Stick + objectReference: {fileID: 0} + - target: {fileID: 114480945186419424, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_ControlPath + value: //RightStick + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 122 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -129 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: f77f88b14a477764bb65a49d28c02d33, type: 3} +--- !u!224 &1763776551 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 224091927000801720, guid: f77f88b14a477764bb65a49d28c02d33, + type: 3} + m_PrefabInstance: {fileID: 1763776550} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1993296951 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1993296955} + - component: {fileID: 1993296954} + - component: {fileID: 1993296953} + - component: {fileID: 1993296952} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1993296952 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1993296951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 0 +--- !u!114 &1993296953 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1993296951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &1993296954 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1993296951} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 1 + m_Camera: {fileID: 519420031} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1993296955 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1993296951} + 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: 703313166} + - {fileID: 827737258} + - {fileID: 1467932573} + - {fileID: 334844326} + - {fileID: 223523015} + - {fileID: 1763776551} + m_Father: {fileID: 0} + m_RootOrder: 1 + 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} diff --git a/Assets/Samples/Input System/1.4.4/On-Screen Controls/OnScreenControlsSample.unity.meta b/Assets/Samples/Input System/1.4.4/On-Screen Controls/OnScreenControlsSample.unity.meta new file mode 100644 index 0000000..82f1ec6 --- /dev/null +++ b/Assets/Samples/Input System/1.4.4/On-Screen Controls/OnScreenControlsSample.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 011b162d4daa13c4ab03e94ad47b8258 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Samples/Input System/1.4.4/On-Screen Controls/Stick.prefab b/Assets/Samples/Input System/1.4.4/On-Screen Controls/Stick.prefab new file mode 100644 index 0000000..6df3082 --- /dev/null +++ b/Assets/Samples/Input System/1.4.4/On-Screen Controls/Stick.prefab @@ -0,0 +1,173 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 0} + m_RootGameObject: {fileID: 1613174875475300} + m_IsPrefabAsset: 1 +--- !u!1 &1080311573403324 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224063307367997780} + - component: {fileID: 222676770552705204} + - component: {fileID: 114017654419583406} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1613174875475300 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224091927000801720} + - component: {fileID: 222418917327610168} + - component: {fileID: 114144114248384442} + - component: {fileID: 114480945186419424} + m_Layer: 5 + m_Name: Stick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114017654419583406 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1080311573403324} + 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: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Left Stick +--- !u!114 &114144114248384442 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1613174875475300} + 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: 21300002, guid: e97a8ef01555d4941bdbc5eb5b056469, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114480945186419424 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1613174875475300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e9d677f1681015749b15c436eec6d880, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ControlPath: //LeftStick + MovementRange: 50 + deltaPos: {x: 0, y: 0, z: 0} + stickX: 0 + stickY: 0 +--- !u!222 &222418917327610168 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1613174875475300} + m_CullTransparentMesh: 0 +--- !u!222 &222676770552705204 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1080311573403324} + m_CullTransparentMesh: 0 +--- !u!224 &224063307367997780 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1080311573403324} + 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: 224091927000801720} + 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: 2, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224091927000801720 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1613174875475300} + 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: 224063307367997780} + m_Father: {fileID: 0} + 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: -199, y: -120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/Samples/Input System/1.4.4/On-Screen Controls/Stick.prefab.meta b/Assets/Samples/Input System/1.4.4/On-Screen Controls/Stick.prefab.meta new file mode 100644 index 0000000..83933d5 --- /dev/null +++ b/Assets/Samples/Input System/1.4.4/On-Screen Controls/Stick.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f77f88b14a477764bb65a49d28c02d33 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes.meta b/Assets/Scenes.meta new file mode 100644 index 0000000..7fe8e10 --- /dev/null +++ b/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 131a6b21c8605f84396be9f6751fb6e3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity new file mode 100644 index 0000000..dabd5b0 --- /dev/null +++ b/Assets/Scenes/SampleScene.unity @@ -0,0 +1,3515 @@ +%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 &36344127 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 36344128} + - component: {fileID: 36344129} + m_Layer: 0 + m_Name: Hexagon Flat-Top (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &36344128 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 36344127} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.34682, y: -0.159, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 20 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &36344129 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 36344127} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 2747690628134850419, guid: b670ab75dde984907b8570040daa08c5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 0.8828125} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &85753062 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 85753063} + - component: {fileID: 85753064} + m_Layer: 0 + m_Name: Hexagon Pointed-Top (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &85753063 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 85753062} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.45314, y: -0.034, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &85753064 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 85753062} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2135585597343286014, guid: 5aa8b770bc43046bc8d993d0d5b7f4a5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.8828125, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &114833385 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 114833386} + - component: {fileID: 114833387} + m_Layer: 0 + m_Name: Hexagon Pointed-Top (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &114833386 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 114833385} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.44414, y: 0.141, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &114833387 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 114833385} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2135585597343286014, guid: 5aa8b770bc43046bc8d993d0d5b7f4a5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.8828125, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &150112040 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 150112041} + - component: {fileID: 150112042} + m_Layer: 0 + m_Name: Hexagon Flat-Top (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &150112041 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 150112040} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.42076004, y: 0.187, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &150112042 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 150112040} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 2747690628134850419, guid: b670ab75dde984907b8570040daa08c5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 0.8828125} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &161697196 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 161697197} + - component: {fileID: 161697198} + m_Layer: 0 + m_Name: Hexagon Pointed-Top (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &161697197 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 161697196} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.41713, y: -0.16925, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &161697198 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 161697196} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2135585597343286014, guid: 5aa8b770bc43046bc8d993d0d5b7f4a5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.8828125, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &202672454 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202672456} + - component: {fileID: 202672455} + - component: {fileID: 202672457} + m_Layer: 0 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &202672455 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202672454} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -10 + m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} + m_Color: {r: 0.122641504, g: 0.12079031, b: 0.12079031, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &202672456 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202672454} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 950, y: 0, z: 0} + m_LocalScale: {x: 2000, y: 40, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1421190438} + - {fileID: 519285090} + - {fileID: 85753063} + - {fileID: 114833386} + - {fileID: 929289737} + - {fileID: 1335613759} + - {fileID: 698698841} + - {fileID: 150112041} + - {fileID: 161697197} + - {fileID: 1281709111} + - {fileID: 1240871192} + - {fileID: 1867371452} + - {fileID: 1021258646} + - {fileID: 260129526} + - {fileID: 1145854504} + - {fileID: 2088105628} + - {fileID: 444935446} + - {fileID: 1282473678} + - {fileID: 823210497} + - {fileID: 1952603777} + - {fileID: 36344128} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &202672457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202672454} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7d3aa2e68ed812441b963f27b016aac8, type: 3} + m_Name: + m_EditorClassIdentifier: + SpawnObjectList: [] + xScale: 0 + yScale: 0 +--- !u!1 &260129525 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 260129526} + - component: {fileID: 260129527} + m_Layer: 0 + m_Name: Hexagon Flat-Top (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &260129526 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 260129525} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.38752002, y: -0.159, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &260129527 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 260129525} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 2747690628134850419, guid: b670ab75dde984907b8570040daa08c5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 0.8828125} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &444935445 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 444935446} + - component: {fileID: 444935447} + m_Layer: 0 + m_Name: Hexagon Pointed-Top (11) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &444935446 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 444935445} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.37274, y: -0.034, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 16 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &444935447 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 444935445} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2135585597343286014, guid: 5aa8b770bc43046bc8d993d0d5b7f4a5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.8828125, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &519285088 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519285090} + - component: {fileID: 519285089} + m_Layer: 0 + m_Name: Hexagon Pointed-Top + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &519285089 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519285088} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2135585597343286014, guid: 5aa8b770bc43046bc8d993d0d5b7f4a5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.8828125, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &519285090 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519285088} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.45683, y: -0.16925, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 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} + - component: {fileID: 519420033} + 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: 12 + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &519420033 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de06ab239e364f04a983cc510d025105, type: 3} + m_Name: + m_EditorClassIdentifier: + character: {fileID: 1419382314} + offsetX: 10 +--- !u!1 &571391898 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 571391899} + - component: {fileID: 571391901} + - component: {fileID: 571391900} + - component: {fileID: 571391902} + m_Layer: 0 + m_Name: Pointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &571391899 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 571391898} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!96 &571391900 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 571391898} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10301, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + 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 + m_Time: 0.2 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.8797389 + value: 0.13178802 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0.07058824, g: 0.8235295, b: 0.8980393, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 0.1 + m_Autodestruct: 0 + m_Emitting: 1 +--- !u!212 &571391901 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 571391898} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 2 + m_Sprite: {fileID: -2413806693520163455, guid: ebe73ca9363db456bacf42c025bb4847, type: 3} + m_Color: {r: 0.071021646, g: 0.824352, b: 0.8962264, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!114 &571391902 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 571391898} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5d22117e85251b46b7973e786a21a20, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &667285228 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 667285229} + - component: {fileID: 667285230} + m_Layer: 0 + m_Name: Trail1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &667285229 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 667285228} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.34, y: 2.46, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1419382314} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!96 &667285230 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 667285228} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10301, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + 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 + m_Time: 0.5 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.80000305 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.39999998 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.80392164, b: 0.3372549, a: 0.7058824} + key1: {r: 1, g: 0.8668643, b: 0, a: 0} + key2: {r: 1, g: 0.8668643, b: 0, a: 0.47058824} + key3: {r: 1, g: 0.8668643, b: 0, a: 0} + key4: {r: 1, g: 0.8668643, b: 0, a: 0.39215687} + key5: {r: 0, g: 0, b: 0, a: 0.39215687} + key6: {r: 0, g: 0, b: 0, a: 0.39215687} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 65535 + ctime3: 65535 + ctime4: 65535 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 17884 + atime2: 24037 + atime3: 29229 + atime4: 65535 + atime5: 65535 + atime6: 65535 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 5 + numCornerVertices: 10 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 0.01 + m_Autodestruct: 0 + m_Emitting: 1 +--- !u!1 &698698840 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 698698841} + - component: {fileID: 698698842} + m_Layer: 0 + m_Name: Hexagon Flat-Top (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &698698841 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698698840} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.42722, y: -0.159, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &698698842 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698698840} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 2747690628134850419, guid: b670ab75dde984907b8570040daa08c5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 0.8828125} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &737608793 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 737608794} + - component: {fileID: 737608795} + m_Layer: 0 + m_Name: Trail1 (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &737608794 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 737608793} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -4.64, y: -0.49, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1419382314} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!96 &737608795 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 737608793} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10301, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + 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 + m_Time: 0.5 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.80000305 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.39999998 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.80392164, b: 0.3372549, a: 0.7058824} + key1: {r: 1, g: 0.8668643, b: 0, a: 0} + key2: {r: 1, g: 0.8668643, b: 0, a: 0.47058824} + key3: {r: 1, g: 0.8668643, b: 0, a: 0} + key4: {r: 1, g: 0.8668643, b: 0, a: 0.39215687} + key5: {r: 0, g: 0, b: 0, a: 0.39215687} + key6: {r: 0, g: 0, b: 0, a: 0.39215687} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 65535 + ctime3: 65535 + ctime4: 65535 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 17884 + atime2: 24037 + atime3: 29229 + atime4: 65535 + atime5: 65535 + atime6: 65535 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 5 + numCornerVertices: 10 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 0.01 + m_Autodestruct: 0 + m_Emitting: 1 +--- !u!1 &823210496 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 823210497} + - component: {fileID: 823210498} + m_Layer: 0 + m_Name: Hexagon Pointed-Top (13) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &823210497 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 823210496} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.35924, y: -0.121500015, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 18 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &823210498 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 823210496} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2135585597343286014, guid: 5aa8b770bc43046bc8d993d0d5b7f4a5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.8828125, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &836229390 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 836229391} + - component: {fileID: 836229392} + m_Layer: 0 + m_Name: Trail1 (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &836229391 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 836229390} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.71, y: -3.79, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1419382314} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!96 &836229392 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 836229390} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10301, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + 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 + m_Time: 0.5 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.80000305 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.39999998 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.80392164, b: 0.3372549, a: 0.7058824} + key1: {r: 1, g: 0.8668643, b: 0, a: 0} + key2: {r: 1, g: 0.8668643, b: 0, a: 0.47058824} + key3: {r: 1, g: 0.8668643, b: 0, a: 0} + key4: {r: 1, g: 0.8668643, b: 0, a: 0.39215687} + key5: {r: 0, g: 0, b: 0, a: 0.39215687} + key6: {r: 0, g: 0, b: 0, a: 0.39215687} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 65535 + ctime3: 65535 + ctime4: 65535 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 17884 + atime2: 24037 + atime3: 29229 + atime4: 65535 + atime5: 65535 + atime6: 65535 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 5 + numCornerVertices: 10 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 0.01 + m_Autodestruct: 0 + m_Emitting: 1 +--- !u!1 &929289736 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 929289737} + - component: {fileID: 929289738} + m_Layer: 0 + m_Name: Hexagon Pointed-Top (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &929289737 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 929289736} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.43964, y: -0.121500015, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &929289738 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 929289736} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2135585597343286014, guid: 5aa8b770bc43046bc8d993d0d5b7f4a5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.8828125, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1021258645 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1021258646} + - component: {fileID: 1021258647} + m_Layer: 0 + m_Name: Hexagon Pointed-Top (9) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1021258646 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1021258645} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.39594, y: 0.12224999, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1021258647 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1021258645} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2135585597343286014, guid: 5aa8b770bc43046bc8d993d0d5b7f4a5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.8828125, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1145854503 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1145854504} + - component: {fileID: 1145854505} + m_Layer: 0 + m_Name: Hexagon Flat-Top (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1145854504 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1145854503} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.38006002, y: 0.187, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 14 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1145854505 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1145854503} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 2747690628134850419, guid: b670ab75dde984907b8570040daa08c5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 0.8828125} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1240871191 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1240871192} + - component: {fileID: 1240871193} + m_Layer: 0 + m_Name: Hexagon Pointed-Top (7) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1240871192 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1240871191} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.40444002, y: 0.141, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1240871193 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1240871191} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2135585597343286014, guid: 5aa8b770bc43046bc8d993d0d5b7f4a5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.8828125, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1263039519 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1263039520} + - component: {fileID: 1263039521} + m_Layer: 0 + m_Name: Trail1 (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1263039520 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1263039519} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.922, y: -3.273, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1419382314} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!96 &1263039521 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1263039519} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10301, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + 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 + m_Time: 0.5 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.80000305 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.39999998 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.80392164, b: 0.3372549, a: 0.7058824} + key1: {r: 1, g: 0.8668643, b: 0, a: 0} + key2: {r: 1, g: 0.8668643, b: 0, a: 0.47058824} + key3: {r: 1, g: 0.8668643, b: 0, a: 0} + key4: {r: 1, g: 0.8668643, b: 0, a: 0.39215687} + key5: {r: 0, g: 0, b: 0, a: 0.39215687} + key6: {r: 0, g: 0, b: 0, a: 0.39215687} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 65535 + ctime3: 65535 + ctime4: 65535 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 17884 + atime2: 24037 + atime3: 29229 + atime4: 65535 + atime5: 65535 + atime6: 65535 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 5 + numCornerVertices: 10 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 0.01 + m_Autodestruct: 0 + m_Emitting: 1 +--- !u!1 &1281709110 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1281709111} + - component: {fileID: 1281709112} + m_Layer: 0 + m_Name: Hexagon Pointed-Top (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1281709111 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1281709110} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.41344002, y: -0.034, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1281709112 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1281709110} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2135585597343286014, guid: 5aa8b770bc43046bc8d993d0d5b7f4a5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.8828125, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1282473677 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1282473678} + - component: {fileID: 1282473679} + m_Layer: 0 + m_Name: Hexagon Pointed-Top (12) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1282473678 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1282473677} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.36374, y: 0.141, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 17 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1282473679 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1282473677} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2135585597343286014, guid: 5aa8b770bc43046bc8d993d0d5b7f4a5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.8828125, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1287426380 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1287426381} + - component: {fileID: 1287426382} + m_Layer: 0 + m_Name: Trail1 (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1287426381 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1287426380} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.008, y: 0.254, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1419382314} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!96 &1287426382 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1287426380} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10301, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + 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 + m_Time: 0.5 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.80000305 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.39999998 + value: 0.5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.80392164, b: 0.3372549, a: 0.7058824} + key1: {r: 1, g: 0.8668643, b: 0, a: 0} + key2: {r: 1, g: 0.8668643, b: 0, a: 0.47058824} + key3: {r: 1, g: 0.8668643, b: 0, a: 0} + key4: {r: 1, g: 0.8668643, b: 0, a: 0.39215687} + key5: {r: 0, g: 0, b: 0, a: 0.39215687} + key6: {r: 0, g: 0, b: 0, a: 0.39215687} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 65535 + ctime3: 65535 + ctime4: 65535 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 17884 + atime2: 24037 + atime3: 29229 + atime4: 65535 + atime5: 65535 + atime6: 65535 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 5 + numCornerVertices: 10 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 0.01 + m_Autodestruct: 0 + m_Emitting: 1 +--- !u!1 &1335613758 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1335613759} + - component: {fileID: 1335613760} + m_Layer: 0 + m_Name: Hexagon Pointed-Top (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1335613759 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1335613758} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.43563998, y: 0.12224999, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1335613760 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1335613758} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2135585597343286014, guid: 5aa8b770bc43046bc8d993d0d5b7f4a5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.8828125, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1419382313 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1419382314} + - component: {fileID: 1419382315} + - component: {fileID: 1419382316} + - component: {fileID: 1419382317} + m_Layer: 0 + m_Name: Lulu-Star + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1419382314 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1419382313} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1650650146} + - {fileID: 667285229} + - {fileID: 737608794} + - {fileID: 836229391} + - {fileID: 1263039520} + - {fileID: 1287426381} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!95 &1419382315 +Animator: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1419382313} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: f07895196d1b34d46bf1e61241c06473, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorControllerStateOnDisable: 0 +--- !u!114 &1419382316 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1419382313} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2ae8b64f5f18e94f91172098623dee9, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 1 + moveSpeedX: 10 + positionYMultiplier: 7 + currentPositionY: 0 + minPositionY: -1 + maxPositionY: 1 + travelTimeAxisY: 0.4 + minimumDistance: 1 + maximumTime: 1 + directionThreshold: 0.9 + bTravelling: 0 +--- !u!114 &1419382317 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1419382313} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 906c29a95077be3468eea18a60df0c18, type: 3} + m_Name: + m_EditorClassIdentifier: + debugMode: 1 + minimumDistance: 1 + maximumTime: 1 + directionThreshold: 0.9 +--- !u!1 &1421190436 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1421190438} + - component: {fileID: 1421190437} + m_Layer: 0 + m_Name: Hexagon Flat-Top + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1421190437 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1421190436} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 2747690628134850419, guid: b670ab75dde984907b8570040daa08c5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 0.8828125} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1421190438 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1421190436} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.46046, y: 0.187, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1448729412 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1448729413} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1448729413 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1448729412} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -15.96, y: -12, z: 0.16795419} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1526888841 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1526888845} + - component: {fileID: 1526888844} + - component: {fileID: 1526888843} + - component: {fileID: 1526888842} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1526888842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1526888841} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1526888843 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1526888841} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, 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: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &1526888844 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1526888841} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1526888845 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1526888841} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + 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 &1650650144 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1650650146} + - component: {fileID: 1650650145} + - component: {fileID: 1650650147} + m_Layer: 0 + m_Name: lulu-1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1650650145 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1650650144} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 4 + m_Sprite: {fileID: 21300000, guid: f3cd0e84911d316468f1e53f0abecfff, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 23.88, y: 16.685682} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1650650146 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1650650144} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1419382314} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!96 &1650650147 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1650650144} + m_Enabled: 0 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + 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 + m_Time: 5 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.4 + inSlope: -2.497414 + outSlope: -2.497414 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.6654436 + - serializedVersion: 3 + time: 0.11954809 + value: 0.2 + inSlope: -0.733537 + outSlope: -0.733537 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.5814984 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0, b: 0, a: 1} + key1: {r: 1, g: 0.70761514, b: 0, a: 1} + key2: {r: 1, g: 0.8668643, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 32306 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 0.1 + m_Autodestruct: 0 + m_Emitting: 1 +--- !u!1 &1711067731 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1711067734} + - component: {fileID: 1711067733} + - component: {fileID: 1711067732} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1711067732 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1711067731} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &1711067733 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1711067731} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1711067734 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1711067731} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1867371451 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1867371452} + - component: {fileID: 1867371453} + m_Layer: 0 + m_Name: Hexagon Pointed-Top (8) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1867371452 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1867371451} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.39994, y: -0.121500015, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1867371453 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1867371451} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2135585597343286014, guid: 5aa8b770bc43046bc8d993d0d5b7f4a5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.8828125, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1952603776 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1952603777} + - component: {fileID: 1952603778} + m_Layer: 0 + m_Name: Hexagon Pointed-Top (14) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1952603777 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952603776} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.35524, y: 0.12224999, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 19 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1952603778 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952603776} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2135585597343286014, guid: 5aa8b770bc43046bc8d993d0d5b7f4a5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.8828125, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &2088105627 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2088105628} + - component: {fileID: 2088105629} + m_Layer: 0 + m_Name: Hexagon Pointed-Top (10) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2088105628 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2088105627} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.37642998, y: -0.16925, z: 0} + m_LocalScale: {x: 0.002, y: 0.1, z: 4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202672456} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &2088105629 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2088105627} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2135585597343286014, guid: 5aa8b770bc43046bc8d993d0d5b7f4a5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.8828125, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 diff --git a/Assets/Scenes/SampleScene.unity.meta b/Assets/Scenes/SampleScene.unity.meta new file mode 100644 index 0000000..c1e3c88 --- /dev/null +++ b/Assets/Scenes/SampleScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2cda990e2423bbf4892e6590ba056729 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts.meta b/Assets/Scripts.meta new file mode 100644 index 0000000..c1637aa --- /dev/null +++ b/Assets/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4b20eb3cb44e27346935247a1ea4962c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Background.cs b/Assets/Scripts/Background.cs new file mode 100644 index 0000000..09f2371 --- /dev/null +++ b/Assets/Scripts/Background.cs @@ -0,0 +1,24 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Background : MonoBehaviour +{ + public List SpawnObjectList; + + public float xScale; + public float yScale; + + // Start is called before the first frame update + void Start() + { + xScale = transform.localScale.x; + yScale = transform.localScale.y; + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Background.cs.meta b/Assets/Scripts/Background.cs.meta new file mode 100644 index 0000000..2261924 --- /dev/null +++ b/Assets/Scripts/Background.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7d3aa2e68ed812441b963f27b016aac8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/CameraFollow.cs b/Assets/Scripts/CameraFollow.cs new file mode 100644 index 0000000..04c5fd7 --- /dev/null +++ b/Assets/Scripts/CameraFollow.cs @@ -0,0 +1,26 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class CameraFollow : MonoBehaviour +{ + public Transform character; + public float offsetX; + + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + SetPosition(); + } + + private void SetPosition() + { + transform.position = new Vector3(character.position.x + offsetX, transform.position.y, transform.position.z); + } +} diff --git a/Assets/Scripts/CameraFollow.cs.meta b/Assets/Scripts/CameraFollow.cs.meta new file mode 100644 index 0000000..35e407b --- /dev/null +++ b/Assets/Scripts/CameraFollow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: de06ab239e364f04a983cc510d025105 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/MouseVisual.cs b/Assets/Scripts/MouseVisual.cs new file mode 100644 index 0000000..65d68d5 --- /dev/null +++ b/Assets/Scripts/MouseVisual.cs @@ -0,0 +1,47 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.InputSystem; + +public class MouseVisual : MonoBehaviour +{ + private bool bShow = false; + + private SpriteRenderer _spriteRenderer; + private TrailRenderer _trailRenderer; + + // Start is called before the first frame update + void Start() + { + _spriteRenderer = GetComponent(); + _trailRenderer = GetComponent(); + _spriteRenderer.enabled = false; + _trailRenderer.enabled = false; + } + + // Update is called once per frame + void Update() + { + SetPosition(); + } + + private void SetPosition() + { + if (Touchscreen.current.press.isPressed) + { + Vector3 ScreenPosition = new Vector3(Touchscreen.current.position.ReadValue().x, Touchscreen.current.position.ReadValue().y, 0f); + Vector3 newPosition = Camera.main.ScreenToWorldPoint(ScreenPosition); + newPosition.z = 0f; + transform.position = newPosition; + + _spriteRenderer.enabled = true; + _trailRenderer.enabled = true; + } + else if (_spriteRenderer.enabled || _trailRenderer.enabled) + { + _spriteRenderer.enabled = false; + _trailRenderer.enabled = false; + } + + } +} diff --git a/Assets/Scripts/MouseVisual.cs.meta b/Assets/Scripts/MouseVisual.cs.meta new file mode 100644 index 0000000..fb678f1 --- /dev/null +++ b/Assets/Scripts/MouseVisual.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d5d22117e85251b46b7973e786a21a20 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/StarCharacter.cs b/Assets/Scripts/StarCharacter.cs new file mode 100644 index 0000000..f72bf7c --- /dev/null +++ b/Assets/Scripts/StarCharacter.cs @@ -0,0 +1,231 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.InputSystem; +using DG.Tweening; +using UnityEngine.InputSystem.EnhancedTouch; +using Touch = UnityEngine.Touch; + +public class StarCharacter : MonoBehaviour +{ + [SerializeField] + private bool debugMode = true; + + [Header("Movement Parameters")] + [SerializeField] + private float moveSpeedX = 8f; + [SerializeField] + private float positionYMultiplier = 3f; + [SerializeField] + private int currentPositionY = 0; + [SerializeField] + private int minPositionY = -2; + [SerializeField] + private int maxPositionY = +2; + [SerializeField] + private float travelTimeAxisY = 0.4f; + + [Header("Swipe Detection Parameters")] + [SerializeField] + private float minimumDistance = 1f; + [SerializeField] + private float maximumTime = 1.0f; + [SerializeField, Range(0f, 1f)] + private float directionThreshold = 0.9f; + + private Vector2 startPosition; + private float startTime; + private Vector2 endPosition; + private float endTime; + + [SerializeField] private bool bTravelling = false; + + private void Awake() + { + + } + + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + Move(); + } + + void Move() + { + MoveToRight(); + + if (bTravelling) { return; } + + if (Touchscreen.current.press.wasPressedThisFrame) + { + startPosition = Touchscreen.current.position.ReadValue(); + Log("Swipe started.. position: " + startPosition); + startTime = Time.time; + } + else if (Touchscreen.current.press.wasReleasedThisFrame) + { + endPosition = Touchscreen.current.position.ReadValue(); + Log("Swipe end.. position: " + endPosition); + endTime = Time.time; + + DetectSwipe(); + } + } + + private void MoveToRight() + { + transform.position += new Vector3(moveSpeedX, 0f, 0f) * Time.deltaTime; + } + + void DetectSwipe() + { + if (Vector2.Distance(startPosition, endPosition) >= minimumDistance && (endTime - startTime) <= maximumTime) + { + Log("Swipe detected."); + Debug.DrawLine(startPosition, endPosition, Color.red, 5f); + Vector3 direction = endPosition - startPosition; + Vector2 direction2D = new Vector2(direction.x, direction.y).normalized; + + SwipeDirection(direction2D); + Log("Direction: " + direction2D); + } + } + + private void SwipeDirection(Vector2 direction) + { + if(Vector2.Dot(Vector2.up, direction) > directionThreshold) + { + Log("Swipe UP"); + MoveToNewLocation(ESwipeDirection.UP); + } + else if (Vector2.Dot(Vector2.down, direction) > directionThreshold) + { + Log("Swipe DOWN"); + MoveToNewLocation(ESwipeDirection.DOWN); + } + else if (Vector2.Dot(Vector2.left, direction) > directionThreshold) + { + Log("Swipe LEFT"); + } + else if (Vector2.Dot(Vector2.right, direction) > directionThreshold) + { + Log("Swipe RIGHT"); + } + } + + private void MoveToNewLocation(ESwipeDirection swipeDirection) + { + int newPositionY; + switch (swipeDirection) + { + case ESwipeDirection.UP: + newPositionY = Mathf.Clamp(currentPositionY + 1, minPositionY, maxPositionY); + if (newPositionY != currentPositionY) + { + currentPositionY = newPositionY; + //StartCoroutine(GoToTarget(newPositionY, travelTimeAxisY)); + GoToTarget(newPositionY, travelTimeAxisY); + bTravelling = true; + } + break; + case ESwipeDirection.DOWN: + newPositionY = Mathf.Clamp(currentPositionY - 1, minPositionY, maxPositionY); + if (newPositionY != currentPositionY) + { + currentPositionY = newPositionY; + //StartCoroutine(GoToTarget(newPositionY, travelTimeAxisY)); + GoToTarget(newPositionY, travelTimeAxisY); + bTravelling = true; + } + break; + case ESwipeDirection.LEFT: + + break; + case ESwipeDirection.RIGHT: + + break; + } + } + + // IEnumerator GoToTarget(int positionY, float time) + // { + // float newPositionY = positionYMultiplier * positionY; + // float addToY = (newPositionY - transform.position.y) / time; + // + // while (true) + // { + // transform.position = new Vector3(transform.position.x, transform.position.y + addToY, transform.position.z) * Time.deltaTime; + // + // yield return new WaitForSeconds(time); + // } + // + // yield return null; + // } + + private void GoToTarget(int positionY, float time) + { + bTravelling = true; + float newPositionY = positionYMultiplier * positionY; + transform.DOMoveY(newPositionY, time).OnComplete(() => { bTravelling = false; }); + + // float newPositionY = positionYMultiplier * positionY; + // float deltaY = newPositionY - transform.position.y; + // transform.position += new Vector3(0f, deltaY, 0f) * Time.deltaTime / time; + // + // if (Mathf.Abs(newPositionY - transform.position.y) <= 0.1f) + // { + // bTravelling = false; + // } + } + + + private void OnEnable() + { + //EnhancedTouchSupport.Enable(); + } + + private void OnDisable() + { + //EnhancedTouchSupport.Disable(); + } + + private void Log(string _msg) + { + if (!debugMode) + return; + + Debug.Log("[" + this.name + "] > [" + this.GetType().Name + "]: " + _msg); + } + + private void LogWarning(string _msg) + { + if (!debugMode) + return; + + Debug.LogWarning("[" + this.name + "] > [" + this.GetType().Name + "]: " + _msg); + } + + private void LogError(string _msg) + { + if (!debugMode) + return; + + Debug.LogError("[" + this.name + "] > [" + this.GetType().Name + "]: " + _msg); + } +} + +enum ESwipeDirection +{ + UP, + DOWN, + LEFT, + RIGHT +} diff --git a/Assets/Scripts/StarCharacter.cs.meta b/Assets/Scripts/StarCharacter.cs.meta new file mode 100644 index 0000000..7886a94 --- /dev/null +++ b/Assets/Scripts/StarCharacter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c2ae8b64f5f18e94f91172098623dee9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/manifest.json b/Packages/manifest.json new file mode 100644 index 0000000..ab7004b --- /dev/null +++ b/Packages/manifest.json @@ -0,0 +1,46 @@ +{ + "dependencies": { + "com.unity.collab-proxy": "1.17.2", + "com.unity.feature.2d": "1.0.0", + "com.unity.ide.rider": "3.0.15", + "com.unity.ide.visualstudio": "2.0.16", + "com.unity.ide.vscode": "1.2.5", + "com.unity.inputsystem": "1.4.4", + "com.unity.test-framework": "1.1.31", + "com.unity.textmeshpro": "3.0.6", + "com.unity.timeline": "1.6.4", + "com.unity.ugui": "1.0.0", + "com.unity.visualscripting": "1.7.8", + "com.unity.modules.ai": "1.0.0", + "com.unity.modules.androidjni": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.cloth": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.terrainphysics": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.umbra": "1.0.0", + "com.unity.modules.unityanalytics": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.unitywebrequesttexture": "1.0.0", + "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.vehicles": "1.0.0", + "com.unity.modules.video": "1.0.0", + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.wind": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } +} diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json new file mode 100644 index 0000000..398bfc3 --- /dev/null +++ b/Packages/packages-lock.json @@ -0,0 +1,492 @@ +{ + "dependencies": { + "com.unity.2d.animation": { + "version": "7.0.6", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.2d.common": "6.0.3", + "com.unity.2d.sprite": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.uielements": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.2d.common": { + "version": "6.0.3", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.2d.sprite": "1.0.0", + "com.unity.mathematics": "1.1.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.burst": "1.5.1" + }, + "url": "https://packages.unity.com" + }, + "com.unity.2d.path": { + "version": "5.0.2", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.2d.pixel-perfect": { + "version": "5.0.1", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.2d.psdimporter": { + "version": "6.0.4", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.2d.animation": "7.0.6", + "com.unity.2d.common": "6.0.3", + "com.unity.2d.sprite": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.2d.sprite": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.2d.spriteshape": { + "version": "7.0.5", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.1.0", + "com.unity.2d.common": "6.0.3", + "com.unity.2d.path": "5.0.2", + "com.unity.modules.physics2d": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.2d.tilemap": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.2d.tilemap.extras": { + "version": "2.2.3", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.modules.tilemap": "1.0.0", + "com.unity.2d.tilemap": "1.0.0", + "com.unity.ugui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.burst": { + "version": "1.6.6", + "depth": 3, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.2.1" + }, + "url": "https://packages.unity.com" + }, + "com.unity.collab-proxy": { + "version": "1.17.2", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.services.core": "1.0.1" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ext.nunit": { + "version": "1.0.6", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.feature.2d": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.2d.animation": "7.0.6", + "com.unity.2d.pixel-perfect": "5.0.1", + "com.unity.2d.psdimporter": "6.0.4", + "com.unity.2d.sprite": "1.0.0", + "com.unity.2d.spriteshape": "7.0.5", + "com.unity.2d.tilemap": "1.0.0", + "com.unity.2d.tilemap.extras": "2.2.3" + } + }, + "com.unity.ide.rider": { + "version": "3.0.15", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.visualstudio": { + "version": "2.0.16", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.9" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.vscode": { + "version": "1.2.5", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.inputsystem": { + "version": "1.4.4", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.uielements": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.mathematics": { + "version": "1.2.6", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.nuget.newtonsoft-json": { + "version": "3.0.2", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.services.core": { + "version": "1.4.2", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.nuget.newtonsoft-json": "3.0.2", + "com.unity.modules.androidjni": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.test-framework": { + "version": "1.1.31", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.textmeshpro": { + "version": "3.0.6", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.timeline": { + "version": "1.6.4", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.director": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ugui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0" + } + }, + "com.unity.visualscripting": { + "version": "1.7.8", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.modules.ai": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.androidjni": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.animation": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.assetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.audio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.cloth": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.director": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.animation": "1.0.0" + } + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.particlesystem": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics2d": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.subsystems": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.terrain": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.terrainphysics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0" + } + }, + "com.unity.modules.tilemap": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics2d": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.uielementsnative": "1.0.0" + } + }, + "com.unity.modules.uielementsnative": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.umbra": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unityanalytics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.unitywebrequest": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unitywebrequestassetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestaudio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.audio": "1.0.0" + } + }, + "com.unity.modules.unitywebrequesttexture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestwww": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.vehicles": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.video": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.vr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } + }, + "com.unity.modules.wind": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.xr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.subsystems": "1.0.0" + } + } + } +} diff --git a/ProjectSettings/AudioManager.asset b/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..27287fe --- /dev/null +++ b/ProjectSettings/AudioManager.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 0 diff --git a/ProjectSettings/ClusterInputManager.asset b/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/ProjectSettings/DynamicsManager.asset b/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..72d1430 --- /dev/null +++ b/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,37 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_DefaultMaxDepenetrationVelocity: 10 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0.1 + m_ClothInterCollisionStiffness: 0.2 + m_ContactsGeneration: 1 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_AutoSimulation: 1 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 1 + m_ClothInterCollisionSettingsToggle: 0 + m_ClothGravity: {x: 0, y: -9.81, z: 0} + m_ContactPairsMode: 0 + m_BroadphaseType: 0 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 250, y: 250, z: 250} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_EnableUnifiedHeightmaps: 1 + m_SolverType: 0 + m_DefaultMaxAngularSpeed: 50 diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..82ab0f5 --- /dev/null +++ b/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,11 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: + - enabled: 1 + path: Assets/Scenes/SampleScene.unity + guid: 2cda990e2423bbf4892e6590ba056729 + m_configObjects: {} diff --git a/ProjectSettings/EditorSettings.asset b/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..3788aee --- /dev/null +++ b/ProjectSettings/EditorSettings.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 0 + m_DefaultBehaviorMode: 1 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 4 + m_SpritePackerPaddingPower: 1 + m_Bc7TextureCompressor: 0 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp + m_ProjectGenerationRootNamespace: + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_AsyncShaderCompilation: 1 + m_CachingShaderPreprocessor: 1 + m_PrefabModeAllowAutoSave: 1 + m_EnterPlayModeOptionsEnabled: 1 + m_EnterPlayModeOptions: 3 + m_GameObjectNamingDigits: 1 + m_GameObjectNamingScheme: 0 + m_AssetNamingUsesSpace: 1 + m_UseLegacyProbeSampleCount: 0 + m_SerializeInlineMappingsOnOneLine: 1 + m_DisableCookiesInLightmapper: 1 + m_AssetPipelineMode: 1 + m_RefreshImportMode: 0 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 + m_CacheServerEnableAuth: 0 + m_CacheServerEnableTls: 0 + m_CacheServerValidationMode: 2 diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..c165afb --- /dev/null +++ b/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,64 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_LegacyDeferred: + m_Mode: 1 + m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_VideoShadersIncludeMode: 2 + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_CustomRenderPipeline: {fileID: 0} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_LightsUseLinearIntensity: 0 + m_LightsUseColorTemperature: 0 + m_DefaultRenderingLayerMask: 1 + m_LogWhenShaderIsCompiled: 0 diff --git a/ProjectSettings/InputManager.asset b/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..b16147e --- /dev/null +++ b/ProjectSettings/InputManager.asset @@ -0,0 +1,487 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Enable Debug Button 1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: joystick button 8 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Enable Debug Button 2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: backspace + altNegativeButton: + altPositiveButton: joystick button 9 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Reset + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Next + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: page down + altNegativeButton: + altPositiveButton: joystick button 5 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Previous + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: page up + altNegativeButton: + altPositiveButton: joystick button 4 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Validate + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Persistent + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: right shift + altNegativeButton: + altPositiveButton: joystick button 2 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Multiplier + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: joystick button 3 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 2 + axis: 6 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 2 + axis: 5 + joyNum: 0 diff --git a/ProjectSettings/MemorySettings.asset b/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..5b5face --- /dev/null +++ b/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/ProjectSettings/NavMeshAreas.asset b/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..ad2654e --- /dev/null +++ b/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,93 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_SettingNames: + - Humanoid diff --git a/ProjectSettings/NetworkManager.asset b/ProjectSettings/NetworkManager.asset new file mode 100644 index 0000000..5dc6a83 --- /dev/null +++ b/ProjectSettings/NetworkManager.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!149 &1 +NetworkManager: + m_ObjectHideFlags: 0 + m_DebugLevel: 0 + m_Sendrate: 15 + m_AssetToPrefab: {} diff --git a/ProjectSettings/PackageManagerSettings.asset b/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..c8caf3c --- /dev/null +++ b/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_EnablePreReleasePackages: 0 + m_EnablePackageDependencies: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + m_SeeAllPackageVersions: 0 + oneTimeWarningShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 7 + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_Modified: 0 + m_ErrorMessage: + m_UserModificationsInstanceId: -830 + m_OriginalInstanceId: -832 + m_LoadAssets: -1 diff --git a/ProjectSettings/Physics2DSettings.asset b/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..6cfcdda --- /dev/null +++ b/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_VelocityThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_SimulationMode: 0 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 1 + m_AutoSyncTransforms: 0 + m_AlwaysShowColliders: 0 + m_ShowColliderSleep: 1 + m_ShowColliderContacts: 0 + m_ShowColliderAABB: 0 + m_ContactArrowScale: 0.2 + m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} + m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} + m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} + m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/ProjectSettings/PresetManager.asset b/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..31b5dcc --- /dev/null +++ b/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,761 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 23 + productGUID: c1158ae948060a44b9460e6daccd636a + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: StarGameWIG + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1920 + defaultScreenHeight: 1080 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 0 + m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + iosAllowHTTPDownload: 1 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 1 + androidBlitType: 0 + androidResizableWindow: 0 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 0 + captureSingleScreen: 0 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 0 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 1048576 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + switchNVNMaxPublicTextureIDCount: 0 + switchNVNMaxPublicSamplerIDCount: 0 + stadiaPresentMode: 0 + stadiaTargetFramerate: 0 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 0 + vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 + m_SupportedAspectRatios: + 4:3: 1 + 5:4: 1 + 16:10: 1 + 16:9: 1 + Others: 1 + bundleVersion: 1.0 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + enable360StereoCapture: 0 + isWsaHolographicRemotingEnabled: 0 + enableFrameTimingStats: 0 + enableOpenGLProfilerGPURecorders: 1 + useHDRDisplay: 0 + D3DHDRBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + resetResolutionOnWindowResize: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.1 + applicationIdentifier: + Standalone: com.DefaultCompany.2DProject + buildNumber: + Standalone: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 1 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 22 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + APKExpansionFiles: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSTargetOSVersionString: 11.0 + tvOSSdkVersion: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 11.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreenCustomXibPath: + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreeniPadCustomXibPath: + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + macOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + iOSRenderExtraFrameOnPause: 0 + iosCopyPluginsCodeInsteadOfSymlink: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + shaderPrecisionModel: 0 + clonedFromGUID: 10ad67313f4034357812315f3c407484 + templatePackageId: com.unity.template.2d@6.1.1 + templateDefaultScene: Assets/Scenes/SampleScene.unity + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomProguardFile: 0 + AndroidTargetArchitectures: 1 + AndroidTargetDevices: 0 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + chromeosInputEmulation: 1 + AndroidMinifyWithR8: 0 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 150 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: + - m_BuildTarget: Android + m_Icons: + - m_Textures: [] + m_Width: 432 + m_Height: 432 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 324 + m_Height: 324 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 216 + m_Height: 216 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 162 + m_Height: 162 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 108 + m_Height: 108 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 81 + m_Height: 81 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 0 + m_SubKind: + m_BuildTargetBatching: [] + m_BuildTargetGraphicsJobs: + - m_BuildTarget: MacStandaloneSupport + m_GraphicsJobs: 0 + - m_BuildTarget: Switch + m_GraphicsJobs: 0 + - m_BuildTarget: MetroSupport + m_GraphicsJobs: 0 + - m_BuildTarget: AppleTVSupport + m_GraphicsJobs: 0 + - m_BuildTarget: BJMSupport + m_GraphicsJobs: 0 + - m_BuildTarget: LinuxStandaloneSupport + m_GraphicsJobs: 0 + - m_BuildTarget: PS4Player + m_GraphicsJobs: 0 + - m_BuildTarget: iOSSupport + m_GraphicsJobs: 0 + - m_BuildTarget: WindowsStandaloneSupport + m_GraphicsJobs: 0 + - m_BuildTarget: XboxOnePlayer + m_GraphicsJobs: 0 + - m_BuildTarget: LuminSupport + m_GraphicsJobs: 0 + - m_BuildTarget: AndroidPlayer + m_GraphicsJobs: 0 + - m_BuildTarget: WebGLSupport + m_GraphicsJobs: 0 + m_BuildTargetGraphicsJobMode: [] + m_BuildTargetGraphicsAPIs: + - m_BuildTarget: AndroidPlayer + m_APIs: 150000000b000000 + m_Automatic: 1 + - m_BuildTarget: iOSSupport + m_APIs: 10000000 + m_Automatic: 1 + m_BuildTargetVRSettings: [] + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetNormalMapEncoding: [] + m_BuildTargetDefaultTextureCompressionFormat: + - m_BuildTarget: Android + m_Format: 3 + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + switchNMETAOverride: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchUseGOLDLinker: 0 + switchLTOSetting: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchTitleNames_15: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchPublisherNames_15: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchIcons_15: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchSmallIcons_15: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchTouchScreenUsage: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 0 + switchSupportedNpadCount: 8 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchPlayerConnectionEnabled: 1 + switchUseNewStyleFilepaths: 0 + switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 + switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 2 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: bi9UOuSpM2Tlh01vOzwvSikHFswuzleh + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4UseLowGarlicFragmentationMode: 1 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 2 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4CompatibilityPS5: 0 + ps4AllowPS5Detection: 0 + ps4GPU800MHz: 1 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 32 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 0 + webGLWasmArithmeticExceptions: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLDecompressionFallback: 0 + scriptingDefineSymbols: {} + additionalCompilerArguments: {} + platformArchitecture: {} + scriptingBackend: {} + il2cppCompilerConfiguration: {} + managedStrippingLevel: {} + incrementalIl2cppBuild: {} + suppressCommonWarnings: 1 + allowUnsafeCode: 0 + useDeterministicCompilation: 1 + enableRoslynAnalyzers: 1 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 1 + assemblyVersionValidation: 1 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: 2D_BuiltInRenderer + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: 2D_BuiltInRenderer + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} + metroSplashScreenUseBackgroundColor: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + vcxProjDefaultLanguage: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnhancedXboxCompatibilityMode: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: + vrEditorSettings: {} + cloudServicesEnabled: {} + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + apiCompatibilityLevel: 6 + activeInputHandler: 2 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] + projectName: + organizationId: + cloudEnabled: 0 + legacyClampBlendShapeWeights: 0 + playerDataPath: + forceSRGBBlit: 1 + virtualTexturingSupportEnabled: 0 diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..8d9054d --- /dev/null +++ b/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 2021.3.9f1 +m_EditorVersionWithRevision: 2021.3.9f1 (ad3870b89536) diff --git a/ProjectSettings/QualitySettings.asset b/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..bcd6706 --- /dev/null +++ b/ProjectSettings/QualitySettings.asset @@ -0,0 +1,239 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 5 + m_QualitySettings: + - serializedVersion: 2 + name: Very Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 1 + textureQuality: 1 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.3 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + textureQuality: 0 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.4 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 16 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Medium + pixelLightCount: 1 + shadows: 1 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 1 + lodBias: 0.7 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 64 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: High + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Very High + pixelLightCount: 3 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 70 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1.5 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 1024 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Ultra + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 255 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 2 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + m_PerPlatformDefaultQuality: + Android: 2 + Lumin: 5 + GameCoreScarlett: 5 + GameCoreXboxOne: 5 + Nintendo Switch: 5 + PS4: 5 + PS5: 5 + Stadia: 5 + Standalone: 5 + WebGL: 3 + Windows Store Apps: 5 + XboxOne: 5 + iPhone: 2 + tvOS: 2 diff --git a/ProjectSettings/SceneTemplateSettings.json b/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..6f3e60f --- /dev/null +++ b/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,167 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": false + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicMaterial", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": false + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "ignore": false, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..1c92a78 --- /dev/null +++ b/ProjectSettings/TagManager.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 2 + tags: [] + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 diff --git a/ProjectSettings/TimeManager.asset b/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..558a017 --- /dev/null +++ b/ProjectSettings/TimeManager.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: 0.02 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/ProjectSettings/UnityConnectSettings.asset b/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..6125b30 --- /dev/null +++ b/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com + m_TestInitMode: 0 + CrashReportingSettings: + m_EventUrl: https://perf-events.cloud.unity3d.com + m_Enabled: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/ProjectSettings/VFXManager.asset b/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..46f38e1 --- /dev/null +++ b/ProjectSettings/VFXManager.asset @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 + m_CompiledVersion: 0 + m_RuntimeVersion: 0 diff --git a/ProjectSettings/VersionControlSettings.asset b/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..dca2881 --- /dev/null +++ b/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_CollabEditorSettings: + inProgressEnabled: 1 diff --git a/ProjectSettings/XRSettings.asset b/ProjectSettings/XRSettings.asset new file mode 100644 index 0000000..482590c --- /dev/null +++ b/ProjectSettings/XRSettings.asset @@ -0,0 +1,10 @@ +{ + "m_SettingKeys": [ + "VR Device Disabled", + "VR Device User Alert" + ], + "m_SettingValues": [ + "False", + "False" + ] +} \ No newline at end of file diff --git a/ProjectSettings/boot.config b/ProjectSettings/boot.config new file mode 100644 index 0000000..e69de29

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 literal 0 HcmV?d00001 diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta new file mode 100644 index 0000000..53590f3 --- /dev/null +++ b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 45d5034162d6cf04dbe46da84fc7d074 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + DefaultValueInitialized: true + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs.meta new file mode 100644 index 0000000..a81ba5f --- /dev/null +++ b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 0034ebae0c2a9344e897db1160d71b6d +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..d06fc7c3e49fb705b19f50a23884e11e08fd6e89 GIT binary patch literal 1565 zcmV+&2IBdNP)pK&q+iZU-R{R_dCD)yXSsA=iKiWUaHS%xglyYZad)#h+<5;*}0 zNm4;#XNMU$Zj;|vsJ23aE-5O{$8uo1iN`?c(v%ev86gvrQJJtDUgxox^bsB@>w%Sv@Z{F3?7c1><;yj*g<&fQ;rHj}CCd5!B9uJ9iB}?8sX9 z0l}mbA`+6NSzvKr7orW|#Qq*|(_H8{K}SN-b6PMMr68BfK|728UnV4rbuENZG2Z=Z5Wu9k@Z ztFhSr_^u&Go2vR`!G?lmnDf^U%@^vc&8BfCWA&5;S^i0KcuQ?}kJ(Z3^ukf69xF;y zhTjIduJg}*jhXlo$g+|CIjkSftK3odtF^Ij{rKV$Cnn9$)I>`OWpR2BZvMLfc!?KG z`Ygj57^xT!Rkoeb;;a>--p1*pKcW45EApC=r9;lR-6-kL1bPPs&3JrJ`3>IVgWG}u zrp-R@PdWz2X;89OBJXFclQSuKH%hu+=km#Rb8S^yF>)=)yvW|npJ`O9bTXp9hsHlb znp{n43g)Eywa^bS0=L=}#fV_6`pc{T=00UOIql`_gv<&0h%GG1sFbh_*L zqP^;2G6HL$uEjx);7q^Pe;Vac1Sb6of8vi>KZaIU-M!xHLy7h)J?TTTtlXuy)v(S-r9V9I7cw) zBJ@dWbWCbJy!KBwxl~8X#1q??E z(FRaBcRnf^OG3xEWE{XiDJhYPVBV54Q*B2`fK%)r4bJp zv@(2PX=l*%^bG!@&}Ku`gi%4ta5WNM0#2BfuE7?N_gS0ljFV#0yW1U1N=~9Q$*7V9 zs*5|&bg|QQt;WLQDrER5jfAhm2W6wJag5au!96_|(2Th-DB`E<_rUdkM#GW4COG!3 z`K~-?KL;C^l|r|5RUE^pEPvtTLR^K!B04D#hpLNGOCz;*Z|Rx&7b{!rLVU{NI)eH5 zyg0@a6A$elUi>gA6@P$cWD53gSzVnTr*}j6sd4;47Sd19E6U{>QXP%UxLJ2^hjTS@ z6ZIq2+r)$@>IAiS(jN5U4r-m;p98e&wn5+}NTri*S7~M1@c0mh@Mz$FrSMzj$u5?< P00000NkvXXu0mjftl$Bl literal 0 HcmV?d00001 diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta new file mode 100644 index 0000000..61c3cce --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta new file mode 100644 index 0000000..c343a61 --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png.meta new file mode 100644 index 0000000..7ca1911 --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta new file mode 100644 index 0000000..f12a1a7 --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta new file mode 100644 index 0000000..26e4255 --- /dev/null +++ b/Assets/InputSystem/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/InputSystem/Plugins/Demigiant/DOTween/Modules.meta b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules.meta new file mode 100644 index 0000000..24cd2ac --- /dev/null +++ b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 143604b8bad857d47a6f7cc7a533e2dc +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs new file mode 100644 index 0000000..c195b6c --- /dev/null +++ b/Assets/InputSystem/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs @@ -0,0 +1,202 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; +using UnityEngine; +#if UNITY_5 || UNITY_2017_1_OR_NEWER +using UnityEngine.Audio; // Required for AudioMixer +#endif + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleAudio + { + #region Shortcuts + + #region Audio + + ///