From 34bdfc2049b9af4789ba0e3140a0d68be2b74009 Mon Sep 17 00:00:00 2001 From: Zheng Wu Date: Thu, 29 Aug 2019 11:30:27 +0800 Subject: [PATCH 01/10] Checks if a given Window is open. --- UIFrame.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/UIFrame.cs b/UIFrame.cs index c4fdf08..e23360d 100644 --- a/UIFrame.cs +++ b/UIFrame.cs @@ -234,6 +234,19 @@ public bool IsPanelOpen(string panelId) { return panelLayer.IsPanelVisible(panelId); } + /// + /// Checks if a given Window is open. + /// + /// Window identifier. + /// + public bool IsWindowOpen(string windowId) { + if (string.IsNullOrEmpty(windowId)) + { + return false; + } + return windowLayer.CurrentWindow?.ScreenId == windowId; + } + /// /// Hide all screens /// From dd5a7712a3bc3c3429155f2f32e770fc3c339aac Mon Sep 17 00:00:00 2001 From: Wu Zheng Date: Thu, 29 Aug 2019 11:35:36 +0800 Subject: [PATCH 02/10] Delete useless comment. --- UIFrame.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/UIFrame.cs b/UIFrame.cs index e23360d..2bc0806 100644 --- a/UIFrame.cs +++ b/UIFrame.cs @@ -238,7 +238,6 @@ public bool IsPanelOpen(string panelId) { /// Checks if a given Window is open. /// /// Window identifier. - /// public bool IsWindowOpen(string windowId) { if (string.IsNullOrEmpty(windowId)) { From 807ee11fafdd5c3fef1917e4deb35538b6b06fc8 Mon Sep 17 00:00:00 2001 From: leonidwu Date: Tue, 5 Jul 2022 01:24:45 +0800 Subject: [PATCH 03/10] chore:support openupm. --- package.json | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 package.json diff --git a/package.json b/package.json new file mode 100644 index 0000000..0e0dcd2 --- /dev/null +++ b/package.json @@ -0,0 +1,3 @@ +{ + +} \ No newline at end of file From 9618a3caec59cd512865bccd3be3b95ce4e699c7 Mon Sep 17 00:00:00 2001 From: leonidwu Date: Tue, 5 Jul 2022 01:25:31 +0800 Subject: [PATCH 04/10] chore:support for openupm. --- package.json | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 0e0dcd2..bce6d0a 100644 --- a/package.json +++ b/package.json @@ -1,3 +1,14 @@ { - + "name": "com.woo.deVoidUI", + "version": "1.0.1", + "displayName": "deVoid UI Framework", + "description": "deVoid UI Framework package", + "unity": "2018.1", + "documentationUrl": "https://github.com/sgamerw/uiframework", + "licensesUrl": "https://github.com/sgamerw/uiframework/blob/master/LICENSE", + "dependencies": { + }, + "author": { + "name": "yankooliveira, woo" + } } \ No newline at end of file From f7735f9be0d687037aeb430c9e7650a4762935ab Mon Sep 17 00:00:00 2001 From: leonidwu Date: Tue, 5 Jul 2022 01:28:00 +0800 Subject: [PATCH 05/10] chore:modify name. --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index bce6d0a..f7eef3c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "com.woo.deVoidUI", - "version": "1.0.1", + "name": "com.woo.devoid-ui", + "version": "1.0.0", "displayName": "deVoid UI Framework", "description": "deVoid UI Framework package", "unity": "2018.1", From 384e5afdef3794ef2194f9f9b10b3dda5414b990 Mon Sep 17 00:00:00 2001 From: leonidwu Date: Tue, 5 Jul 2022 19:35:15 +0800 Subject: [PATCH 06/10] chore(data):upgrade version to 1.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f7eef3c..180d145 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "com.woo.devoid-ui", - "version": "1.0.0", + "version": "1.0.1", "displayName": "deVoid UI Framework", "description": "deVoid UI Framework package", "unity": "2018.1", From bdde05aa01750c7b465f0ee58b91b7ec2448d823 Mon Sep 17 00:00:00 2001 From: leonidwu Date: Tue, 5 Jul 2022 21:29:31 +0800 Subject: [PATCH 07/10] chore:support openupm. --- .gitignore | 63 + Assets/External.meta | 8 + Assets/External/Demigiant.meta | 8 + Assets/External/Demigiant/DOTween.meta | 8 + Assets/External/Demigiant/DOTween/DOTween.XML | 2696 ++++++++ .../Demigiant/DOTween/DOTween.XML.meta | 7 + Assets/External/Demigiant/DOTween/DOTween.dll | Bin 0 -> 155648 bytes .../Demigiant/DOTween/DOTween.dll.meta | 32 + Assets/External/Demigiant/DOTween/Editor.meta | 8 + .../DOTween/Editor/DOTweenEditor.XML | 98 + .../DOTween/Editor/DOTweenEditor.XML.meta | 7 + .../DOTween/Editor/DOTweenEditor.dll | Bin 0 -> 50688 bytes .../DOTween/Editor/DOTweenEditor.dll.meta | 32 + .../Demigiant/DOTween/Editor/Imgs.meta | 8 + .../DOTween/Editor/Imgs/DOTweenIcon.png | Bin 0 -> 1565 bytes .../DOTween/Editor/Imgs/DOTweenIcon.png.meta | 88 + .../Demigiant/DOTween/Editor/Imgs/Footer.png | Bin 0 -> 4409 bytes .../DOTween/Editor/Imgs/Footer.png.meta | 88 + .../DOTween/Editor/Imgs/Footer_dark.png | Bin 0 -> 4429 bytes .../DOTween/Editor/Imgs/Footer_dark.png.meta | 88 + .../Demigiant/DOTween/Editor/Imgs/Header.jpg | Bin 0 -> 22787 bytes .../DOTween/Editor/Imgs/Header.jpg.meta | 88 + .../External/Demigiant/DOTween/Modules.meta | 8 + .../DOTween/Modules/DOTweenModuleAudio.cs | 202 + .../Modules/DOTweenModuleAudio.cs.meta | 11 + .../DOTween/Modules/DOTweenModulePhysics.cs | 216 + .../Modules/DOTweenModulePhysics.cs.meta | 11 + .../DOTween/Modules/DOTweenModulePhysics2D.cs | 107 + .../Modules/DOTweenModulePhysics2D.cs.meta | 11 + .../DOTween/Modules/DOTweenModuleSprite.cs | 92 + .../Modules/DOTweenModuleSprite.cs.meta | 11 + .../DOTween/Modules/DOTweenModuleUI.cs | 604 ++ .../DOTween/Modules/DOTweenModuleUI.cs.meta | 11 + .../Modules/DOTweenModuleUnityVersion.cs | 299 + .../Modules/DOTweenModuleUnityVersion.cs.meta | 11 + .../DOTween/Modules/DOTweenModuleUtils.cs | 155 + .../Modules/DOTweenModuleUtils.cs.meta | 11 + Assets/External/Demigiant/DOTween/readme.txt | 29 + .../Demigiant/DOTween/readme.txt.meta | 7 + Assets/External/Signals.cs | 322 + Assets/External/Signals.cs.meta | 3 + Assets/External/TextMesh Pro.meta | 8 + .../External/TextMesh Pro/Documentation.meta | 8 + .../TextMesh Pro User Guide 2016.pdf | Bin 0 -> 694398 bytes .../TextMesh Pro User Guide 2016.pdf.meta | 7 + Assets/External/TextMesh Pro/Resources.meta | 8 + .../Resources/Fonts & Materials.meta | 9 + .../LiberationSans SDF - Drop Shadow.mat | 103 + .../LiberationSans SDF - Drop Shadow.mat.meta | 8 + .../LiberationSans SDF - Outline.mat | 101 + .../LiberationSans SDF - Outline.mat.meta | 8 + .../LiberationSans SDF.asset | 3891 ++++++++++++ .../LiberationSans SDF.asset.meta | 8 + .../LineBreaking Following Characters.txt | 1 + ...LineBreaking Following Characters.txt.meta | 8 + .../LineBreaking Leading Characters.txt | 1 + .../LineBreaking Leading Characters.txt.meta | 8 + .../TextMesh Pro/Resources/Shaders.meta | 9 + .../Shaders/TMP_Bitmap-Custom-Atlas.shader | 142 + .../TMP_Bitmap-Custom-Atlas.shader.meta | 7 + .../Shaders/TMP_Bitmap-Mobile.shader | 144 + .../Shaders/TMP_Bitmap-Mobile.shader.meta | 7 + .../Resources/Shaders/TMP_Bitmap.shader | 142 + .../Resources/Shaders/TMP_Bitmap.shader.meta | 7 + .../Resources/Shaders/TMP_SDF Overlay.shader | 304 + .../Shaders/TMP_SDF Overlay.shader.meta | 7 + .../Shaders/TMP_SDF-Mobile Masking.shader | 245 + .../TMP_SDF-Mobile Masking.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile Overlay.shader | 229 + .../TMP_SDF-Mobile Overlay.shader.meta | 7 + .../Resources/Shaders/TMP_SDF-Mobile.shader | 229 + .../Shaders/TMP_SDF-Mobile.shader.meta | 7 + .../Shaders/TMP_SDF-Surface-Mobile.shader | 136 + .../TMP_SDF-Surface-Mobile.shader.meta | 7 + .../Resources/Shaders/TMP_SDF-Surface.shader | 155 + .../Shaders/TMP_SDF-Surface.shader.meta | 7 + .../Resources/Shaders/TMP_SDF.shader | 305 + .../Resources/Shaders/TMP_SDF.shader.meta | 7 + .../Resources/Shaders/TMP_Sprite.shader | 113 + .../Resources/Shaders/TMP_Sprite.shader.meta | 9 + .../Resources/Shaders/TMPro.cginc | 84 + .../Resources/Shaders/TMPro.cginc.meta | 7 + .../Resources/Shaders/TMPro_Properties.cginc | 84 + .../Shaders/TMPro_Properties.cginc.meta | 7 + .../Resources/Shaders/TMPro_Surface.cginc | 115 + .../Shaders/TMPro_Surface.cginc.meta | 7 + .../TextMesh Pro/Resources/Sprite Assets.meta | 9 + .../Resources/Sprite Assets/EmojiOne.asset | 638 ++ .../Sprite Assets/EmojiOne.asset.meta | 8 + .../TextMesh Pro/Resources/Style Sheets.meta | 9 + .../Style Sheets/Default Style Sheet.asset | 68 + .../Default Style Sheet.asset.meta | 8 + .../TextMesh Pro/Resources/TMP Settings.asset | 103 + .../Resources/TMP Settings.asset.meta | 8 + Assets/External/TextMesh Pro/Sprites.meta | 8 + .../Sprites/EmojiOne Attribution.txt | 3 + .../Sprites/EmojiOne Attribution.txt.meta | 7 + .../TextMesh Pro/Sprites/EmojiOne.json | 156 + .../TextMesh Pro/Sprites/EmojiOne.json.meta | 8 + .../TextMesh Pro/Sprites/EmojiOne.png | Bin 0 -> 73304 bytes .../TextMesh Pro/Sprites/EmojiOne.png.meta | 431 ++ Assets/PlayerData.asset | 23 + Assets/PlayerData.asset.meta | 8 + Assets/Plugins.meta | 8 + Assets/Plugins/Editor.meta | 8 + Assets/Resources.meta | 8 + Assets/Resources/DOTweenSettings.asset | 46 + Assets/Resources/DOTweenSettings.asset.meta | 8 + Assets/StartHere.unity | 454 ++ Assets/StartHere.unity.meta | 7 + Assets/UIFramework.meta | 8 + Assets/UIFramework/Core.meta | 8 + {Core => Assets/UIFramework/Core}/AUILayer.cs | 0 Assets/UIFramework/Core/AUILayer.cs.meta | 11 + .../UIFramework/Core}/AUIScreenController.cs | 0 .../Core/AUIScreenController.cs.meta | 11 + .../Core}/ScreenControllerInterfaces.cs | 0 .../Core/ScreenControllerInterfaces.cs.meta | 11 + .../Core}/ScreenPropertyInterfaces.cs | 0 .../Core/ScreenPropertyInterfaces.cs.meta | 11 + Assets/UIFramework/Editor.meta | 8 + .../UIFramework/Editor}/UIFrameworkTools.cs | 0 .../Editor/UIFrameworkTools.cs.meta | 11 + MANUAL.md => Assets/UIFramework/MANUAL.md | 0 Assets/UIFramework/MANUAL.md.meta | 7 + Assets/UIFramework/Panel.meta | 8 + .../UIFramework/Panel}/APanelController.cs | 0 .../Panel/APanelController.cs.meta | 11 + .../UIFramework/Panel}/PanelPriority.cs | 0 .../UIFramework/Panel/PanelPriority.cs.meta | 3 + .../UIFramework/Panel}/PanelProperties.cs | 0 .../UIFramework/Panel/PanelProperties.cs.meta | 11 + .../UIFramework/Panel}/PanelUILayer.cs | 0 Assets/UIFramework/Panel/PanelUILayer.cs.meta | 11 + Assets/UIFramework/README.md | 65 + Assets/UIFramework/README.md.meta | 7 + Assets/UIFramework/ScreenTransitions.meta | 8 + .../ATransitionComponent.cs | 0 .../ATransitionComponent.cs.meta | 11 + .../LegacyAnimationScreenTransition.cs | 0 .../LegacyAnimationScreenTransition.cs.meta | 11 + .../SimpleFadeTransition.cs | 0 .../SimpleFadeTransition.cs.meta | 3 + UIFrame.cs => Assets/UIFramework/UIFrame.cs | 12 - Assets/UIFramework/UIFrame.cs.meta | 11 + .../UIFramework/UISettings.cs | 0 Assets/UIFramework/UISettings.cs.meta | 11 + Assets/UIFramework/Window.meta | 8 + .../UIFramework/Window}/AWindowController.cs | 0 .../Window/AWindowController.cs.meta | 11 + .../UIFramework/Window}/WindowHistoryEntry.cs | 0 .../Window/WindowHistoryEntry.cs.meta | 11 + .../UIFramework/Window}/WindowParaLayer.cs | 0 .../Window/WindowParaLayer.cs.meta | 11 + .../UIFramework/Window}/WindowPriority.cs | 0 .../UIFramework/Window/WindowPriority.cs.meta | 11 + .../UIFramework/Window}/WindowProperties.cs | 0 .../Window/WindowProperties.cs.meta | 11 + .../UIFramework/Window}/WindowUILayer.cs | 0 .../UIFramework/Window/WindowUILayer.cs.meta | 11 + .../UIFramework/package.json | 2 +- Assets/UIFramework/package.json.meta | 7 + Assets/UIFrameworkExamples.meta | 8 + Assets/UIFrameworkExamples/Art.meta | 8 + Assets/UIFrameworkExamples/Art/3d.png | Bin 0 -> 10646 bytes Assets/UIFrameworkExamples/Art/3d.png.meta | 88 + .../3dExample_FancyAnimatedTransition.anim | 3306 ++++++++++ ...dExample_FancyAnimatedTransition.anim.meta | 8 + .../UIFrameworkExamples/Art/StarParticle.mat | 96 + .../Art/StarParticle.mat.meta | 8 + Assets/UIFrameworkExamples/Art/Trail.mat | 97 + Assets/UIFrameworkExamples/Art/Trail.mat.meta | 8 + Assets/UIFrameworkExamples/Art/eye.png | Bin 0 -> 13624 bytes Assets/UIFrameworkExamples/Art/eye.png.meta | 88 + Assets/UIFrameworkExamples/Art/home.png | Bin 0 -> 8759 bytes Assets/UIFrameworkExamples/Art/home.png.meta | 88 + Assets/UIFrameworkExamples/Art/person.png | Bin 0 -> 11895 bytes .../UIFrameworkExamples/Art/person.png.meta | 88 + Assets/UIFrameworkExamples/Art/smiley.png | Bin 0 -> 14006 bytes .../UIFrameworkExamples/Art/smiley.png.meta | 88 + Assets/UIFrameworkExamples/Art/star.png | Bin 0 -> 19300 bytes Assets/UIFrameworkExamples/Art/star.png.meta | 88 + Assets/UIFrameworkExamples/Art/warning.png | Bin 0 -> 7906 bytes .../UIFrameworkExamples/Art/warning.png.meta | 88 + .../DefaultUISettings.asset | 27 + .../DefaultUISettings.asset.meta | 8 + Assets/UIFrameworkExamples/Prefabs.meta | 8 + .../UIFrameworkExamples/Prefabs/Screens.meta | 8 + .../Screens/CameraProjectionWindow.prefab | 1087 ++++ .../CameraProjectionWindow.prefab.meta | 7 + .../Prefabs/Screens/ConfirmationPopup.prefab | 1299 ++++ .../Screens/ConfirmationPopup.prefab.meta | 7 + .../Prefabs/Screens/HomeWindow.prefab | 585 ++ .../Prefabs/Screens/HomeWindow.prefab.meta | 7 + .../Prefabs/Screens/NavigationPanel.prefab | 571 ++ .../Screens/NavigationPanel.prefab.meta | 7 + .../Prefabs/Screens/PlayerWindow.prefab | 1720 +++++ .../Prefabs/Screens/PlayerWindow.prefab.meta | 7 + .../Prefabs/Screens/PopupExampleWindow.prefab | 973 +++ .../Screens/PopupExampleWindow.prefab.meta | 7 + .../Prefabs/Screens/StartGameWindow.prefab | 576 ++ .../Screens/StartGameWindow.prefab.meta | 7 + .../Prefabs/Screens/ThreeDExample.prefab | 5560 +++++++++++++++++ .../Prefabs/Screens/ThreeDExample.prefab.meta | 7 + .../Prefabs/Screens/ToastPanel.prefab | 455 ++ .../Prefabs/Screens/ToastPanel.prefab.meta | 7 + .../Prefabs/UIFrame.prefab | 559 ++ .../Prefabs/UIFrame.prefab.meta | 7 + Assets/UIFrameworkExamples/Scripts.meta | 8 + .../UIFrameworkExamples/Scripts/Editor.meta | 8 + .../Scripts/Editor/ScreenIdGenerator.cs | 130 + .../Scripts/Editor/ScreenIdGenerator.cs.meta | 11 + .../UIFrameworkExamples/Scripts/Extras.meta | 8 + .../Scripts/Extras/FakePlayerData.cs | 41 + .../Scripts/Extras/FakePlayerData.cs.meta | 11 + .../Scripts/ScreenControllers.meta | 8 + .../CameraProjectionWindowController.cs | 66 + .../CameraProjectionWindowController.cs.meta | 11 + .../ConfirmationPopupController.cs | 65 + .../ConfirmationPopupController.cs.meta | 11 + .../EmptyWindowController.cs | 13 + .../EmptyWindowController.cs.meta | 3 + .../NavigationPanelController.cs | 92 + .../NavigationPanelController.cs.meta | 11 + .../PlayerWindowController.cs | 82 + .../PlayerWindowController.cs.meta | 3 + .../PopupExampleWindowController.cs | 75 + .../PopupExampleWindowController.cs.meta | 3 + .../StartWindowController.cs | 13 + .../StartWindowController.cs.meta | 11 + .../ScreenControllers/ToastPanelController.cs | 67 + .../ToastPanelController.cs.meta | 11 + .../UIFrameworkExamples/Scripts/ScreenIds.cs | 34 + .../Scripts/ScreenIds.cs.meta | 11 + .../Scripts/ScreenTransitions.meta | 8 + .../ScaleScreenTransition.cs | 58 + .../ScaleScreenTransition.cs.meta | 11 + .../SlideScreenTransition.cs | 75 + .../SlideScreenTransition.cs.meta | 11 + .../Scripts/UIDemoController.cs | 66 + .../Scripts/UIDemoController.cs.meta | 11 + .../UIFrameworkExamples/Scripts/Widgets.meta | 8 + .../Scripts/Widgets/AutoMove.cs | 22 + .../Scripts/Widgets/AutoMove.cs.meta | 11 + .../Scripts/Widgets/LevelProgressComponent.cs | 28 + .../Widgets/LevelProgressComponent.cs.meta | 3 + .../Scripts/Widgets/NavigationPanelButton.cs | 56 + .../Widgets/NavigationPanelButton.cs.meta | 11 + .../Scripts/Widgets/UIFollowComponent.cs | 123 + .../Scripts/Widgets/UIFollowComponent.cs.meta | 11 + .../UIPrefabEnvironment.unity | 315 + .../UIPrefabEnvironment.unity.meta | 7 + Packages/manifest.json | 40 + ProjectSettings/AudioManager.asset | 17 + ProjectSettings/ClusterInputManager.asset | 6 + ProjectSettings/DynamicsManager.asset | 29 + ProjectSettings/EditorBuildSettings.asset | 11 + ProjectSettings/EditorSettings.asset | 24 + ProjectSettings/GraphicsSettings.asset | 57 + ProjectSettings/InputManager.asset | 295 + ProjectSettings/NavMeshAreas.asset | 91 + ProjectSettings/NetworkManager.asset | 8 + ProjectSettings/Physics2DSettings.asset | 55 + ProjectSettings/PresetManager.asset | 13 + ProjectSettings/ProjectSettings.asset | 625 ++ ProjectSettings/ProjectVersion.txt | 1 + ProjectSettings/QualitySettings.asset | 191 + ProjectSettings/TagManager.asset | 43 + ProjectSettings/TimeManager.asset | 9 + ProjectSettings/UPRSettings.asset | 7 + ProjectSettings/UnityConnectSettings.asset | 34 + ProjectSettings/VFXManager.asset | 11 + README.md | 80 +- 273 files changed, 35413 insertions(+), 86 deletions(-) create mode 100644 .gitignore create mode 100644 Assets/External.meta create mode 100644 Assets/External/Demigiant.meta create mode 100644 Assets/External/Demigiant/DOTween.meta create mode 100644 Assets/External/Demigiant/DOTween/DOTween.XML create mode 100644 Assets/External/Demigiant/DOTween/DOTween.XML.meta create mode 100644 Assets/External/Demigiant/DOTween/DOTween.dll create mode 100644 Assets/External/Demigiant/DOTween/DOTween.dll.meta create mode 100644 Assets/External/Demigiant/DOTween/Editor.meta create mode 100644 Assets/External/Demigiant/DOTween/Editor/DOTweenEditor.XML create mode 100644 Assets/External/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta create mode 100644 Assets/External/Demigiant/DOTween/Editor/DOTweenEditor.dll create mode 100644 Assets/External/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta create mode 100644 Assets/External/Demigiant/DOTween/Editor/Imgs.meta create mode 100644 Assets/External/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png create mode 100644 Assets/External/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta create mode 100644 Assets/External/Demigiant/DOTween/Editor/Imgs/Footer.png create mode 100644 Assets/External/Demigiant/DOTween/Editor/Imgs/Footer.png.meta create mode 100644 Assets/External/Demigiant/DOTween/Editor/Imgs/Footer_dark.png create mode 100644 Assets/External/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta create mode 100644 Assets/External/Demigiant/DOTween/Editor/Imgs/Header.jpg create mode 100644 Assets/External/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta create mode 100644 Assets/External/Demigiant/DOTween/Modules.meta create mode 100644 Assets/External/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs create mode 100644 Assets/External/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta create mode 100644 Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs create mode 100644 Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta create mode 100644 Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs create mode 100644 Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta create mode 100644 Assets/External/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs create mode 100644 Assets/External/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta create mode 100644 Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUI.cs create mode 100644 Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta create mode 100644 Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs create mode 100644 Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta create mode 100644 Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs create mode 100644 Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta create mode 100644 Assets/External/Demigiant/DOTween/readme.txt create mode 100644 Assets/External/Demigiant/DOTween/readme.txt.meta create mode 100644 Assets/External/Signals.cs create mode 100644 Assets/External/Signals.cs.meta create mode 100644 Assets/External/TextMesh Pro.meta create mode 100644 Assets/External/TextMesh Pro/Documentation.meta create mode 100644 Assets/External/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf create mode 100644 Assets/External/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta create mode 100644 Assets/External/TextMesh Pro/Resources.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Fonts & Materials.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat create mode 100644 Assets/External/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat create mode 100644 Assets/External/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset create mode 100644 Assets/External/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta create mode 100644 Assets/External/TextMesh Pro/Resources/LineBreaking Following Characters.txt create mode 100644 Assets/External/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta create mode 100644 Assets/External/TextMesh Pro/Resources/LineBreaking Leading Characters.txt create mode 100644 Assets/External/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_Bitmap-Custom-Atlas.shader create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_Bitmap-Mobile.shader create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_Bitmap-Mobile.shader.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_Bitmap.shader create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_Bitmap.shader.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF Overlay.shader create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF Overlay.shader.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF-Mobile Masking.shader create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF-Mobile Masking.shader.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF-Mobile Overlay.shader create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF-Mobile Overlay.shader.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF-Mobile.shader create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF-Mobile.shader.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF-Surface-Mobile.shader create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF-Surface-Mobile.shader.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF-Surface.shader create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF-Surface.shader.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF.shader create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF.shader.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_Sprite.shader create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMP_Sprite.shader.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMPro.cginc create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMPro.cginc.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMPro_Properties.cginc create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMPro_Properties.cginc.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMPro_Surface.cginc create mode 100644 Assets/External/TextMesh Pro/Resources/Shaders/TMPro_Surface.cginc.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Sprite Assets.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset create mode 100644 Assets/External/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Style Sheets.meta create mode 100644 Assets/External/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset create mode 100644 Assets/External/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta create mode 100644 Assets/External/TextMesh Pro/Resources/TMP Settings.asset create mode 100644 Assets/External/TextMesh Pro/Resources/TMP Settings.asset.meta create mode 100644 Assets/External/TextMesh Pro/Sprites.meta create mode 100644 Assets/External/TextMesh Pro/Sprites/EmojiOne Attribution.txt create mode 100644 Assets/External/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta create mode 100644 Assets/External/TextMesh Pro/Sprites/EmojiOne.json create mode 100644 Assets/External/TextMesh Pro/Sprites/EmojiOne.json.meta create mode 100644 Assets/External/TextMesh Pro/Sprites/EmojiOne.png create mode 100644 Assets/External/TextMesh Pro/Sprites/EmojiOne.png.meta create mode 100644 Assets/PlayerData.asset create mode 100644 Assets/PlayerData.asset.meta create mode 100644 Assets/Plugins.meta create mode 100644 Assets/Plugins/Editor.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/StartHere.unity create mode 100644 Assets/StartHere.unity.meta create mode 100644 Assets/UIFramework.meta create mode 100644 Assets/UIFramework/Core.meta rename {Core => Assets/UIFramework/Core}/AUILayer.cs (100%) create mode 100644 Assets/UIFramework/Core/AUILayer.cs.meta rename {Core => Assets/UIFramework/Core}/AUIScreenController.cs (100%) create mode 100644 Assets/UIFramework/Core/AUIScreenController.cs.meta rename {Core => Assets/UIFramework/Core}/ScreenControllerInterfaces.cs (100%) create mode 100644 Assets/UIFramework/Core/ScreenControllerInterfaces.cs.meta rename {Core => Assets/UIFramework/Core}/ScreenPropertyInterfaces.cs (100%) create mode 100644 Assets/UIFramework/Core/ScreenPropertyInterfaces.cs.meta create mode 100644 Assets/UIFramework/Editor.meta rename {Editor => Assets/UIFramework/Editor}/UIFrameworkTools.cs (100%) create mode 100644 Assets/UIFramework/Editor/UIFrameworkTools.cs.meta rename MANUAL.md => Assets/UIFramework/MANUAL.md (100%) create mode 100644 Assets/UIFramework/MANUAL.md.meta create mode 100644 Assets/UIFramework/Panel.meta rename {Panel => Assets/UIFramework/Panel}/APanelController.cs (100%) create mode 100644 Assets/UIFramework/Panel/APanelController.cs.meta rename {Panel => Assets/UIFramework/Panel}/PanelPriority.cs (100%) create mode 100644 Assets/UIFramework/Panel/PanelPriority.cs.meta rename {Panel => Assets/UIFramework/Panel}/PanelProperties.cs (100%) create mode 100644 Assets/UIFramework/Panel/PanelProperties.cs.meta rename {Panel => Assets/UIFramework/Panel}/PanelUILayer.cs (100%) create mode 100644 Assets/UIFramework/Panel/PanelUILayer.cs.meta create mode 100644 Assets/UIFramework/README.md create mode 100644 Assets/UIFramework/README.md.meta create mode 100644 Assets/UIFramework/ScreenTransitions.meta rename {ScreenTransitions => Assets/UIFramework/ScreenTransitions}/ATransitionComponent.cs (100%) create mode 100644 Assets/UIFramework/ScreenTransitions/ATransitionComponent.cs.meta rename {ScreenTransitions => Assets/UIFramework/ScreenTransitions}/LegacyAnimationScreenTransition.cs (100%) create mode 100644 Assets/UIFramework/ScreenTransitions/LegacyAnimationScreenTransition.cs.meta rename {ScreenTransitions => Assets/UIFramework/ScreenTransitions}/SimpleFadeTransition.cs (100%) create mode 100644 Assets/UIFramework/ScreenTransitions/SimpleFadeTransition.cs.meta rename UIFrame.cs => Assets/UIFramework/UIFrame.cs (96%) create mode 100644 Assets/UIFramework/UIFrame.cs.meta rename UISettings.cs => Assets/UIFramework/UISettings.cs (100%) create mode 100644 Assets/UIFramework/UISettings.cs.meta create mode 100644 Assets/UIFramework/Window.meta rename {Window => Assets/UIFramework/Window}/AWindowController.cs (100%) create mode 100644 Assets/UIFramework/Window/AWindowController.cs.meta rename {Window => Assets/UIFramework/Window}/WindowHistoryEntry.cs (100%) create mode 100644 Assets/UIFramework/Window/WindowHistoryEntry.cs.meta rename {Window => Assets/UIFramework/Window}/WindowParaLayer.cs (100%) create mode 100644 Assets/UIFramework/Window/WindowParaLayer.cs.meta rename {Window => Assets/UIFramework/Window}/WindowPriority.cs (100%) create mode 100644 Assets/UIFramework/Window/WindowPriority.cs.meta rename {Window => Assets/UIFramework/Window}/WindowProperties.cs (100%) create mode 100644 Assets/UIFramework/Window/WindowProperties.cs.meta rename {Window => Assets/UIFramework/Window}/WindowUILayer.cs (100%) create mode 100644 Assets/UIFramework/Window/WindowUILayer.cs.meta rename package.json => Assets/UIFramework/package.json (94%) create mode 100644 Assets/UIFramework/package.json.meta create mode 100644 Assets/UIFrameworkExamples.meta create mode 100644 Assets/UIFrameworkExamples/Art.meta create mode 100644 Assets/UIFrameworkExamples/Art/3d.png create mode 100644 Assets/UIFrameworkExamples/Art/3d.png.meta create mode 100644 Assets/UIFrameworkExamples/Art/3dExample_FancyAnimatedTransition.anim create mode 100644 Assets/UIFrameworkExamples/Art/3dExample_FancyAnimatedTransition.anim.meta create mode 100644 Assets/UIFrameworkExamples/Art/StarParticle.mat create mode 100644 Assets/UIFrameworkExamples/Art/StarParticle.mat.meta create mode 100644 Assets/UIFrameworkExamples/Art/Trail.mat create mode 100644 Assets/UIFrameworkExamples/Art/Trail.mat.meta create mode 100644 Assets/UIFrameworkExamples/Art/eye.png create mode 100644 Assets/UIFrameworkExamples/Art/eye.png.meta create mode 100644 Assets/UIFrameworkExamples/Art/home.png create mode 100644 Assets/UIFrameworkExamples/Art/home.png.meta create mode 100644 Assets/UIFrameworkExamples/Art/person.png create mode 100644 Assets/UIFrameworkExamples/Art/person.png.meta create mode 100644 Assets/UIFrameworkExamples/Art/smiley.png create mode 100644 Assets/UIFrameworkExamples/Art/smiley.png.meta create mode 100644 Assets/UIFrameworkExamples/Art/star.png create mode 100644 Assets/UIFrameworkExamples/Art/star.png.meta create mode 100644 Assets/UIFrameworkExamples/Art/warning.png create mode 100644 Assets/UIFrameworkExamples/Art/warning.png.meta create mode 100644 Assets/UIFrameworkExamples/DefaultUISettings.asset create mode 100644 Assets/UIFrameworkExamples/DefaultUISettings.asset.meta create mode 100644 Assets/UIFrameworkExamples/Prefabs.meta create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens.meta create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/CameraProjectionWindow.prefab create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/CameraProjectionWindow.prefab.meta create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/ConfirmationPopup.prefab create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/ConfirmationPopup.prefab.meta create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/HomeWindow.prefab create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/HomeWindow.prefab.meta create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/NavigationPanel.prefab create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/NavigationPanel.prefab.meta create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/PlayerWindow.prefab create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/PlayerWindow.prefab.meta create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/PopupExampleWindow.prefab create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/PopupExampleWindow.prefab.meta create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/StartGameWindow.prefab create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/StartGameWindow.prefab.meta create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/ThreeDExample.prefab create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/ThreeDExample.prefab.meta create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/ToastPanel.prefab create mode 100644 Assets/UIFrameworkExamples/Prefabs/Screens/ToastPanel.prefab.meta create mode 100644 Assets/UIFrameworkExamples/Prefabs/UIFrame.prefab create mode 100644 Assets/UIFrameworkExamples/Prefabs/UIFrame.prefab.meta create mode 100644 Assets/UIFrameworkExamples/Scripts.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/Editor.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/Editor/ScreenIdGenerator.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/Editor/ScreenIdGenerator.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/Extras.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/Extras/FakePlayerData.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/Extras/FakePlayerData.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers/CameraProjectionWindowController.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers/CameraProjectionWindowController.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers/ConfirmationPopupController.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers/ConfirmationPopupController.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers/EmptyWindowController.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers/EmptyWindowController.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers/NavigationPanelController.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers/NavigationPanelController.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers/PlayerWindowController.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers/PlayerWindowController.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers/PopupExampleWindowController.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers/PopupExampleWindowController.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers/StartWindowController.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers/StartWindowController.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers/ToastPanelController.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenControllers/ToastPanelController.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenIds.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenIds.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenTransitions.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenTransitions/ScaleScreenTransition.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenTransitions/ScaleScreenTransition.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenTransitions/SlideScreenTransition.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/ScreenTransitions/SlideScreenTransition.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/UIDemoController.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/UIDemoController.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/Widgets.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/Widgets/AutoMove.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/Widgets/AutoMove.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/Widgets/LevelProgressComponent.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/Widgets/LevelProgressComponent.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/Widgets/NavigationPanelButton.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/Widgets/NavigationPanelButton.cs.meta create mode 100644 Assets/UIFrameworkExamples/Scripts/Widgets/UIFollowComponent.cs create mode 100644 Assets/UIFrameworkExamples/Scripts/Widgets/UIFollowComponent.cs.meta create mode 100644 Assets/UIFrameworkExamples/UIPrefabEnvironment.unity create mode 100644 Assets/UIFrameworkExamples/UIPrefabEnvironment.unity.meta create mode 100644 Packages/manifest.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/NavMeshAreas.asset create mode 100644 ProjectSettings/NetworkManager.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/TagManager.asset create mode 100644 ProjectSettings/TimeManager.asset create mode 100644 ProjectSettings/UPRSettings.asset create mode 100644 ProjectSettings/UnityConnectSettings.asset create mode 100644 ProjectSettings/VFXManager.asset diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3528f03 --- /dev/null +++ b/.gitignore @@ -0,0 +1,63 @@ +# This .gitignore file should be placed at the root of your Unity project directory +# +# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore +# +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Mm]emoryCaptures/ + +# Asset meta data should only be ignored when the corresponding asset is also ignored +!/[Aa]ssets/**/*.meta + +# 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/ + +# Rider cache directory +.idea + +# 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 +*.unitypackage + +# Crashlytics generated file +crashlytics-build.properties + diff --git a/Assets/External.meta b/Assets/External.meta new file mode 100644 index 0000000..fe35002 --- /dev/null +++ b/Assets/External.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cb228d7ad5a5c044db0b3afc4fb99551 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant.meta b/Assets/External/Demigiant.meta new file mode 100644 index 0000000..3424617 --- /dev/null +++ b/Assets/External/Demigiant.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: db750336266e41341881bb90ec6682dd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween.meta b/Assets/External/Demigiant/DOTween.meta new file mode 100644 index 0000000..86257da --- /dev/null +++ b/Assets/External/Demigiant/DOTween.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ba150ee564f24b7458637a31d7a0f35d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/DOTween.XML b/Assets/External/Demigiant/DOTween/DOTween.XML new file mode 100644 index 0000000..a176870 --- /dev/null +++ b/Assets/External/Demigiant/DOTween/DOTween.XML @@ -0,0 +1,2696 @@ + + + + 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 + + + + If the Sequence contains other elements, kill the failed tween but preserve the rest + + + Kill the whole Sequence + + + + 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 + + + + + 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 + + + + 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 + + + Behaviour in case a tween nested inside a Sequence fails (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 timeScale. + Default: 1 + + + 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 + + + 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 + + + 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 + + + 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 + + + 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 + + + + 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 + + + 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 and playing tweens. + A tween is considered as playing even if its delay is actually 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 + + + + 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 + + + + 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) + + + + Path control point + + + + + 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 + + + + + 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 + + + Kills the tween + If TRUE completes the tween before killing it + + + 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 + If TRUE includes the eventual tween delay, otherwise skips it + If >= 0 changes the startup delay to this value, otherwise doesn't touch it + + + Rewinds and pauses the tween + 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 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. + 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 + + + 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 + + + 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 + + + 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 + + + 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 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) + + + 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 + + + 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 + + + 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 + + + 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 + + + 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 + + + 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 + + + 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) or CatmullRom (curved CatmullRom path) + 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) or CatmullRom (curved CatmullRom path) + 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 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 + + + 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 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 + + + 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 + + + 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 + + + Sets a delayed startup for the tween. + Has no effect on Sequences or if the tween has already started + + + 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 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 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 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) + + + + 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 wil go backwards + + + 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 + + + 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 + + + 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/External/Demigiant/DOTween/DOTween.XML.meta b/Assets/External/Demigiant/DOTween/DOTween.XML.meta new file mode 100644 index 0000000..c87a520 --- /dev/null +++ b/Assets/External/Demigiant/DOTween/DOTween.XML.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 34192c5e0d14aee43a0e86cc4823268a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/DOTween.dll b/Assets/External/Demigiant/DOTween/DOTween.dll new file mode 100644 index 0000000000000000000000000000000000000000..078c790f5d69ec3b20172fef869dbf8332a166c9 GIT binary patch literal 155648 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 z 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 + + + 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 + + + + 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 + + + + 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/External/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta b/Assets/External/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta new file mode 100644 index 0000000..258ca87 --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2e2c6224d345d9249acfa6e8ef40bb2d +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/Editor/DOTweenEditor.dll b/Assets/External/Demigiant/DOTween/Editor/DOTweenEditor.dll new file mode 100644 index 0000000000000000000000000000000000000000..d1bc8b05452111af8cbe49c72afe703ae4cd6be6 GIT binary patch literal 50688 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 Cr+Bdd literal 0 HcmV?d00001 diff --git a/Assets/External/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta b/Assets/External/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta new file mode 100644 index 0000000..3a5f488 --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 45d5034162d6cf04dbe46da84fc7d074 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/Editor/Imgs.meta b/Assets/External/Demigiant/DOTween/Editor/Imgs.meta new file mode 100644 index 0000000..bb40983 --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Editor/Imgs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8d2d80da4577cd5458cd0ea94e0e04bf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png b/Assets/External/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/External/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta b/Assets/External/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta new file mode 100644 index 0000000..e7fe84f --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 8da095e39e9b4df488dfd436f81116d6 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 128 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/Editor/Imgs/Footer.png b/Assets/External/Demigiant/DOTween/Editor/Imgs/Footer.png new file mode 100644 index 0000000000000000000000000000000000000000..e29d02fe18b777b1d316feb647b339803c5126de GIT binary patch literal 4409 zcmV-95ytL`P)pV>q$gGRCt{2oC$Q5#TCcD7amE(Ks303SwK{(RslVzXgwBDL5mBB zO!&X`s5NnMP!d66Squ>^lr3!+A3tD$YP%)tx0ZmANge>p%_kWr1 zoyo`dUVwn{Xzn?4X1+Uj?%bKVbLY;a!agi_i&ZSdg1<+SH4z7L^2^IbYtkPC@6BgdP2+RrVpf1yb$ z0t)aOqL&%)O5%eElifT`f&&gX;0=_i4~n!7)F9$TQeM(+3IA|u=ggVY4!V584ixx^ zU@-V0w8xloH)LjJ&i1K0IV&q`1!ab!tm{FYi5%}si4DoksWz*GwB7>X=?oP>`s!aLAAk zZFn!bx&`(#G-*X(P^CO~U`-=RjS_2+FIF1Mn8Uzt$C_UzYfi{Vp}#HJSQX zpv1S3zD+dnnF^o38rf=~znkPjgbrmf|)Q!gtr(BtI>gZ{; zMOOa=X4d&44m5Sot& zwaDP@mw20m26>c^mWBUxzSq#k4#;)^s2k((X@O>hrk)zDWS}pJGD}G4=cZ+?iMpny zroPICafxE`ZvlU}^3BGz1O=HyJpcOZuis{hu7c(`l~G`y@g^JBKiAaMw6iPLMwoDh ze0qIjfz_7&rrrp^yPs9$0%Tob(pnvkbn5{B6|&uH@?ItMcKv)-jpK>z3Fw8cxGxz> zXkR3msCT)(M~@z@N&gn#6Vz8ZIXN2}@6r}%4rtPffb!hTATPxQILx5r50{y|=_tiu zeB@Ou@e7F01sz7IZ6A3W;SuP5?IQ5;A3*6}qs%fsm$QG+L|c2!HP?J@?-Mp`*dV`q zB>AhrKckH*=vr2mJeNl92z)vaCsBti^4Y>;sc%D$*U8g~&KklH!oTp}zh?r>fo~3B znf4r%)BeSGl`&98TML;m3(dq^g=|r`PKN-xYanFraR;}+4+c%Xn99q`>xfbfBw0bc z1Z6l9%NN-<$f}}H7oh}4p)6~Qii#H4KE14YWo6}QvdT73od{88pjHp~eeCAT;wC00 zp6-5Y6@Y&~=zhuPrzqeemp@AUA^1O1Z%4U0gn3eQw+<#x8hM&zZK>lO@?LlIjNF%? z#OdTc2VH06e8*a~qCBAa1^K1$*M-;`+PK6%>YX}uYFGN@?b_Pfj;s(dCzMXh;Bk(P zgZGtAy>YSOKIlHN5%7OX$I`KQw?O0YgWk~okf4cxBK@JcHkLXzEiEl=FSiakDlrZ> z#G{XKv%Fi-aHj~H}!P~AA${(SQ+f+9Q0zYH&`Y1zMn4;U_y0u)w{W zvwqz!6Se-K>t(NUC{ZT+Al-`V1gu#1Gd^@(ph@xKb+fM+mp6;@x+MJ;+_yFjuIoWe z?krZjZLGLo+VpODFQh(EcyMB(b3z~-NDd`9r70C{K3YHg?5I1ZLkW1+YA6UM{4S4+1c3*jGNmIUA}rU zV(|AdAs(~nCPUNLhegC)W;MH?NSBI*go|tf6z?v|-UJWb&YvP2$~2z320I>iJ8j;J z8LdO1hr*7dePqxHgq;LFDpR&c%Nlu>!b9#|g9n>gSy{dHDnRM2Tel7(ns4XpwjNpf zP`6$+T<797fy^DuBVD?58DCRV)8IbF!(&sB4WA0PvG5gym;J2B-T?e>q2p#TTerlc zW3aMyj*o@;BpzLydXA>NPG&mm-4hmKnf-o9FGUsai#>y$mSDVgVEvZa=|;*Ni%h*( zsb=kNJ+$LV$}IHYbZZ{dx*1r9OlK*<{-GNKeHZ0&>4T26|4y3_{@wjqIB8D(y-Odg zeH+`_qF{PgrGtZARumgL%zdeIC{*`0dfz7C1n#K|I15_`oXvHiaC$fpd1linP|t6P zbYYpScVmucBDg^NMzaD;@mrCSlatGK?%Wxj^zd1%H*ADk_00sV4#MDWJue_$Z|HO; z{wRty21S~%JHo~T_+Cv#&ytKg5rENznS?!_2uvbfRE;P6+nlJh*Rdsdo!wt18r^6c z@+MCNCiWF{rmWX8`2LEtPNSAJQl_(>VvwA*yY+WPM6EfGm2^Yk2W$3?lx~n1Chsh)(QfTV$2|kPD^Mqb;riiN5I?-U92}_^z%W)=j#x{>mC7m9pF-@Ghs06N-?CAj;*%m(;%_pUB}bbg@a&Ar%)1y}(MhL-Vu)HOnr zmv{^oQBN|?HV*?G@b@e1Nqf9?V;Ohx`Kjx6!bC6LOH17gvBrbqwPk;SQ3U<2A%O{b zNn`W^bU^!q&(VV-(wAFVN^4)Rp3u&(tU#+l*ooW^6>e@g33eNBi!`>nm0ye;FQ~rl z+qa(^gIsUQPQ`#A`-lk}}xDk~}~ z2Jv0V_k-lgLTmPwFjIT$&5mAu>ZK-h$Cw9t52Hl)c@vhe0mRXmXs#B9d25YjOyA!|YAx$wCxN>zS8LY{oH%!2xZQHhOuQYz%6h9%U?-cU?d2A>D-_SNDG+Vk7GR{3Ia|SuFzL zP=$+PgFL`#-KxY5Tbz_L?3L$_(ZLWRw$yU-EYc0i%i$r1(4*sw25S+#GE2gQP$Y0pp( zuFKvqLf#CMY~Y{Eb@kGkG0@mo)YR0x5)1~bwZFkYX)jblU#!f?$mpRJhH+NE?Q)q% zkCxTPflL<{3I~?4jPwOLz_Ctv{J?k*+KX(nRxQ<)M%`x+@8WJT&T|=?8))l|=vZz% z{$7Z=BGB-oi8e$U5DIl=*RAIhYOs#rx_Vw{ZtxT@_u(hY5yUc0a04BwRiW5JrzKgN z_-kD{aQd~_3b{-^qJC+fSVW+zs_H%D?5n`%B4ee!vK)uicomuw_&y5Fu^y6*7Of`q z7W-+4TnHaIqVmMa+f$IS>E;P>Pio>or-QzLk<+1zULk9B zC~K@97knpz-q0Y(g|em*qJ)H5M1^uASf+F=_mrnd{NFM<^_@yoRa8`TJ~Owk0{k_5 zAMwzsgY}&IMwbq&q*Y_Q`!h@%;4z12m^(@28|oy)oQC+GRKa_$RvEcyY7c2|du;xi zWom0LsV?j8#tKt`kF&InJ(bU`&Wubqb!y zQu3YBD2bLM{mN?t9zW(s|097z%-$=NzK|QCbN^z-;7Ttc zefFUJO*``_6EP~#NBW4eIy%*>-fi^vayL)zVYvP`-@d@Aa9u*M)k)AibXY-QKR7K$ z*{Ynd(?6c@dZ_5s9}z!puf#h2Vl1?AzDg&Wa#MZl4TZ*<{Y6^5dTdCbfX>}7L~-PT z=-xmK^4aWN?4AbbIWy5HDwj(jf9)?cZlhKXD&0nYgKKfa)4e{IWvnp__E7qt%Y|7|`YBw+&_9_E5J5t~-<9JDrFT^n84yX={<2HZGIB3fa7N z;k%ze&mj(^uGxe;v^OBW6W6u}W3b*O0$(ax?ZxZ>Z3n0Rf>n7D7grlqt)P5QvlLTf z^{q}3^`T2lQ+E`!DpUt+x-(sL*pd#Be%i~#3u{w8x0O>DJyxguW}=8OX8g_*FK`9k z#z|*Pp8H#qQd2ex+FV07*0iC*%frZ7Y9sy+?8Q2{9e}yQ00000NkvXXu0mjfzsHtQ literal 0 HcmV?d00001 diff --git a/Assets/External/Demigiant/DOTween/Editor/Imgs/Footer.png.meta b/Assets/External/Demigiant/DOTween/Editor/Imgs/Footer.png.meta new file mode 100644 index 0000000..c140fa9 --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Editor/Imgs/Footer.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 7051dba417b3d53409f2918f1ea4938d +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/Editor/Imgs/Footer_dark.png b/Assets/External/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/External/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta b/Assets/External/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta new file mode 100644 index 0000000..b61c62d --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 519694efe2bb2914788b151fbd8c01f4 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/Editor/Imgs/Header.jpg b/Assets/External/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/External/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta b/Assets/External/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta new file mode 100644 index 0000000..6fd30f5 --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 78a59ca99f8987941adb61f9e14a06a7 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/Modules.meta b/Assets/External/Demigiant/DOTween/Modules.meta new file mode 100644 index 0000000..0fb5ab6 --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 670b969bfee00fc43ad3a39db5131f84 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs new file mode 100644 index 0000000..2235a79 --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs @@ -0,0 +1,202 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if false // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; +using UnityEngine; +#if UNITY_5 || UNITY_2017_1_OR_NEWER +using UnityEngine.Audio; // Required for AudioMixer +#endif + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleAudio + { + #region Shortcuts + + #region Audio + + /// Tweens an AudioSource's volume to the given value. + /// Also stores the AudioSource as the tween's target so it can be used for filtered operations + /// The end value to reach (0 to 1)The duration of the tween + public static TweenerCore DOFade(this AudioSource target, float endValue, float duration) + { + if (endValue < 0) endValue = 0; + else if (endValue > 1) endValue = 1; + TweenerCore t = DOTween.To(() => target.volume, x => target.volume = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an AudioSource's pitch to the given value. + /// Also stores the AudioSource as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPitch(this AudioSource target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pitch, x => target.pitch = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + +#if UNITY_5 || UNITY_2017_1_OR_NEWER + #region AudioMixer (Unity 5 or Newer) + + /// Tweens an AudioMixer's exposed float to the given value. + /// Also stores the AudioMixer as the tween's target so it can be used for filtered operations. + /// Note that you need to manually expose a float in an AudioMixerGroup in order to be able to tween it from an AudioMixer. + /// Name given to the exposed float to set + /// The end value to reachThe duration of the tween + public static TweenerCore DOSetFloat(this AudioMixer target, string floatName, float endValue, float duration) + { + TweenerCore t = DOTween.To(()=> { + float currVal; + target.GetFloat(floatName, out currVal); + return currVal; + }, x=> target.SetFloat(floatName, x), endValue, duration); + t.SetTarget(target); + return t; + } + + #region Operation Shortcuts + + /// + /// Completes all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens completed + /// (meaning the tweens that don't have infinite loops and were not already complete) + /// + /// For Sequences only: if TRUE also internal Sequence callbacks will be fired, + /// otherwise they will be ignored + public static int DOComplete(this AudioMixer target, bool withCallbacks = false) + { + return DOTween.Complete(target, withCallbacks); + } + + /// + /// Kills all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens killed. + /// + /// If TRUE completes the tween before killing it + public static int DOKill(this AudioMixer target, bool complete = false) + { + return DOTween.Kill(target, complete); + } + + /// + /// Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens flipped. + /// + public static int DOFlip(this AudioMixer target) + { + return DOTween.Flip(target); + } + + /// + /// Sends to the given position all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens involved. + /// + /// Time position to reach + /// (if higher than the whole tween duration the tween will simply reach its end) + /// If TRUE will play the tween after reaching the given position, otherwise it will pause it + public static int DOGoto(this AudioMixer target, float to, bool andPlay = false) + { + return DOTween.Goto(target, to, andPlay); + } + + /// + /// Pauses all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens paused. + /// + public static int DOPause(this AudioMixer target) + { + return DOTween.Pause(target); + } + + /// + /// Plays all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlay(this AudioMixer target) + { + return DOTween.Play(target); + } + + /// + /// Plays backwards all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlayBackwards(this AudioMixer target) + { + return DOTween.PlayBackwards(target); + } + + /// + /// Plays forward all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlayForward(this AudioMixer target) + { + return DOTween.PlayForward(target); + } + + /// + /// Restarts all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens restarted. + /// + public static int DORestart(this AudioMixer target) + { + return DOTween.Restart(target); + } + + /// + /// Rewinds all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens rewinded. + /// + public static int DORewind(this AudioMixer target) + { + return DOTween.Rewind(target); + } + + /// + /// Smoothly rewinds all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens rewinded. + /// + public static int DOSmoothRewind(this AudioMixer target) + { + return DOTween.SmoothRewind(target); + } + + /// + /// Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens involved. + /// + public static int DOTogglePause(this AudioMixer target) + { + return DOTween.TogglePause(target); + } + + #endregion + + #endregion +#endif + + #endregion + } +} +#endif diff --git a/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta new file mode 100644 index 0000000..5568217 --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b766d08851589514b97afb23c6f30a70 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs b/Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs new file mode 100644 index 0000000..2017797 --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs @@ -0,0 +1,216 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if false // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Core.Enums; +using DG.Tweening.Plugins; +using DG.Tweening.Plugins.Core.PathCore; +using DG.Tweening.Plugins.Options; +using UnityEngine; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModulePhysics + { + #region Shortcuts + + #region Rigidbody + + /// 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) or CatmullRom (curved CatmullRom path) + /// 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) or CatmullRom (curved CatmullRom path) + /// 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/External/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta b/Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta new file mode 100644 index 0000000..42a0566 --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dae9aa560b4242648a3affa2bfabc365 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs b/Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs new file mode 100644 index 0000000..aa8189f --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs @@ -0,0 +1,107 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if false && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Plugins.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; + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta b/Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta new file mode 100644 index 0000000..323d0dd --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 230fe34542e175245ba74b4659dae700 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs new file mode 100644 index 0000000..9450ca5 --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs @@ -0,0 +1,92 @@ +// 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)); + } + 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/External/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta new file mode 100644 index 0000000..e6ade0c --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 188918ab119d93148aa0de59ccf5286b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUI.cs b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUI.cs new file mode 100644 index 0000000..072c02c --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUI.cs @@ -0,0 +1,604 @@ +// 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 UnityEngine; +using UnityEngine.UI; +using DG.Tweening.Core; +using DG.Tweening.Core.Enums; +using DG.Tweening.Plugins.Options; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleUI + { + #region Shortcuts + + #region CanvasGroup + + /// 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)); + } + 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 + public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, float strength = 100, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true) + { + return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, true, fadeOut) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping); + } + /// 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 + public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, Vector2 strength, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true) + { + return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, fadeOut) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping); + } + + #region Special + + /// 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 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) + { + 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 + + #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/External/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta new file mode 100644 index 0000000..b7f95cb --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a060394c03331a64392db53a10e7f2d1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs new file mode 100644 index 0000000..176ecae --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs @@ -0,0 +1,299 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +using System; +using UnityEngine; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; + +#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)); + } + 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)); + } + 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 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 + + #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/External/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta new file mode 100644 index 0000000..6256c54 --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 63c02322328255542995bd02b47b0457 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs new file mode 100644 index 0000000..6336002 --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs @@ -0,0 +1,155 @@ +// 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 false // PHYSICS_MARKER + if (options.isRigidbody) ((Rigidbody)t.target).rotation = newRot; + else trans.rotation = newRot; +#else + trans.rotation = newRot; +#endif + } + + // Returns FALSE if the DOTween's Physics2D Module is disabled, or if there's no Rigidbody2D attached + public static bool HasRigidbody2D(Component target) + { +#if false // PHYSICS2D_MARKER + return target.GetComponent() != null; +#else + return false; +#endif + } + + #region Called via Reflection + + + // Called via Reflection by DOTweenPathInspector + // Returns FALSE if the DOTween's Physics Module is disabled, or if there's no rigidbody attached +#if UNITY_2018_1_OR_NEWER + [UnityEngine.Scripting.Preserve] +#endif + public static bool HasRigidbody(Component target) + { +#if false // PHYSICS_MARKER + return target.GetComponent() != 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; +#if false // PHYSICS_MARKER + Rigidbody rBody = tweenRigidbody ? target.GetComponent() : null; + if (tweenRigidbody && rBody != null) { + t = isLocal + ? rBody.DOLocalPath(path, duration, pathMode) + : rBody.DOPath(path, duration, pathMode); + } else { + t = isLocal + ? target.transform.DOLocalPath(path, duration, pathMode) + : target.transform.DOPath(path, duration, pathMode); + } +#else + t = isLocal + ? target.transform.DOLocalPath(path, duration, pathMode) + : target.transform.DOPath(path, duration, pathMode); +#endif + return t; + } + + #endregion + } + } +} diff --git a/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta new file mode 100644 index 0000000..9164e1e --- /dev/null +++ b/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7bcaf917d9cf5b84090421a5a2abe42e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Demigiant/DOTween/readme.txt b/Assets/External/Demigiant/DOTween/readme.txt new file mode 100644 index 0000000..37ff7ef --- /dev/null +++ b/Assets/External/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/External/Demigiant/DOTween/readme.txt.meta b/Assets/External/Demigiant/DOTween/readme.txt.meta new file mode 100644 index 0000000..9c3a968 --- /dev/null +++ b/Assets/External/Demigiant/DOTween/readme.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fccfc62abf2eb0a4db614853430894fd +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/Signals.cs b/Assets/External/Signals.cs new file mode 100644 index 0000000..8600715 --- /dev/null +++ b/Assets/External/Signals.cs @@ -0,0 +1,322 @@ +// ======================================================================================== +// Signals - A typesafe, lightweight messaging lib for Unity. +// ======================================================================================== +// 2017-2019, Yanko Oliveira / http://yankooliveira.com / http://twitter.com/yankooliveira +// Special thanks to Max Knoblich for code review and Aswhin Sudhir for the anonymous +// function asserts suggestion. +// ======================================================================================== +// Inspired by StrangeIOC, minus the clutter. +// Based on http://wiki.unity3d.com/index.php/CSharpMessenger_Extended +// Converted to use strongly typed parameters and prevent use of strings as ids. +// +// Supports up to 3 parameters. More than that, and you should probably use a VO. +// +// Usage: +// 1) Define your class, eg: +// ScoreSignal : ASignal {} +// 2) Add listeners on portions that should react, eg on Awake(): +// Signals.Get().AddListener(OnScore); +// 3) Dispatch, eg: +// Signals.Get().Dispatch(userScore); +// 4) Don't forget to remove the listeners upon destruction! Eg on OnDestroy(): +// Signals.Get().RemoveListener(OnScore); +// 5) If you don't want to use global Signals, you can have your very own SignalHub +// instance in your class +// +// ======================================================================================== + +using System; +using System.Collections.Generic; + +namespace deVoid.Utils +{ + /// + /// Base interface for Signals + /// + public interface ISignal + { + string Hash { get; } + } + + /// + /// Signals main facade class for global, game-wide signals + /// + public static class Signals + { + private static readonly SignalHub hub = new SignalHub(); + + public static SType Get() where SType : ISignal, new() { + return hub.Get(); + } + + public static void AddListenerToHash(string signalHash, Action handler) { + hub.AddListenerToHash(signalHash, handler); + } + + public static void RemoveListenerFromHash(string signalHash, Action handler) { + hub.RemoveListenerFromHash(signalHash, handler); + } + } + + /// + /// A hub for Signals you can implement in your classes + /// + public class SignalHub + { + private Dictionary signals = new Dictionary(); + + /// + /// Getter for a signal of a given type + /// + /// Type of signal + /// The proper signal binding + public SType Get() where SType : ISignal, new() { + Type signalType = typeof(SType); + ISignal signal; + + if (signals.TryGetValue(signalType, out signal)) { + return (SType) signal; + } + + return (SType) Bind(signalType); + } + + /// + /// Manually provide a SignalHash and bind it to a given listener + /// (you most likely want to use an AddListener, unless you know exactly + /// what you are doing) + /// + /// Unique hash for signal + /// Callback for signal listener + public void AddListenerToHash(string signalHash, Action handler) { + ISignal signal = GetSignalByHash(signalHash); + if (signal != null && signal is ASignal) { + (signal as ASignal).AddListener(handler); + } + } + + /// + /// Manually provide a SignalHash and unbind it from a given listener + /// (you most likely want to use a RemoveListener, unless you know exactly + /// what you are doing) + /// + /// Unique hash for signal + /// Callback for signal listener + public void RemoveListenerFromHash(string signalHash, Action handler) { + ISignal signal = GetSignalByHash(signalHash); + if (signal != null && signal is ASignal) { + (signal as ASignal).RemoveListener(handler); + } + } + + private ISignal Bind(Type signalType) { + ISignal signal; + if (signals.TryGetValue(signalType, out signal)) { + UnityEngine.Debug.LogError(string.Format("Signal already registered for type {0}", + signalType.ToString())); + return signal; + } + + signal = (ISignal) Activator.CreateInstance(signalType); + signals.Add(signalType, signal); + return signal; + } + + private ISignal Bind() where T : ISignal, new() { + return Bind(typeof(T)); + } + + private ISignal GetSignalByHash(string signalHash) { + foreach (ISignal signal in signals.Values) { + if (signal.Hash == signalHash) { + return signal; + } + } + + return null; + } + } + + /// + /// Abstract class for Signals, provides hash by type functionality + /// + public abstract class ABaseSignal : ISignal + { + protected string _hash; + + /// + /// Unique id for this signal + /// + public string Hash { + get { + if (string.IsNullOrEmpty(_hash)) { + _hash = this.GetType().ToString(); + } + + return _hash; + } + } + } + + /// + /// Strongly typed messages with no parameters + /// + public abstract class ASignal : ABaseSignal + { + private Action callback; + + /// + /// Adds a listener to this Signal + /// + /// Method to be called when signal is fired + public void AddListener(Action handler) { +#if UNITY_EDITOR + UnityEngine.Debug.Assert( + handler.Method.GetCustomAttributes(typeof(System.Runtime.CompilerServices.CompilerGeneratedAttribute), + inherit: false).Length == 0, + "Adding anonymous delegates as Signal callbacks is not supported (you wouldn't be able to unregister them later)."); +#endif + callback += handler; + } + + /// + /// Removes a listener from this Signal + /// + /// Method to be unregistered from signal + public void RemoveListener(Action handler) { + callback -= handler; + } + + /// + /// Dispatch this signal + /// + public void Dispatch() { + if (callback != null) { + callback(); + } + } + } + + /// + /// Strongly typed messages with 1 parameter + /// + /// Parameter type + public abstract class ASignal : ABaseSignal + { + private Action callback; + + /// + /// Adds a listener to this Signal + /// + /// Method to be called when signal is fired + public void AddListener(Action handler) { +#if UNITY_EDITOR + UnityEngine.Debug.Assert( + handler.Method.GetCustomAttributes(typeof(System.Runtime.CompilerServices.CompilerGeneratedAttribute), + inherit: false).Length == 0, + "Adding anonymous delegates as Signal callbacks is not supported (you wouldn't be able to unregister them later)."); +#endif + callback += handler; + } + + /// + /// Removes a listener from this Signal + /// + /// Method to be unregistered from signal + public void RemoveListener(Action handler) { + callback -= handler; + } + + /// + /// Dispatch this signal with 1 parameter + /// + public void Dispatch(T arg1) { + if (callback != null) { + callback(arg1); + } + } + } + + /// + /// Strongly typed messages with 2 parameters + /// + /// First parameter type + /// Second parameter type + public abstract class ASignal : ABaseSignal + { + private Action callback; + + /// + /// Adds a listener to this Signal + /// + /// Method to be called when signal is fired + public void AddListener(Action handler) { +#if UNITY_EDITOR + UnityEngine.Debug.Assert( + handler.Method.GetCustomAttributes(typeof(System.Runtime.CompilerServices.CompilerGeneratedAttribute), + inherit: false).Length == 0, + "Adding anonymous delegates as Signal callbacks is not supported (you wouldn't be able to unregister them later)."); +#endif + callback += handler; + } + + /// + /// Removes a listener from this Signal + /// + /// Method to be unregistered from signal + public void RemoveListener(Action handler) { + callback -= handler; + } + + /// + /// Dispatch this signal + /// + public void Dispatch(T arg1, U arg2) { + if (callback != null) { + callback(arg1, arg2); + } + } + } + + /// + /// Strongly typed messages with 3 parameter + /// + /// First parameter type + /// Second parameter type + /// Third parameter type + public abstract class ASignal : ABaseSignal + { + private Action callback; + + /// + /// Adds a listener to this Signal + /// + /// Method to be called when signal is fired + public void AddListener(Action handler) { +#if UNITY_EDITOR + UnityEngine.Debug.Assert( + handler.Method.GetCustomAttributes(typeof(System.Runtime.CompilerServices.CompilerGeneratedAttribute), + inherit: false).Length == 0, + "Adding anonymous delegates as Signal callbacks is not supported (you wouldn't be able to unregister them later)."); +#endif + callback += handler; + } + + /// + /// Removes a listener from this Signal + /// + /// Method to be unregistered from signal + public void RemoveListener(Action handler) { + callback -= handler; + } + + /// + /// Dispatch this signal + /// + public void Dispatch(T arg1, U arg2, V arg3) { + if (callback != null) { + callback(arg1, arg2, arg3); + } + } + } +} \ No newline at end of file diff --git a/Assets/External/Signals.cs.meta b/Assets/External/Signals.cs.meta new file mode 100644 index 0000000..fc002eb --- /dev/null +++ b/Assets/External/Signals.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e3d56b039b7b4503b1ea26b3420fc4cf +timeCreated: 1552848472 \ No newline at end of file diff --git a/Assets/External/TextMesh Pro.meta b/Assets/External/TextMesh Pro.meta new file mode 100644 index 0000000..f9da8b5 --- /dev/null +++ b/Assets/External/TextMesh Pro.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f54d1bd14bd3ca042bd867b519fee8cc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/TextMesh Pro/Documentation.meta b/Assets/External/TextMesh Pro/Documentation.meta new file mode 100644 index 0000000..afa527a --- /dev/null +++ b/Assets/External/TextMesh Pro/Documentation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8e7e8f5a82a3a134e91c54efd2274ea9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf b/Assets/External/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c2ea2d278785aa03d590f89fabdb0f30ad0976e9 GIT binary patch literal 694398 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 E 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

Phf_!`cm)mjg@=!xv_%(czrwmNh&_ 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 fr)3ZF<#40ff80>* + m_ClosingDefinition: '*' + m_OpeningTagArray: 3c00000073000000690000007a000000650000003d00000032000000650000006d0000003e0000003c000000620000003e0000003c000000230000003400000030000000660000006600000038000000300000003e0000002a000000 + m_ClosingTagArray: 2a0000003c0000002f00000073000000690000007a000000650000003e0000003c0000002f000000620000003e0000003c0000002f000000630000006f0000006c0000006f000000720000003e000000 + - m_Name: Quote + m_HashCode: 92254330 + m_OpeningDefinition: + m_ClosingDefinition: + m_OpeningTagArray: 3c000000690000003e0000003c00000073000000690000007a000000650000003d0000003700000035000000250000003e0000003c0000006d000000610000007200000067000000690000006e0000003d0000003100000030000000250000003e000000 + m_ClosingTagArray: 3c0000002f000000690000003e0000003c0000002f00000073000000690000007a000000650000003e0000003c0000002f00000077000000690000006400000074000000680000003e0000003c0000002f0000006d000000610000007200000067000000690000006e0000003e000000 + - m_Name: Link + m_HashCode: 2687968 + m_OpeningDefinition: <#40a0ff> + m_ClosingDefinition: + m_OpeningTagArray: 3c000000750000003e0000003c000000230000003400000030000000610000003000000066000000660000003e0000003c0000006c000000690000006e0000006b0000003d0000002200000049000000440000005f0000003000000031000000220000003e000000 + m_ClosingTagArray: 3c0000002f000000750000003e0000003c0000002f000000630000006f0000006c0000006f000000720000003e0000003c0000002f0000006c000000690000006e0000006b0000003e000000 + - m_Name: Title + m_HashCode: 98732960 + m_OpeningDefinition: + m_ClosingDefinition: + m_OpeningTagArray: 3c00000073000000690000007a000000650000003d000000310000003200000035000000250000003e0000003c000000620000003e0000003c000000610000006c00000069000000670000006e0000003d00000063000000650000006e0000007400000065000000720000003e000000 + m_ClosingTagArray: 3c0000002f00000073000000690000007a000000650000003e0000003c0000002f000000620000003e0000003c0000002f000000610000006c00000069000000670000006e0000003e000000 + - m_Name: H2 + m_HashCode: 2426 + m_OpeningDefinition: <#4080FF> + m_ClosingDefinition: + m_OpeningTagArray: 3c00000073000000690000007a000000650000003d000000310000002e00000035000000650000006d0000003e0000003c000000620000003e0000003c000000230000003400000030000000380000003000000046000000460000003e000000 + m_ClosingTagArray: 3c0000002f00000073000000690000007a000000650000003e0000003c0000002f000000620000003e0000003c0000002f000000630000006f0000006c0000006f000000720000003e000000 + - m_Name: H3 + m_HashCode: 2427 + m_OpeningDefinition: <#FF8040> + m_ClosingDefinition: + m_OpeningTagArray: 3c00000073000000690000007a000000650000003d000000310000002e0000003100000037000000650000006d0000003e0000003c000000620000003e0000003c000000230000004600000046000000380000003000000034000000300000003e000000 + m_ClosingTagArray: 3c0000002f00000073000000690000007a000000650000003e0000003c0000002f000000620000003e0000003c0000002f000000630000006f0000006c0000006f000000720000003e000000 + - m_Name: C1 + m_HashCode: 2194 + m_OpeningDefinition: + m_ClosingDefinition: + m_OpeningTagArray: 3c000000630000006f0000006c0000006f000000720000003d000000230000006600000066000000660000006600000034000000300000003e000000 + m_ClosingTagArray: 3c0000002f000000630000006f0000006c0000006f000000720000003e000000 + - m_Name: C2 + m_HashCode: 2193 + m_OpeningDefinition: + m_ClosingDefinition: + m_OpeningTagArray: 3c000000630000006f0000006c0000006f000000720000003d000000230000006600000066000000340000003000000046000000460000003e0000003c00000073000000690000007a000000650000003d000000310000003200000035000000250000003e000000 + m_ClosingTagArray: 3c0000002f000000630000006f0000006c0000006f000000720000003e0000003c0000002f00000073000000690000007a000000650000003e000000 + - m_Name: C3 + m_HashCode: 2192 + m_OpeningDefinition: + m_ClosingDefinition: + m_OpeningTagArray: 3c000000630000006f0000006c0000006f000000720000003d000000230000003800000030000000410000003000000046000000460000003e0000003c000000620000003e000000 + m_ClosingTagArray: 3c0000002f000000630000006f0000006c0000006f000000720000003e0000003c0000002f000000620000003e000000 diff --git a/Assets/External/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta b/Assets/External/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta new file mode 100644 index 0000000..95fd96e --- /dev/null +++ b/Assets/External/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f952c082cb03451daed3ee968ac6c63e +timeCreated: 1432805430 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/TextMesh Pro/Resources/TMP Settings.asset b/Assets/External/TextMesh Pro/Resources/TMP Settings.asset new file mode 100644 index 0000000..f34d7c9 --- /dev/null +++ b/Assets/External/TextMesh Pro/Resources/TMP Settings.asset @@ -0,0 +1,103 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2705215ac5b84b70bacc50632be6e391, type: 3} + m_Name: TMP Settings + m_EditorClassIdentifier: + m_enableWordWrapping: 1 + m_enableKerning: 1 + m_enableExtraPadding: 0 + m_enableTintAllSprites: 0 + m_enableParseEscapeCharacters: 1 + m_missingGlyphCharacter: 0 + m_warningsDisabled: 0 + m_defaultFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_defaultFontAssetPath: Fonts & Materials/ + m_defaultFontSize: 36 + m_defaultAutoSizeMinRatio: 0.5 + m_defaultAutoSizeMaxRatio: 2 + m_defaultTextMeshProTextContainerSize: {x: 20, y: 5} + m_defaultTextMeshProUITextContainerSize: {x: 200, y: 50} + m_autoSizeTextContainer: 0 + m_fallbackFontAssets: [] + m_matchMaterialPreset: 1 + m_defaultSpriteAsset: {fileID: 11400000, guid: c41005c129ba4d66911b75229fd70b45, + type: 2} + m_defaultSpriteAssetPath: Sprite Assets/ + m_defaultColorGradientPresetsPath: Color Gradient Presets/ + m_enableEmojiSupport: 1 + m_defaultStyleSheet: {fileID: 11400000, guid: f952c082cb03451daed3ee968ac6c63e, + type: 2} + m_leadingCharacters: {fileID: 4900000, guid: d82c1b31c7e74239bff1220585707d2b, type: 3} + m_followingCharacters: {fileID: 4900000, guid: fade42e8bc714b018fac513c043d323b, + type: 3} + m_FontCreatorRecentSettings: + - sourceFontFileName: + sourceFontFileGUID: edcaa01543603ae4cb6b2edf25967e21 + pointSizeSamplingMode: 1 + pointSize: 109 + padding: 12 + packingMode: 0 + atlasWidth: 128 + atlasHeight: 128 + characterSetSelectionMode: 5 + characterSequence: 64 + fontStyle: 0 + fontStyleModifier: 2 + renderMode: 281 + includeFontFeatures: 0 + referenceFontAssetGUID: 903613a9fe4b65946aa20dfcce07abec + - sourceFontFileName: + sourceFontFileGUID: edcaa01543603ae4cb6b2edf25967e21 + pointSizeSamplingMode: 0 + pointSize: 108 + padding: 12 + packingMode: 0 + atlasWidth: 128 + atlasHeight: 128 + characterSetSelectionMode: 5 + characterSequence: 64 + fontStyle: 0 + fontStyleModifier: 2 + renderMode: 2090 + includeFontFeatures: 0 + referenceFontAssetGUID: 70cf10c1d306ada42aa6cd7268db990d + - sourceFontFileName: + sourceFontFileGUID: edcaa01543603ae4cb6b2edf25967e21 + pointSizeSamplingMode: 1 + pointSize: 109 + padding: 12 + packingMode: 0 + atlasWidth: 128 + atlasHeight: 128 + characterSetSelectionMode: 5 + characterSequence: 64 + fontStyle: 0 + fontStyleModifier: 2 + renderMode: 329 + includeFontFeatures: 0 + referenceFontAssetGUID: 396d465a5821ead47b589b228da7e980 + - sourceFontFileName: + sourceFontFileGUID: edcaa01543603ae4cb6b2edf25967e21 + pointSizeSamplingMode: 1 + pointSize: 338 + padding: 36 + packingMode: 0 + atlasWidth: 4096 + atlasHeight: 4096 + characterSetSelectionMode: 1 + characterSequence: 32 - 126, 160 - 255, 8192 - 8303, 8364, 8482, 9633 + fontStyle: 0 + fontStyleModifier: 2 + renderMode: 329 + includeFontFeatures: 0 + referenceFontAssetGUID: 3a4171c252e1112499af739474d9f48e + m_CreationSettingsSelectionIndex: 0 + m_CreationSettingsIndex: 0 diff --git a/Assets/External/TextMesh Pro/Resources/TMP Settings.asset.meta b/Assets/External/TextMesh Pro/Resources/TMP Settings.asset.meta new file mode 100644 index 0000000..32db384 --- /dev/null +++ b/Assets/External/TextMesh Pro/Resources/TMP Settings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3f5b5dff67a942289a9defa416b206f3 +timeCreated: 1436653997 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/TextMesh Pro/Sprites.meta b/Assets/External/TextMesh Pro/Sprites.meta new file mode 100644 index 0000000..8b699e5 --- /dev/null +++ b/Assets/External/TextMesh Pro/Sprites.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d0603b6d5186471b96c778c3949c7ce2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/TextMesh Pro/Sprites/EmojiOne Attribution.txt b/Assets/External/TextMesh Pro/Sprites/EmojiOne Attribution.txt new file mode 100644 index 0000000..384180a --- /dev/null +++ b/Assets/External/TextMesh Pro/Sprites/EmojiOne Attribution.txt @@ -0,0 +1,3 @@ +This sample of beautiful emojis are provided by EmojiOne https://www.emojione.com/ + +Please visit their website to view the complete set of their emojis and review their licensing terms. \ No newline at end of file diff --git a/Assets/External/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta b/Assets/External/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta new file mode 100644 index 0000000..0d30e65 --- /dev/null +++ b/Assets/External/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 381dcb09d5029d14897e55f98031fca5 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/TextMesh Pro/Sprites/EmojiOne.json b/Assets/External/TextMesh Pro/Sprites/EmojiOne.json new file mode 100644 index 0000000..6c4e50b --- /dev/null +++ b/Assets/External/TextMesh Pro/Sprites/EmojiOne.json @@ -0,0 +1,156 @@ +{"frames": [ + +{ + "filename": "1f60a.png", + "frame": {"x":0,"y":0,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f60b.png", + "frame": {"x":128,"y":0,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f60d.png", + "frame": {"x":256,"y":0,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f60e.png", + "frame": {"x":384,"y":0,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f600.png", + "frame": {"x":0,"y":128,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f601.png", + "frame": {"x":128,"y":128,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f602.png", + "frame": {"x":256,"y":128,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f603.png", + "frame": {"x":384,"y":128,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f604.png", + "frame": {"x":0,"y":256,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f605.png", + "frame": {"x":128,"y":256,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f606.png", + "frame": {"x":256,"y":256,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f609.png", + "frame": {"x":384,"y":256,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f618.png", + "frame": {"x":0,"y":384,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "1f923.png", + "frame": {"x":128,"y":384,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "263a.png", + "frame": {"x":256,"y":384,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}, +{ + "filename": "2639.png", + "frame": {"x":384,"y":384,"w":128,"h":128}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, + "sourceSize": {"w":128,"h":128}, + "pivot": {"x":0.5,"y":0.5} +}], +"meta": { + "app": "http://www.codeandweb.com/texturepacker", + "version": "1.0", + "image": "EmojiOne.png", + "format": "RGBA8888", + "size": {"w":512,"h":512}, + "scale": "1", + "smartupdate": "$TexturePacker:SmartUpdate:196a26a2e149d875b91ffc8fa3581e76:fc928c7e275404b7e0649307410475cb:424723c3774975ddb2053fd5c4b85f6e$" +} +} diff --git a/Assets/External/TextMesh Pro/Sprites/EmojiOne.json.meta b/Assets/External/TextMesh Pro/Sprites/EmojiOne.json.meta new file mode 100644 index 0000000..762cf15 --- /dev/null +++ b/Assets/External/TextMesh Pro/Sprites/EmojiOne.json.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8f05276190cf498a8153f6cbe761d4e6 +timeCreated: 1480316860 +licenseType: Pro +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/External/TextMesh Pro/Sprites/EmojiOne.png b/Assets/External/TextMesh Pro/Sprites/EmojiOne.png new file mode 100644 index 0000000000000000000000000000000000000000..4adb015b03a79ad884e9621af39524e78a5a8d08 GIT binary patch literal 73304 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 a68{gyEohdhSMK}(0000 deVoid UI -> UIFrame Prefab` +then drag the Prefab onto your scene + +*Step 2:* +Get a reference to your UI Frame and register some screens +`uiFrame.RegisterScreen("YourScreenId", yourScreenPrefab);` + +*Step 3:* +Show your screens +`uiFrame.OpenWindow("YourWindowId");` +`uiFrame.ShowPanel("YourPanelId");` + +Or, if you have some data payload + +`uiFrame.OpenWindow("YourWindowId", yourWindowProperties);` +`uiFrame.ShowPanel("YourPanelId", yourPanelProperties);` + +*Step 4:* +Now that you're familiar with the API, right click on project view +`Create -> deVoid UI -> UI Settings` + +Rig your UI Frame prefab as the UI Template, drag all your screens in the Screens To Register list and simply do + +`uiFrame = yourUiSettings.CreateUIInstance();` + +Which will give you a new UI Frame instance and automatically do *Step 2* for you. + +Make sure to check out [the examples repo](https://github.com/yankooliveira/uiframework_examples) and read [the manual](https://github.com/yankooliveira/uiframework/blob/master/MANUAL.md)! + +## What? +The *deVoid UI Framework* (or **devUI** for short) is a simple architecture for UI handling and navigation in Unity. It enforces one simple rule: *you can **never** directly access the internals of your UI code from external code*, but anything else is fair game. You want to read data from Singletons from inside your UI? Sure. You want to sandwich mediators, views and controllers and do MVC by the book? Go for it. You want to skip the data passing functionalities and use your own MVVM framework? Power to you. Do whatever floats your boat and works best for your needs. + +## Why? +Having worked with mobile F2P games for years, I've done my fair share of UI. And I *hate* doing UI. +So I figured the more people learn how to do it, the smaller the chances that I ever have to do it again 🌈 + +*(Also, sharing is caring and I'm secretly a hippie)* + +### Features +* Simple to extend and customize +* Support for navigation history and queuing +* Transition animations +* Blocking user input while screens transition (especially handy for touch input) +* Priority and layering +* Focus on type safety and flexibility + +### Known Limitations +* No built in support for controller navigation + +### Disclaimer: +This is **A** solution to work with UI - I don't believe in perfect, one-size-fits-all solutions (and nor should you in anyone who tells you otherwise). But this architecture was battle tested in more than one game over the last few years (from game jams to medium and bigger sized games), and it ticked all the boxes for me so far. + +While I tried to keep this it as flexible and as easy to deal with as possible, there is still some structure to be followed. I recommend checking out [the examples repo](https://github.com/yankooliveira/uiframework_examples) and taking a look at [the manual](https://github.com/yankooliveira/uiframework/blob/master/MANUAL.md) before using. + +Although the architecture itself is sound and was tested in live environments, this implementation was made from scratch on my free time. I have been using it for a few months now and did some cleanup and bugfixes for the public release, so it *Should Work(TM)*. + +### Acknowledgements +A lot of the structure is inspired by a design used by [Renan Rennó](https://www.linkedin.com/in/renanrenno/) when we worked together. Special thanks to everyone who I made use this architecture through the years and to [Sylvain Cornillon](https://www.bossastudios.com/the-team/), who allowed me to open source it and helped me find more proper names for the classes, or I'd be still calling it *"UIManagerOrWhatevs"* cause I'm a rebel. + +You can read my original (even more) verbose post about this architecture [in my blog](http://yankooliveira.com/index.php/2017/12/27/uisystem/) and poke me on twitter [@yankooliveira](https://twitter.com/yankooliveira). diff --git a/Assets/UIFramework/README.md.meta b/Assets/UIFramework/README.md.meta new file mode 100644 index 0000000..97ad0b9 --- /dev/null +++ b/Assets/UIFramework/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2a2bb4a6b9c909c4d8854576f9495dee +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFramework/ScreenTransitions.meta b/Assets/UIFramework/ScreenTransitions.meta new file mode 100644 index 0000000..10ae513 --- /dev/null +++ b/Assets/UIFramework/ScreenTransitions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2dbf7136f3b050d43b74d2712c1a2d2d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ScreenTransitions/ATransitionComponent.cs b/Assets/UIFramework/ScreenTransitions/ATransitionComponent.cs similarity index 100% rename from ScreenTransitions/ATransitionComponent.cs rename to Assets/UIFramework/ScreenTransitions/ATransitionComponent.cs diff --git a/Assets/UIFramework/ScreenTransitions/ATransitionComponent.cs.meta b/Assets/UIFramework/ScreenTransitions/ATransitionComponent.cs.meta new file mode 100644 index 0000000..ed32734 --- /dev/null +++ b/Assets/UIFramework/ScreenTransitions/ATransitionComponent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c20ef95ae53cf444990bc58f023d0ff6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ScreenTransitions/LegacyAnimationScreenTransition.cs b/Assets/UIFramework/ScreenTransitions/LegacyAnimationScreenTransition.cs similarity index 100% rename from ScreenTransitions/LegacyAnimationScreenTransition.cs rename to Assets/UIFramework/ScreenTransitions/LegacyAnimationScreenTransition.cs diff --git a/Assets/UIFramework/ScreenTransitions/LegacyAnimationScreenTransition.cs.meta b/Assets/UIFramework/ScreenTransitions/LegacyAnimationScreenTransition.cs.meta new file mode 100644 index 0000000..6cffb96 --- /dev/null +++ b/Assets/UIFramework/ScreenTransitions/LegacyAnimationScreenTransition.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 09bbc675c80bb4a4c81b3a98d595de4f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ScreenTransitions/SimpleFadeTransition.cs b/Assets/UIFramework/ScreenTransitions/SimpleFadeTransition.cs similarity index 100% rename from ScreenTransitions/SimpleFadeTransition.cs rename to Assets/UIFramework/ScreenTransitions/SimpleFadeTransition.cs diff --git a/Assets/UIFramework/ScreenTransitions/SimpleFadeTransition.cs.meta b/Assets/UIFramework/ScreenTransitions/SimpleFadeTransition.cs.meta new file mode 100644 index 0000000..9c75ed4 --- /dev/null +++ b/Assets/UIFramework/ScreenTransitions/SimpleFadeTransition.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 6f9739af8e894b7b8db28faf4bb2114d +timeCreated: 1552782789 \ No newline at end of file diff --git a/UIFrame.cs b/Assets/UIFramework/UIFrame.cs similarity index 96% rename from UIFrame.cs rename to Assets/UIFramework/UIFrame.cs index 2bc0806..c4fdf08 100644 --- a/UIFrame.cs +++ b/Assets/UIFramework/UIFrame.cs @@ -234,18 +234,6 @@ public bool IsPanelOpen(string panelId) { return panelLayer.IsPanelVisible(panelId); } - /// - /// Checks if a given Window is open. - /// - /// Window identifier. - public bool IsWindowOpen(string windowId) { - if (string.IsNullOrEmpty(windowId)) - { - return false; - } - return windowLayer.CurrentWindow?.ScreenId == windowId; - } - /// /// Hide all screens /// diff --git a/Assets/UIFramework/UIFrame.cs.meta b/Assets/UIFramework/UIFrame.cs.meta new file mode 100644 index 0000000..d4013f1 --- /dev/null +++ b/Assets/UIFramework/UIFrame.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cdc8dba95123fb24c805dbd32dc633ad +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UISettings.cs b/Assets/UIFramework/UISettings.cs similarity index 100% rename from UISettings.cs rename to Assets/UIFramework/UISettings.cs diff --git a/Assets/UIFramework/UISettings.cs.meta b/Assets/UIFramework/UISettings.cs.meta new file mode 100644 index 0000000..efc8087 --- /dev/null +++ b/Assets/UIFramework/UISettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 414062f9d9180b24eb66136c31c0fe4c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFramework/Window.meta b/Assets/UIFramework/Window.meta new file mode 100644 index 0000000..b3e800a --- /dev/null +++ b/Assets/UIFramework/Window.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 060eefe3929d6d74c99bfaa02f6d51ab +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Window/AWindowController.cs b/Assets/UIFramework/Window/AWindowController.cs similarity index 100% rename from Window/AWindowController.cs rename to Assets/UIFramework/Window/AWindowController.cs diff --git a/Assets/UIFramework/Window/AWindowController.cs.meta b/Assets/UIFramework/Window/AWindowController.cs.meta new file mode 100644 index 0000000..3d125c5 --- /dev/null +++ b/Assets/UIFramework/Window/AWindowController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aed99ba45b466234fa100e177aba2b8a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Window/WindowHistoryEntry.cs b/Assets/UIFramework/Window/WindowHistoryEntry.cs similarity index 100% rename from Window/WindowHistoryEntry.cs rename to Assets/UIFramework/Window/WindowHistoryEntry.cs diff --git a/Assets/UIFramework/Window/WindowHistoryEntry.cs.meta b/Assets/UIFramework/Window/WindowHistoryEntry.cs.meta new file mode 100644 index 0000000..1c55190 --- /dev/null +++ b/Assets/UIFramework/Window/WindowHistoryEntry.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3e46a9a8cfa1c5b47a7924f92d20d1e4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Window/WindowParaLayer.cs b/Assets/UIFramework/Window/WindowParaLayer.cs similarity index 100% rename from Window/WindowParaLayer.cs rename to Assets/UIFramework/Window/WindowParaLayer.cs diff --git a/Assets/UIFramework/Window/WindowParaLayer.cs.meta b/Assets/UIFramework/Window/WindowParaLayer.cs.meta new file mode 100644 index 0000000..8f17904 --- /dev/null +++ b/Assets/UIFramework/Window/WindowParaLayer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a90c3299e98eab34bb731538858f57e7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Window/WindowPriority.cs b/Assets/UIFramework/Window/WindowPriority.cs similarity index 100% rename from Window/WindowPriority.cs rename to Assets/UIFramework/Window/WindowPriority.cs diff --git a/Assets/UIFramework/Window/WindowPriority.cs.meta b/Assets/UIFramework/Window/WindowPriority.cs.meta new file mode 100644 index 0000000..34e3871 --- /dev/null +++ b/Assets/UIFramework/Window/WindowPriority.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fba6c1846acd2f24e87bf68bca5e7af3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Window/WindowProperties.cs b/Assets/UIFramework/Window/WindowProperties.cs similarity index 100% rename from Window/WindowProperties.cs rename to Assets/UIFramework/Window/WindowProperties.cs diff --git a/Assets/UIFramework/Window/WindowProperties.cs.meta b/Assets/UIFramework/Window/WindowProperties.cs.meta new file mode 100644 index 0000000..655e8df --- /dev/null +++ b/Assets/UIFramework/Window/WindowProperties.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f422d78763364ff4bb71d84ef242b8e6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Window/WindowUILayer.cs b/Assets/UIFramework/Window/WindowUILayer.cs similarity index 100% rename from Window/WindowUILayer.cs rename to Assets/UIFramework/Window/WindowUILayer.cs diff --git a/Assets/UIFramework/Window/WindowUILayer.cs.meta b/Assets/UIFramework/Window/WindowUILayer.cs.meta new file mode 100644 index 0000000..76d5191 --- /dev/null +++ b/Assets/UIFramework/Window/WindowUILayer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e58584fae0250804580bdeaee2c0a479 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package.json b/Assets/UIFramework/package.json similarity index 94% rename from package.json rename to Assets/UIFramework/package.json index 180d145..a5fedcc 100644 --- a/package.json +++ b/Assets/UIFramework/package.json @@ -1,6 +1,6 @@ { "name": "com.woo.devoid-ui", - "version": "1.0.1", + "version": "1.0.2", "displayName": "deVoid UI Framework", "description": "deVoid UI Framework package", "unity": "2018.1", diff --git a/Assets/UIFramework/package.json.meta b/Assets/UIFramework/package.json.meta new file mode 100644 index 0000000..c818745 --- /dev/null +++ b/Assets/UIFramework/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 903bd270b0fb4429ab3965e5947b0f51 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples.meta b/Assets/UIFrameworkExamples.meta new file mode 100644 index 0000000..a045f17 --- /dev/null +++ b/Assets/UIFrameworkExamples.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0ac30472955ca3845862445fb795afc1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Art.meta b/Assets/UIFrameworkExamples/Art.meta new file mode 100644 index 0000000..54cb1c0 --- /dev/null +++ b/Assets/UIFrameworkExamples/Art.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cfa2cf4eb76afa1409080e7ac225d39d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Art/3d.png b/Assets/UIFrameworkExamples/Art/3d.png new file mode 100644 index 0000000000000000000000000000000000000000..ffcd24d8ebef26881c5a4bb49df5687b7dfa3894 GIT binary patch literal 10646 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.oqH3-hO}0^;$MwOL#Haeh z^^TD%oxb$b0_#kVH!2AMGVOiLBmXKf8I4KNXUxLvZPdKd2_wb!lM z`)*PM{hzfd*#RAi=_3YV6nb9s6WHRqfE7Jh_UJbPLA6>8P^F;L+nWJrkORJRLEfa8 zPWaj}ti#Vp@TC}8w*>Qt)}bdtad`eq)lm01+zF3Yo~KCTpJTjkKz{_ZYK_T}ewm~` ztNjV!tb$xy0$vOSXe^>GEqn8}eE1c!A_Xg$79R}x$kiJXrs( z6#~OPPYZ>J;((ecMVLKnbWR&?epYKOw_Q(b(Mkr}aQ&Ku#N*+&Oza>yZU2Gv#^A zqa>T)IY9g6pS5{TyL4e9{B+0%`}nSEJ`8>8ySC{L*-lu7<@bnym3wNx7L5+|2%>q^m;IfML`dm|+wD9TjoRhd z8D|hU!ix~40V9OrG2Q-)H(6!;h>{klgJbRL2dM|^iJ6V7X76AV);|GW8y_evb z)Cn_KM1EudPPsWbGe2!TuN>->pU?_9Gg4c{FPd_O_Xk_K9zHJ+;&gqEW$PzcfKPK+-2JPaRKRmnV0 z%y$SwTi!eya0|pgk&b?&g(7R(Cs%h*QuC3xW=C&LYo{QU24=|RL#!Vl2U{4(XhAQB z$iePbz@~I^QU%_B=r~-F(mbvGP??QtY1tlu6f7k3#sULHe{ppC?jXKGk29iCrw?l6 zlCPI1<00<#cZsw=m!iXJs_KJDIvpvB?h9z8uq5(GVRsr6hMsc;hCM4&9;L~NuiD}) zrBJ~69>shmg-ZH&=X{ysAzjmxKo*ZGj{25nOQvX!xadNqfK5n9W|jxA=zFtq8G@4X zE+^{dVf)?)zzMm6G%~Ej;PKX%ZmpW`$o@>0q|!p?RqU0lJMFCm!@wuTS>(r&Z%?$~ z|k40sI6K=l`99)Dy z@{BLuo6H2y1KY`3Tjq7cK~ETnu`BUUW!L1*VjFeau_sMQFNf^rL~b;j45yw z$gV(iMfWDNV@nDUn-F>u29R3sJx94Tim_+oRYJ0h*e`-vIq9h1-4eC#AdW?wHj>LQ zDN=)8*DXs$j`w2Jsss&xZ&4~2{ zY%M`J`uK742r2r{cIWh7Y)9dEGUj(+*qdClWAt{oAV!=KUvTTA;Y_Dc5?r zFs?j0KLe7*=`uJ(!>thgfp@P?4zSfLwq9vRXH>u$sJ*e?plK@X3WxHZU^%VH0#eAQ z!&%Smz$VhW7BKa+5pnw$@Va!S_}NhibK#NVi1&2{PE{Wo-IHL=o*y;Ru8Af zmEU(Dq$SWm55d2Sw2mQf|#dtT; z-8EhZ2j={8MUlD8hDoeyw-WMtd1t#RSOu(Ey)I1qLTRihAjSbTF5@=^=4W)s7gHz>n z+fn(Z-lBxTgSEexC9JLZ(w~^CKZJk50Lh`r4h{~RGKkaoksw8@v$pFTLH97Zy!j~| zVf2h|f_GBmm=ER}pi=Y)jG66?XYb@+kEp{-;4(5*qlOctO_WWT;vn0sv#v}IB6DGo z5!xTzw#2&B-=KM%1;Kt)XaAf`z6pHs=imuq`CMAr?pDP9lZ=m)d5r@Oo)Dp&YuJ46 z9lf%T8Hw3~w<_;+KWthj$hn?Yw*Na)oR6az5caZm5jz`s$)WDi;)_P!deR6XXir3Z zd4l@jF9A^9yO~r)fF7fgsg<*HtCrToQhIz%-n}YjV;9Zk6Kzm@0mu7mS~)GA+P+-O z5#ujBr?p<_IF+-gJ`%ZPG$>;EKh{7S6H|^Ey=(|71k2L~{&p<41U7X>5svjEE#vhA ziX6%V2oK+2^xVIN&PlP>>;S7WHp=R3{5R79I}?pN4%w5B=!uxOy@!}Q2kV2w zWwuRAK=AQQg9_dL^2RdwdfD^(O7-D2ivZLe_RoM=OX+4XQ9cQWkVV752K9= zb@tcl_yMWNEoRi4@gFcV+P^ds49G){Xu(qks-m`If}*+iQ$c)Ww|viMMc;vj>a=1H z7usuJzqjvf4f4r$@;P4kv7A|F{tY=5Lk}U@z9%Q~uk^1u>CfXed?v6!&Vn^hD+*Eg z3W58OWMnabw)b#_7Uq@mzid`9PbXAA z5?wGZ*8dvKXFpSxrZ8=aDhkPunj)n9@F(#3vx_(G`6eG0;T_5A6db;+w^XaMNH4mW zP;ojEznVwXAeJ$Y4&3~2=aOy$`#oI@aRPVW|V!YSJ;wJMa7c`2$X)7rg)Y zq%cI%DXC4{EfPLLYAfPjt;2FrTMLIR&oy0XQ6u`@wy*`aA~+4fdC!9Akn~R1KZBT) zf(5vCki3HAqwZmHLh;71cQud}z`&~bGqFjeG_!9$_;R}TCT1&Nat}Yl>+m}9V_`MM zW>po0D$JFXq;X686OMNXrRm>bQjEX$8JpCatil-d7w zDT=#7Z_zRtO#hp3UILCi!~3B^ zuI0j;Z1<9Jhq%8vHy`HEuLOPwS_LKlYR%0m3OuK_e3UAW3gK=r342jkV?P&(i-%UJ zIGg-_^q-JVRQP+1wr`c#QNK|UbTub$9g#zU(TDYs#IdRhWpIwth^sVL7etjcyYfqYF2#T6 z;c8&-gz-AjVYz5b2M5eb>GhZfDuJnfH6AE4YGY}Lvr;|5_~8#IN^ zW#fw1bashH15+}T^?#jM$E9kOJ;yrul#oRq-U$x+)N|$ytGmaTbta@G(6Cpt?0{qT z2$Dr86Z5SVZYlTIwY!r=NHg@bo+|S#>-;g(rgKekeq1{$e0Y*ap0f=>UphQRwvl{L z-2<*qR$Lso;<)!As8;XcJJY0dvJ%2WPs?SUwBz&lKxrU1&9_UuP1GdChK*}GUIxv0 z7m-QF^3IEsFT9)6wBdHv(f;Q)^ZvMShC=xnwmi!%>WWHAfSG`bhH6dWH|^{YW$h@G zC;JW~A3DqXbutXWO;hL4g1xt^7Kl_MhpGHhrg%Y%7c}jhUocP~HjXm!(HhorO&iC& z;OythI*vAjxa^z<=^t%00(Y6zWRvvZ)=;;vYX)Mk+MZ4~ffMMW4>!iZL)ciU?LSV0 z?AL6r3N)P3!4b;jXX%P4Pe3Do8jt=wFL^D!)MjoY#>9KD56z||B>V$y5EwQ!iCfRh z5PdUa5con+3$>i=p4{uq|A}-=Mn586BIxBUf+QTkWsrJC!-B3de|i#JdDA*b59XCh zFJJK;w~DglI(*-A&K6f5n-ZpG?#rC*Tz;m)G-=E!TdC2YD=2l;x0m) z!u*NXXb*KTbJum29&qM$=1rC%&3COji{3Q;+(3E>OH1pjezN3`!fIPGtD2Qi=G$Yx zCkb9+?Hmw(KxATm1ag+bt@25ntw2+=D&Q%kn@6$t>AiS$lrNgP*ExD>_{H zP?u0ilEcvNyM{vJf&xUpD zV0&%j1Y8-yRCN-L@wL!#<)77&c#+W)D+0U41oru_-^}H!$zVP)GaLBsW-v&>8X; zWBT%)N7|Mefi&pN&dvGr@NS0z`>h7x=!Zg@eYioYQ62br-Ce! zp+3N;#XL~nb(7%*_yFHL^IM_+y|E1Pj%4Yq*@^3pQ@(3m298kOP?vkqrNBTERlo-# zJmps}aekQXo#=TN{c>2P(r>nZ(rx_%^%p9EJbh?;#ohT50$}rs)@= zBJ!!jQcO;cMe}|vPXMKu1^=uq$mEVDLM=Y|P7Ipsb z>3e}r+F$Yrt9=d#L?MPbuau8|5+)?tlkihC{;7<7X~`8903}dcxF2@a0wbbSb)JvaG!wygNKj=cMTpi_z*n71_r0F0Chr4*jg*u1AjjTu&huN|waN#e_qo4rj`nCD-jDR#HNz9ms{FB_u%O$aQ(1 z#o*3hZ7}60gcrbLe%-DH7C29}U2P3NG)&8ESDa_8CkMl2@c@Xh>)tYX-ZP^B*CA3;+#m#22Y})?frkwsv@#F^bWx9ldkSghD9{fm z2(P3U8rV=WKrSFbp%{=;MuBFfvgrf4=z!I4Tbp%2hZnG758avopjp>xfhd64XC`u# z+$7*RsT~{)KqP^R(bq9bfUy8TX0OpB0nG3M0%}I~sz6N>fEXdds|B#10Rp=42u=V! z5U?6xX7&R%13W)a=!C!7y93tNdQcTISYck~mW z9yOb0V=l6FU6OYR;PkjNp(0SU!Y9sN*73);Ys);hXfn&9K#h|ON?;Oisf8`tr3O2Z zu@_?P3II-9-Mc0^u+gB9@YPY@$0ON$m0VT;YOnU`9RR!mv+x=Gs*~-<1^{p_jH^bT z_PmRV2Z2e~g|X0ucV{K`L4l>`rvi}z?pr9`dn?Y0Fa?gt;Tn1_EB;A2dJ%*!Br@59 zfbXZ_4+3cq!W(Ps>@JQr7!JDp05+*L(;OVdCdQaK0h=-{;+m;T6`drO<@q3-Oc$h) zB&sT?7h~|;P?i2v`aP;dl(}+ClH>p&6m}QcrXu(mR;w#L`K&>)xm29ygK|FJ*jq2b z^hAo>jIsCiG}3WmdD~;<5W=}c8O449#10jfaF2@sUthPv_ZK`k$+o}0gDRet_tDh6 zu0U&zzOWtr?u$+WQ$pZ~q5CR4w`P!6HP$rNo>47*PRAlbJclEWgZ4r9Cp##)RHL4) zh4^0&m5q>Kl(8xg^At%UDL+vlT(L)-g(O;0h`sqEs@nHLgK?5^<#9JX=3Sm|86v7Q z%*lguZ=GwgBtG*z=N^dI$lB=M5Z<8OU^+F!&9aeuS9qJ^6-AR0|#{m6&95PwJ%k5s%A0uL@af`fq=N+-_-3i!Zde7 zW3EQ7Ao8SNxL?%2uzjKB;y3tKR$R7JhG%$Y_}d`y+Z+AhDrG}q{q=7+lV8gX%d&L- z>eK2we3LAVDsw1xH;^q1F}aV%H0jptex+EboBQ2zy{+##o-K8q9}kl=etD!fOtgpX z`|xa#4_9mIJ$-AeblJB&2}NObVWT>|v(NUjSnH|pt~0%~ake>1QqDqRmdK7c*Eng5 zMKqfQ?aZCazNUONE>|trEm!&5E>?9=l2zQU)M|1IBarV`XE$e8aY!7&$lBJQ)n6>Z zEuqkoetA*FSLR$qo7W2V?Q|=D#<%cfBdOPA>x zFxi;cG_>}#4%79tnu|G$B{d~A`-g{y^M|L>L^GrXr-imNwlk(PmYb|h{Y-fpOB;XK zsnu?n7MmP4wz)-^N|+QG8=6|wDOYAyvQD*Dww4f=G;1eomuF8obl03T4mN&kqORGT z!JMyZbZrc_cCevzXzH!%K1^;;4sHpKzn8|skD4VYr#Gb!@vMJO_VV@1rSy@^L)qZo z^RK)74#uNIqcg(mjikRhdmOX$GbU6VC>@$T!_VNc(HddD`BG%~GHCl22iiB(y)NEa ztOkr_8jXTP+Za7M9Sjjd=YS7t_XRh_zLFG zu+7YG%b#RaIbG9K`aYeS#Md#c85G;kBEveij+<8fE&{w1ye+Qkqe5R%itUESMXAX zgWxNPYF>3wE}1euC#gB{7LgX&K0bSsp+Cl1#%eAabP{}ARbp-~9m{tIXHjceYk2E{ zl&Sm!79Re2BR|h0N+`bZk?_3yDyIq8e)0KOo`|cIB98Tx)R#2@*Z(K|PX`b`QVa>7 zQ8edb&^}e=(hB&rpVTJm&(bSg#IxD_f&JUZHcfoZ#f+EP6zM+CU4^7ywhM-TO8WRt zp^Ql@xzSfyFChev{<}>zl|d zS{d@_m@2Y)$`ta@8IA?NP1-2;U!7?SpX&X;D$dt zSC7B^y8hteQfZz)Wtd~WHM~)=xu8?(N1I*A;K;C~tU;l{xxtNr*x~qMgZ1>a8}g7g zuz#7FNSXzpV_y@>;d-Q*uBD8zGA?CIp-4>Sh0#V z!RSNpK+o@_kbau3oS~n7Yi48C@@hy1IkmSGaHlfQNSG-iW#X@XW-#bDw;MK*>~K07 zm-QtpIE3%tg4KL}W8k*!$g&fm`%w##*Xp>^W9+tMo8*Z3=?|~d+WAdVqaQ};)h{hw z_q_I`9+D?s^|xlWrdKtaJ2xK&v^NCWU+vOni;paxxBH(^JWl<|mXKa-KMQcb>b<&H zrdSMl&wfAhyLHx={jjp_Rh#9x+=2Y8;$qYvS+j?QnWKeJCxmbA8FE483Ns>n^dadY zkx&sMF)i_TB!1-I>=!Z;5^J*W?|1J?6i45VvSm{~0QmR#6n6o@TL1v|tN`F;DgaQrf3oaV z1^_NwHL$#a-`swdZzjFn#pAMBvQ{+t`TrJep%1!!h5oMi)#(MqF4*R0guV zi@_)qcSMz?#RcVhDSRPOS5-Zdo^=sx4Gam*^t3ej>LN5cv=F$x6ev?Y-4=E@l$GX? zy?vG$QU*qk>efvwy=3xukqOWdM3F+fS3OWYUeIX+1X0~Mh*gglC@<&;*nz0-RrHnr z2aEof57f;ry8lMgr@NZb37&KOE~5V*^2cF z$_fYLr`n%<2zfa|#u)F?4OIkJ;A0ky6nYO8l*_um*N1E@Jj-FTgRR5((eR+Y(0*tq zss`*eJM@=4<@^C5iZ-ekR%G>do1#nD!j^N%hTsT1q?CR=j;I)A6r~gM0Z*j%fewcq zD)ciAL9L8>FP@9(jp2iKSa7y4q2jo5#!j3e_=^!k}Dl3#Ei;oEGZNpi?UYy*v z6YS#v#J_%&)|;1Hv;W%Bkop;qcndq|IuCxRspKaMSz|u{mEBc5gdp)K`N}NRe-&Nl z=MUmk29F11#j^g&fS8X$e30%j!Lbf&jOrJ-Vc(_hedld~AZo&R*AM6-qm|I{XHq#k zHIyS2sV0VN+_Cv-!$B)aW*CQYv@&!JT}Q%?(JywVsJa8)<=}4_i@>w^!?+l6sAML< zMcBz6usQFBa6qams9gF!o)C{(;7h4TC;=}~I3Cc3qW#?HkG3rQ9(2{eyRpv-yfHnmih0i4{p=ZGBGH~ z`2-9$Obsl@l05X~a*B(Y^F+S~b1t59-(a-YyT%xIvLb36>OC`Jh#lY$lg5uRNw@Q#>^Ggiour8V@2Ee%?)X0{ z>dJa%5n9;SunLH+HRHi#XMFo{5GbbfTfNY;MB(;X-Jo-U#ZLF0v+4Y*PJ4Dhh2TsF z&BPW_C>c3|r}Y9i>H)G8YH+vc0z4JM+`3(UNjQN#T6oJ%4LSJ*q6zLc_9liV*yv_V z0>!JxV8!=5&=(Cs?z8wzdgzZ}%N-)i-xr3!z= zl)djoQKs`4fGAQ#zzK?ntjAu!LnHPzt*OK%xuj|EK#V#tF*bf+365>7ANQv^<`D_$ zPNJ0~KGD5qA&@Wco-7Diqb`LVtBJfH!dIQ0ALz>~nomF>5E!f|fL*E}MCD=$(?}7K zH4+|myD3KV39{k)E%9ahCRp==0|{D45Zj*$JU?R6G}`?Zn%l=Y&5N`}>s5n-)$udk zSA*t~TY3KI&O#yte=bLCq2WjnpTva~jw$^$YtE83pv$fo&kL{Er;fsTXm}|z1z%brWrLt?>vV1_DwlX7^()z`{FB{>)@;OyCo58M8#HWL`-yK z75$_CGbKsVc#Ot|M~f(*x?R`DtRmGOG3E#gk#RSIbZ$W$Kf+Y_Yb&mLGDEcU?+%{R zIizyMI<_~?lva3FzGmn1xe+RuX?}0Cb}{Lq>FZokLg1I{f#k0J4X76#^*XEX{uL<$ z?Jm9nqP786Q@RfMci1bQ5Xv?BF-RkfT#Ujqj%W!zTc!MzPcS1qSw0fS3h-b$He3-} z36QD^u)TqVPE1^hw|fQV<`53|3lM6VgbZO@Gt>+X=IR?1RQ`RPYd4Ii0CYn&pv+oL zrkLh2jmAD|R`e}1e6pCX0xuaVx%P3u$QmL)8b3PGm0)xpAE9e10^qRm`wgQAA8R#w z%@^KFG_AN{YYY$8biH|l)tC1kwww2wJ&fTc`0Tx?BEF9}A|D+-eZ%<@*FBaQX^wp^ zvhtR;q>Tvig7m7t?%|h2JYw{~*g~E$AGcxbD2@V`+8w+r8QelNrSx$B+u%bq#3i&y z4WmC_g8P1oSu{&g?#p^9dQHZ`-EGb4ev@)CYE=bMe~Cj)c1Egg8(mw6__x2sV@TuA&~P_IEA9LHKeC*GKi`Q7B?zS}5@u|}jI z-GtXsWuOH=QlsqMmOk`7ro5lpl3WlK{ zpYQD?qH3cj$i)ZXcND9Wl*2+(m+nAC+eIxvs$9Lc3ccY;3Q`Il?X{Ml=!CxSuy)63 zPl?^TcnLCb?=pyw++c8TeV`Cro=&m=U9~nCYW&pk1!8eZ+ z>xEA+U7^?(5DLGXF)R3E*WrZMNf%pGQInNR9^X0IyJA%E9k=1&;owd2#x%B67-m(w znwYDBg-hi<$JSctc-1mw&lB=o$9;Zql;w@!kP4LXQ>BmQe7)JVnXZgsNJ_rjci(ug z6hK%P?;T%O6Y`;Tq{G2Tq_2QGoj@8p-hSbiL6^C*jf54e2jd*$ic;-*<6%O;*hmcL zrj*;KZf9LSI4SM|=?g;FPqVyziZb@f@itf4wD8vt5~Qx2UkHapDYD_O%VwEgT@j0z zx^dA^oz*VhqD@{;q^>kM$30Wdy}*jh#nF7KKmEN^aQZ09RsNgOMWo11{a^k@DyAjW zg(R57EMCKT4#oPMA%tv22{EtBACvKHvVb0^C)zLYCkxCdR%GlpPkGo@t+V1vT}1DI zvF~TH%csRyF;X==*Tw=_cgBa{dX9dV)11^lSQiO#fK2%7<=L)mPF|c<`N>Vws3}FN zs6NY}sR2n>@&n!#Ont*`a%=5NvD=<$Tl3Z-u_-+4IGE}uf(6pbn$zIGYn?l+7b!Jv zQfl9uzyD2v4eKog8_n9Z5ngjU?VCgJQ0qnhG(aNKS&UuL&*+XR=XXo=7ic0Rysh!f za-(L#w7AH56c_!B8s^gi3z{hc^9T9YRmC@2h!4nug(F-G=OzZWuc@Z_8hb;lTme{} z5z8P_5gft;!eeE~CQoW7l~Md$P!7-J042r@IH?ihDQ!p)|7(OlBTu>^xLO2*tB8_V zagOTr!1gf%M@nxUh<8~*h8R>$V+FDBxcU=6d9W!-$JKjce+{tA^s0;~NXQtRK$)Zh ze*3*J)*p1rO-yYF75vKwB4qa)kp#chS-35^K$Rs<`X^|)rbPVDg#pX29=_lf%fUND zp41sTV5C%-1D~wg?od?Pz$A9m^vEFxox<)%d_a0B$cWAkTPU249rQ?&)PU1()dG*R z9F;Bu7dFA^K%lGGfiSYp6ZODL{>^tofwZvRE*IkF-Yv#n764o*4-R1gdD?Ug{kOUMqq*8_LG<#XVEW$H!?2ir+VmOS(RHX zXW-}Go8Sv9pgKL4FhkJ$O1Mk<>5pe*N&U7m6FkJtZ@>X;!3p)f`;08lVOWy0YU^~} z2L+YtjwG7mCxOe@qc27Z!+*qfA`QM&&lDDGCJ2f-QuflNDEZLQtiG9_y~_DIe&sIW zXf^t|&!&*rW+ChGrGDoi3ChOIgG=B*DTF*J&_!o_=HjX$@z2*!rJ=F#eTRVUzQfKG zxD+!;3+K?c8Se608LxBw9UOkgTWngR1O6H_AV_>9I_32*jgz=5h*)BIpHQuD1(d;@ zC-zAK^uA#hIsii1V1Z3&nJ-bz4Z#HkB5nytl47-_oYb%LGL$w1i6vgj4b3Tn-^BYL zH8gS%aIHryBl*rWCT8btR8fC}HwNHWWumkbTAb8)^WY5`;XXF%@S~W4TNEdxIdSvQ zKIYprK*0H$lUQ}dt?n~>`!WHW5{ptSHR~%pmZBuksevYalL&ZTeN41PSX#fw#QI9Ec+FO>-J#yEg#Qu_DEia}EBeNYt!-GN=UJ^_AqXo=d z*mJ((I%Q-5J!)F_hgyP1;#Y4RiIQY{QhT^v*d--hU-N&rm8@HdO0X<|-zkA_u$J6Q z;Xx|kH`+T{M9Ca{Vu>mX{{jo)ZOG`R(&5QnPp$Ui&)5L*H;Sa{4DRxKjr(f&xz_c( zDCm6|yzP_DvLz?TXck-%e-a{_@NU!&bULD3G55tQPKX5mK7rT1;9KmsNb`>f$l?RF zn{c4w!qxIJwxb=^{LC|A3GS_1yD(rb_GR(`nq^WLv27{*t`D<96eY0JsblX4#UESA zk7fobQ+S-FpMP&sxnNek7@udwDV%H{rf&i<;Yfi%Ij@c%0%Ha=4y26qhrWKD{*kB< zvZAlFK{wI+>29RNb}yd3alyR^0YrN^U$YH4NpOd1Ao)i2^H34Rl)hVZ*Zs zvSCfqiqOExu{FxjpBRe#dL_ue(O((6qdq_OJrRB816(R=%&bNM%ts#oG5(BBGX3h?^K}dL zVR=GuImrRV+0DPNEANVmhS<7HE+v`le%hN{u6kn7)j4TQIo51s%2zl`&5hRH1em!( z?OrRcFxPhvN!42oIN>fcv@=|1lQ&>fuLts~aj4yQY9VdX`$;;7T8#rv{=ID@d&5a2 z_oWD#o%1{=1anSxwTXq_u%m7>@rX)QrUWgNXDt87`CCg)qu1gqlyFz;^I6qjZo;M# zkfNf2j)boZ**4S(8gq6MTcpxsF)x5 z%c{wMXFBBlcz5zcX{YEyQyhKoJ{Grd^pA;DPZJN#cR>tsqd?~A_jtN8%HYPq61x^f zk7+Gf$Za%dnTaiU!~SfJB`tKlwxzGO?HbDzI`kZ~zIh^g6th5UB8KFez=_ ze3$9OWAIN82d_&z%yH{+$>=nvx+VkTH(040Zk{ZJqooR=^b_0ED&5Dis!_TW#i9v+ zpK2G`A;MhJDAHt&&F~4md5*X{F_i6u)a8>+2mJ0Q{CUpVDlKe7%nYopdh&qJ);p{r z@Vc7ZD)Uzu@IE%w+X`}EDj8aa@w)KdJOwl6ffP;AP%+^FbQ+AbVR6+9(j-m7(-Iw+ zZu=qSA?(MpiT#@^xqeCHf-8ac=1YYds)^ZMIQR_hD@M$HW&X)(Xo^=Yt|Y^J>=X|? zX0w=Y!#2)`I7!k~uwLD#Mj8B&q(V7`jiZrgVK4v2QMO+dIkwr0!vb5ZtKBLSew(V7#ec~$;&$ac5HHBr3C5KJ?- z=%Ckg7MM3|7Fcpe$C#$Fjah&Co}({K#Yy}MHK-91hu9{Sy1|=QPI#32|JLVs2jj{JOl# zX~lpU_Q3gYsJUXD?|UjS-g6kVY8WdMB-z(sRxs=-UT%PT-MD)YZo~7yjVvzs_sniV z8k#phW_s^l==bP}T*Bl1%%_dYC#uHJyO8K(78AB=pD|FfaV|6mVH4>w9~)bjO=@!h z4-z9NVR%SB{=C>nT(i4>`~PGRajLrUNfYtI6F-~A1jaiGm)lFnUf>U}tNs>vfpsm6 zl)Phrit!Dyv!Sw+erM0g`&C$AU5e7?TttK*VC#s2M~3woSi(&2&f2-%@Z$()?jMy; zSqd&c^%KU?O}OsTH(*d|9e-jf2>(= zc5Fa9eV_#%5qC14roI^@3vuT=u20(R6RSOhyy{|Co8l0~eFKchS$u89RL|T_H}JIR zdTk3^B#`D!v-h@w4!%WBz4?O?ryTVBIpzHb8EL>sH1)%Rpnu6AiEcv8^YoEVzKvWp zvB!>T)q{O}C{^o^bFCCkRY!KBxN9Gb7%i&Y5OqU4l!nueV121-rL*#R-1AJc)CWex zt5A-j+XVRu%jB5*qkM|%0;GM)#Mr{ah|iXSO~t`Se9pV642bUr2US+S0XfEKE{ZNc zseLH}#OY9G(;n>w>IHrj)ytN=B==6v70=fwt+^P&`BtBHAJvfkaruh2ZeD3aZC(C_X50m#C=r|{MiVy^KJ=P8Y88dWU|Fmx zzGHNH$Ud!|gNvwiy+l#gNp9+NW4c=?)-h|c`kYvP;&etKvIwzm=E~x0kE;hwCHAz3 zzVnuYJ^9cp%9Ebo#jN5I&^ux&lsO%lSAfa<`+o?W;A(2cIo!Lhn{*BajNwB4wQ@oa z*gdTSu_l_EIP-2~hqpLsM55UGG7z&7iYeoOIeJC%Fk&O@q%1g-kRZ{g_O5dAiXHZ8 zhZ6!t;umQG>;;3|=saaA$m5kXrEBAR=rD7(Bza{{3K=u3odo_6x`0@#7X5x}HLu%P z^Jt;?P7vKYFiTsgT3dL}XI^|Qh*2>$gOB%avhV&J>OGBd@vIF?$}oltk;JyA)Sj5C z8r)3n7X!-!6B?)CimQchY;b8l^Q65>-HY92|Cdm)z#B=GNrYOXzJGB)1b42wDB ztHyX2Cy0^l2D9g)xG-_8Z`sq*=sTg;;5lL7N1x=tXzt(ejAQNDjM9^jCP~qJPl@h+ zcU*PAll4tV7BwWk@24+oU^Mt12_Gx;qZWlKcZn6|l+oo^nPW;Rr#d`&1qP5KJtnA3 zsU$bcgd=RX>ycya!@gFk_e~|43z;OT8y!aFTp;D&>d>)naK9%<88GzOML$+r8H1it=6@Y;jg?}$C22qIw^<4Qa8)kolgNzu z3d_xc5XBJ1QXXFw|7|%$)q%@snQRhDh^E?Ml(g&*^3VbtH^u(Ms?Lh0CJqV`3|k(N zdJIpLBCBV1XmV>Su!$rk6?sokWxnQjsr;6lUF8$7=#1I7MIQ`*la4glFXfuHr}jIV zhjn6>p-Sc-p1YZ_LOV)-yO%?qi}SlkehVM#Do_lOeA;FaAsXfV0~cd=d^39JqoDaE z-*`vuG@r^Dl?9r4kT(NSI1tZs8(W9o*Qo*xrJ)kw^Bj~r68wxIR2oz&|M$4)HFiUb z5R$)%r?d%MMJakW9`u9y-kyUtOoho9e;_TcA$4d~vt(Ljdnux*RN*w)3O@Bs1GXO( zpFP7hmf}`(0~R9v3`4S4lgZyXjfq(m8B1Cj<8}%%%f$>S(4jZZF2qlX854OdzJ|ys z1;5756*sNpa~kn3kCu@YIpO8T79S(`R59vSVsPGT z+mF7uAhXY-3JC0Um_VnRx!%TvXQ9ioPm#_mHS48G7o1h-975T{o3i4p2*cRy% znGzOxFv42#W1AWx-9%1(1GvHh-l7fO@4p*|x1tzTI$$}ohPD%*;xqZHd%Hq$r@^ar zngv58;lpf1qDq0RrqL~>TnI@>z8YNc=(z~Ghz8Gsf-y=w11Aw8hRWvyLl(SRluW!w zl=EMe<~6N_4yB2Kq`Gro-^v-J(OxzCrzcBAN>U%Hi&FV{WY4j$B3fkQ&=}T7x#+^c zr|l4TcPYw2KE&pKk-rCsf}GI>sCdyOQ+KM`iy+U2!)!=_QoQwku=|inRHO0@{_LJl zT?GQY=KC+{FJWIec?J$q-nM`g*O$nLi58fwWO&g-@T8K?w;W?ul6BVKz&V-VqId5GokOdt2Vpw5v6y#fRS z18-e$Gd&ufWY*)dLn%J>hfe|ps3Vry#B20XruT|JySDR0g||w2 zf7nZb5rR-i3w)on#kjma`BvmYZ`K9+h~$|&GCWr3HDYcZIrd_MQ!NQ5BCFCo|_b;w(cQ8;efeJHQf1ah1A znlLggV=2C0yCuo~63TD#XHY#2@vMaSm;NEw1kO~mao;3Typ9ixpr$$sj|UV$;@k6m zFQr|X!5v<^%czeyKkP~CuUDsIHGw1aOj)rA!A#>WA80RR8>IIfT3R%^1o9t}Cvm|K zl8rp~BlU-Dq>svF5{^BO_*iRlkBmV?QS7dZpt+-Gc47_M{-Rau%F@p_hWiMq$GpPW zFFraRG}u$H&i&SsXA%^uII%VTnFIy;RjMVSCZQr6`8;ni_B_cRUFwK}rCOjB^GEib zZ{;xP4NC>z(#;sgOd{m6K&+l!PEc>m8L8*5LM**qi0`*3Hop7MuTzOr6XkR=_Wtl-DO;UlC#OfcviJyeJv_`7jjfN1T zywL5xd1ZL@xm8RRb!wC%Vk<7VmWX$12$o&k{j_na`!E+)l}*}EZAU=@f>dUG4()?M zVVDN?)%!)IfUJ_(r}~Vi4N);(c+WehekX#PvDJdj+x&;--5r7I?!P6rESc~ks0oC8 zr;zi{lgYJs4BwVj{5kWF>IE(@l7U2w5At={dt=thWWc5E7M5WP52DPypTv!zn9wRX zB$Lb|PZ}qRW+$@_qoC0kb5nBMslPzLh(}#fAGEFUp@Dga9j>UpkJOOtp~4_ptGtPK z)$-gZmH0pGB|KQ?w#sxyB_npe#I%0Oo?a6b>1+KKhqIzsAMZ~S`Qu>BV~)cwd?Vgm zp{AVpW(juYgR{r!S5HJ}0zox~7fZ_!3k*KJpjl(=Pk81qHnR9Wb&^#U@G0~%s{q`&v(wnTf=#rEghNNpI0B< z1b#}jvwTl!N_Jo*=={Ck1^B6ElJJ0p9Ar%tA~*GJwJ9YYVMz5C|4 z4R2zN7(i}4qnaR-%HrU~kg;$M-%rZ1wIW@e2pTkBjoqb6hzp`xclxboG~WZ(*uaQL zJFO*i05J7dWR)w&c}HNfQiAVz4x{llM?R@dwwDe1dIHZgS&C~f{=R=6{Ws+j_T7CF zLXA_ldz0;8i2ox&2Ai8o!SYt&b%xoz8*Kxy*Ilf)iDn3q9pZ)_pjBr@u_@APp6dnJ zsQ?n|{i9m4=2RXQyy+;Hj`hzSJ7}b(!t6gP_2ymbPO!l&^Iz}l>0p^^)k;Qe@J>pu zdF88EYS$g55Uy2-H*5)6%~S1dqSjGs@@+-^Qa3pyhg6*n!&r3UBf~;aw4@onL^%Y; z*UbIRNQcjfZ*KqSqxcgltcmKZdoWo z?NS=P&55UZ93QEri<=U7LFRf$6JvxtKKW;I4H2cZ40`vKO_%gIMsR=X!|g3rUgfW^ zbK0L@Z%#`TFRPGCx2B>Wt24-)Yl_GQu{r_t@~5X8YJ!YEdJURGH+LBv^1oB)Dmop> zPgG2hJzilwz?J`b#|j?u=QX1U3)iiISz=XWiJR5I6lzjWz9^nj;j5U@`gV95`86FO zd>~gUVS)f8BoAhrzc($cG3Ek^#|&8eXA`o+2kN2Q>3pE5r;Wu2I>jeW%d)C?Uo9Wf!=?EdyTHYFpM3j0=;j9OSxaU{yzJe z^JKKLgH$&DEfOV3gEz9E4$h5&uRIyD9ggT?3@?wEpS+6LzdXOup>Qwqq-5}0^{~O4 zbT}O=$eUB@RTg}K;s=5PK5zvtlo_=(xq4ebAiu)@~ z5#2JP)j_neo;-ax!-)ij7L7)_=ENT<0*Cn@5qmez#?u_zw`5J&yOESeI7D&;Ir8C= zYszytG;@I%=~SQIlH|Bg9e&KdJR2L^merZLelQhD%x~f?q>pcNGN#;W8-G?3>zc&h zh_e8XbfRpD^KtiN4w=rD#x+H%Pdc!*UFl4AhKeAC@g)NkDX4KQ&e@ z<4D|tlca-{X*LgHZ($>I$g3tL1QVny$tJ(CyK2f_g@R4d-3;o0&J*II`3l4XDVN?u z{^Z*xW*DE({vcB;5#Y_qQ>w=dxacjwlmRz|Hf+SKn01JKRm%&Te{UdvzS2LnC99qj znuLUz9-jyOXokIc``8dv>tN1#+nR%^e&VT$f_2X}H@!XjBB7NcRY1br0nbt7c=?^I2(GU?YcsSdAc%^9NnU6(X z>3$;XNc&4x!*NU_4FI$;I~*@zKa5=%j{=f$6}Zl(W)i$9R% ztz)$IWGEuvq5IdamV~GA z?)W$Cslh91%Q^S-DpiSIdzpOTo;^LH9yMtTWB2hN)oj zb*bnr_L@KY>r}F1fpnjiHqDN~#>V5s=Wn1|%rsxF(Zm+GtGfzoy2rw3ne_r5RFG?o zqo3mao}dE2gYDEUn_(MOzhz$Q)jmS~|r$btMhWo;LhSKZ7z+6s(M;U;!E{ z(vpvVx#|+{5bz&$5utRZS^g!TDMFZ?GTUiI&qsKhF!T=50jE2O`JU6H!U^NT-t)0Q z*Y}$1$xJ!SI^7#5EW$5%ztbOy)gyY#NT{!@OC2_zix`)wgehIu&ibsrI}V!c-o1?C$Du*M`W z=eClr8al97CD{c&lUD5qWp=yN5lg*Y+gtN_>k*^IRG?R*QUONO&aSx)hHp`k#Xh^q zmDdSO59t)9F`f`!J>qM^@WbERD_7*bF)P6Av4t;@zu=-Mu-gn#i}>-DJ05sHLo7b4@{Q_UbWRsrDJ|{CM(Ah8=qDL3NCO+ayNV*@@|GChdrKPBPDQ z2BTok*p4T%&s8p0D(36CFcPOyyA(|d5pgnK?0)DB`eGY8RQSyn*;5_V5OzDZ&+V(* zb91K+^mf}9SBFR@#@108KlNKB2;@wql-;_LSYN+2)LEzOA;`d6Pay+fV(2(D>RL$g%Cf8#B~!-^v> z&1RH8{DzjZK=n!T9cdR;z03kJL{6ifP-E*mjc8a$T%VTIkz@y{oZh*j#T!c{-j((s zRiP;Jfn(C*_0GSFYv>;d_nm#hEHt?w$4s1D6!~B8qQ=}1p24b_050r1WNX#|`F=Cw z`XkvhZXNCiXGrl<@@M70UQf6exLpn77HFME4o9(iW1D{8m4(<$3PW^tqDbY~bm9Y^ zUCMbP`wNhsqB0`UHFWWAK_sF(?Fx+~c~1aajvU&a`T}O9=^eFI;4kJ+e9I6e=8J5M zY-PpFW%+WJe;=MwA>k$em*kmJ-IfoQOhn|g&&evvr1uq!_qt>(0IzQBnRHH}Hn1tY z1tA#*L^k}~nLm8LY|17VBH$jQ39Ozup))nMV_IVG!pZ$v7=EaXns>qj&orW>qu|8}(Z2~7pml(fNB3RYqN1^j%jegFUf literal 0 HcmV?d00001 diff --git a/Assets/UIFrameworkExamples/Art/eye.png.meta b/Assets/UIFrameworkExamples/Art/eye.png.meta new file mode 100644 index 0000000..82d7356 --- /dev/null +++ b/Assets/UIFrameworkExamples/Art/eye.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 5bef3a0aed901a240aab4d0e45f717ba +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 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 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 2f9d25f3d5a5b5a48bf3f8e08372c650 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Art/home.png b/Assets/UIFrameworkExamples/Art/home.png new file mode 100644 index 0000000000000000000000000000000000000000..c8a249d42d1fdaf06ea35ba3d17d8341f84a4789 GIT binary patch literal 8759 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�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 literal 0 HcmV?d00001 diff --git a/Assets/UIFrameworkExamples/Art/home.png.meta b/Assets/UIFrameworkExamples/Art/home.png.meta new file mode 100644 index 0000000..e7b2f48 --- /dev/null +++ b/Assets/UIFrameworkExamples/Art/home.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 1e0aafccc644fcc40a0ff98e641cf4ae +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 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 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 49d44c5eeceb5a64bb7ea199f20d3017 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Art/person.png b/Assets/UIFrameworkExamples/Art/person.png new file mode 100644 index 0000000000000000000000000000000000000000..d939b6b8916bd159ae0e746806f8b3a3c544cd35 GIT binary patch literal 11895 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 literal 0 HcmV?d00001 diff --git a/Assets/UIFrameworkExamples/Art/person.png.meta b/Assets/UIFrameworkExamples/Art/person.png.meta new file mode 100644 index 0000000..2ad1d2c --- /dev/null +++ b/Assets/UIFrameworkExamples/Art/person.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 6785b2af006c0554c8176dfb7ae21ee1 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 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 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 68ae5dfff367fea4e8500d88d630da42 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Art/smiley.png b/Assets/UIFrameworkExamples/Art/smiley.png new file mode 100644 index 0000000000000000000000000000000000000000..29a36abcdfb11acac8714f3bf62fea7f278d3d90 GIT binary patch literal 14006 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 MR@79elC${uf1Hd6y8r+H literal 0 HcmV?d00001 diff --git a/Assets/UIFrameworkExamples/Art/smiley.png.meta b/Assets/UIFrameworkExamples/Art/smiley.png.meta new file mode 100644 index 0000000..8ba5196 --- /dev/null +++ b/Assets/UIFrameworkExamples/Art/smiley.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 5fe371a3d11c56d4b877ee4f70d9117e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 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 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: c74010edffc2201438a733939139ffc6 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Art/star.png b/Assets/UIFrameworkExamples/Art/star.png new file mode 100644 index 0000000000000000000000000000000000000000..b96d9d4dcd7e5a5b09c3b9117f15429660f2ec70 GIT binary patch literal 19300 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 literal 0 HcmV?d00001 diff --git a/Assets/UIFrameworkExamples/Art/star.png.meta b/Assets/UIFrameworkExamples/Art/star.png.meta new file mode 100644 index 0000000..354b527 --- /dev/null +++ b/Assets/UIFrameworkExamples/Art/star.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 744ca399348c4294f82e8bd827fa35d5 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 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 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: d6d2c02c396c94d49925642ff6eb7b8d + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Art/warning.png b/Assets/UIFrameworkExamples/Art/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..903e12fd0374eaed06bf0721abe102ef55abc6d7 GIT binary patch literal 7906 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 literal 0 HcmV?d00001 diff --git a/Assets/UIFrameworkExamples/Art/warning.png.meta b/Assets/UIFrameworkExamples/Art/warning.png.meta new file mode 100644 index 0000000..a264016 --- /dev/null +++ b/Assets/UIFrameworkExamples/Art/warning.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 9c5ff6b53e8f2d649ba2a5487952cbca +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 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 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 64e8d71f899619c499a18733810da47c + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/DefaultUISettings.asset b/Assets/UIFrameworkExamples/DefaultUISettings.asset new file mode 100644 index 0000000..637e5f0 --- /dev/null +++ b/Assets/UIFrameworkExamples/DefaultUISettings.asset @@ -0,0 +1,27 @@ +%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: 11500000, guid: 414062f9d9180b24eb66136c31c0fe4c, type: 3} + m_Name: DefaultUISettings + m_EditorClassIdentifier: + templateUIPrefab: {fileID: 358001020665244776, guid: 8ff5283766dd8614a8838c8489cb528c, + type: 3} + screensToRegister: + - {fileID: 7617306793594988998, guid: 0a680a728e2bff444bd5b6b236aac4ee, type: 3} + - {fileID: 3955197997429667027, guid: 45f336f4b18fc084db012ee283bb1be4, type: 3} + - {fileID: 3354577186298565417, guid: 3a68b7318cee11343af713222804c704, type: 3} + - {fileID: 3672568053856412771, guid: fb86aca5b5eaebe4bb3058576a1beadc, type: 3} + - {fileID: 8890043933281423490, guid: e7d17039446a5ac41afee18e47ffc57f, type: 3} + - {fileID: 2592118604778629170, guid: 88f2f76f2f0c8c640930f0bc9d5974c7, type: 3} + - {fileID: 3354577186298565417, guid: 80be0c317fa558843b7df437ee48c2ae, type: 3} + - {fileID: 3354577186298565417, guid: 98220a950995ef343bb8df2130378dda, type: 3} + - {fileID: 2198531993298414313, guid: 5637ec63a9899c340abe04789b5fa363, type: 3} + deactivateScreenGOs: 1 diff --git a/Assets/UIFrameworkExamples/DefaultUISettings.asset.meta b/Assets/UIFrameworkExamples/DefaultUISettings.asset.meta new file mode 100644 index 0000000..e343356 --- /dev/null +++ b/Assets/UIFrameworkExamples/DefaultUISettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9ec55674dad24fa459cb72abf8798b47 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Prefabs.meta b/Assets/UIFrameworkExamples/Prefabs.meta new file mode 100644 index 0000000..8aa8e06 --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 527c565c1edb482438c61bdde0ad91ae +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens.meta b/Assets/UIFrameworkExamples/Prefabs/Screens.meta new file mode 100644 index 0000000..666980f --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3d904e81fb147194ca299c7a8c262276 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/CameraProjectionWindow.prefab b/Assets/UIFrameworkExamples/Prefabs/Screens/CameraProjectionWindow.prefab new file mode 100644 index 0000000..1aff43b --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/CameraProjectionWindow.prefab @@ -0,0 +1,1087 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &98919773506510623 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8510129808855734869} + - component: {fileID: 221341594774490267} + - component: {fileID: 6656016783461502867} + m_Layer: 5 + m_Name: Topbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8510129808855734869 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98919773506510623} + 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: 8609200798398640552} + m_Father: {fileID: 1882636711210968632} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 106.5} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &221341594774490267 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98919773506510623} + m_CullTransparentMesh: 0 +--- !u!114 &6656016783461502867 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98919773506510623} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &2227468498278643625 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7639439103983767718} + m_Layer: 5 + m_Name: RotationContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7639439103983767718 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2227468498278643625} + 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: 2755283431940781231} + m_Father: {fileID: 1818011782835075845} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3354577186298565417 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1011405989867418180} + - component: {fileID: 4477213173196079352} + - component: {fileID: 5718983719031590634} + - component: {fileID: 5842756049921619999} + m_Layer: 5 + m_Name: CameraProjectionWindow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1011405989867418180 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3354577186298565417} + 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: 1882636711210968632} + - {fileID: 3164444239499350358} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4477213173196079352 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3354577186298565417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f62375b573ca1174b94825b05482e166, type: 3} + m_Name: + m_EditorClassIdentifier: + animIn: {fileID: 5718983719031590634} + animOut: {fileID: 5842756049921619999} + properties: + hideOnForegroundLost: 0 + windowPriority: 0 + isPopup: 0 + followTemplate: {fileID: 5810970270477516230} +--- !u!114 &5718983719031590634 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3354577186298565417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f0ffd164e4450f439d7c219e6c88ce7, type: 3} + m_Name: + m_EditorClassIdentifier: + origin: 3 + isOutAnimation: 0 + duration: 0.5 + doFade: 0 + ease: 9 +--- !u!114 &5842756049921619999 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3354577186298565417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f9739af8e894b7b8db28faf4bb2114d, type: 3} + m_Name: + m_EditorClassIdentifier: + fadeDuration: 0.25 + fadeOut: 1 +--- !u!1 &4011628144214099269 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1968171112662132768} + - component: {fileID: 3262846649263349821} + - component: {fileID: 7235665552410309566} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1968171112662132768 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4011628144214099269} + 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: 427887514980135128} + m_Father: {fileID: 1818011782835075845} + 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.000102996826, y: 89} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3262846649263349821 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4011628144214099269} + m_CullTransparentMesh: 0 +--- !u!114 &7235665552410309566 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4011628144214099269} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &4225676433350821717 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1882636711210968632} + - component: {fileID: 5263101655770703430} + - component: {fileID: 5950988150776631154} + m_Layer: 5 + m_Name: Contents + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1882636711210968632 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4225676433350821717} + 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: 8510129808855734869} + - {fileID: 101810048670895464} + m_Father: {fileID: 1011405989867418180} + 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: 334.4} + m_SizeDelta: {x: -200, y: -768.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5263101655770703430 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4225676433350821717} + m_CullTransparentMesh: 0 +--- !u!114 &5950988150776631154 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4225676433350821717} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &4327630164147964710 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5681384819811385053} + - component: {fileID: 4271293957410690124} + - component: {fileID: 6540238802619258009} + m_Layer: 5 + m_Name: Eye + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5681384819811385053 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4327630164147964710} + 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: 1818011782835075845} + m_RootOrder: 1 + 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: 70, y: 70} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4271293957410690124 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4327630164147964710} + m_CullTransparentMesh: 0 +--- !u!114 &6540238802619258009 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4327630164147964710} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 5bef3a0aed901a240aab4d0e45f717ba, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &4445148057815015445 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 427887514980135128} + - component: {fileID: 4146876325120962919} + - component: {fileID: 7705683713614301940} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &427887514980135128 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4445148057815015445} + 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: 1968171112662132768} + 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.000015258789, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4146876325120962919 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4445148057815015445} + m_CullTransparentMesh: 0 +--- !u!114 &7705683713614301940 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4445148057815015445} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Hey there! + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281736679 + m_fontColor: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 32 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 32 + m_fontStyle: 0 + m_textAlignment: 514 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 7705683713614301940} + characterCount: 10 + spriteCount: 0 + spaceCount: 1 + wordCount: 2 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 1 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5524082136175353845 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8609200798398640552} + - component: {fileID: 4285746058787129464} + - component: {fileID: 4674969595703324561} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8609200798398640552 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5524082136175353845} + 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: 8510129808855734869} + 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: 6.0024414, y: 0} + m_SizeDelta: {x: -11.995, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4285746058787129464 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5524082136175353845} + m_CullTransparentMesh: 0 +--- !u!114 &4674969595703324561 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5524082136175353845} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Cross-Camera Projection + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 72 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 513 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 4674969595703324561} + characterCount: 23 + spriteCount: 0 + spaceCount: 1 + wordCount: 2 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 0 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7822190286887423806 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 101810048670895464} + - component: {fileID: 3823127532037936604} + - component: {fileID: 4799653581387038198} + m_Layer: 5 + m_Name: IntroText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &101810048670895464 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7822190286887423806} + 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: 1882636711210968632} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -4.1000977, y: -30.199951} + m_SizeDelta: {x: -38.7, y: -175.3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3823127532037936604 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7822190286887423806} + m_CullTransparentMesh: 0 +--- !u!114 &4799653581387038198 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7822190286887423806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: 'One caveat of using Screenspace-Camera is that all of your operations that + would usually work with projecting to the Screenspace Overlay UI will need one + extra hop: you need to project from the Main Camera to the + UI Camera. Fortunately for you (and for future me), I''m adding + some code to do that.' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4280751617 + m_fontColor: {r: 0.003921569, g: 0.08627451, b: 0.15294118, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 36 + m_fontSizeBase: 20.1 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 36 + m_fontStyle: 0 + m_textAlignment: 264 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 4799653581387038198} + characterCount: 297 + spriteCount: 0 + spaceCount: 52 + wordCount: 53 + linkCount: 0 + lineCount: 3 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 0 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7954260746561191003 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2755283431940781231} + - component: {fileID: 2305144385824476443} + - component: {fileID: 5922204235259187129} + m_Layer: 5 + m_Name: Pointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2755283431940781231 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7954260746561191003} + m_LocalRotation: {x: 0, y: 0, z: -1, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7639439103983767718} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -180} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.000061035156, y: -38.599976} + m_SizeDelta: {x: 17.86, y: 18.24} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2305144385824476443 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7954260746561191003} + m_CullTransparentMesh: 0 +--- !u!114 &5922204235259187129 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7954260746561191003} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 9c5ff6b53e8f2d649ba2a5487952cbca, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &8196676163096250669 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1818011782835075845} + - component: {fileID: 7162276489697915685} + - component: {fileID: 5810970270477516230} + m_Layer: 5 + m_Name: PointerTemplate + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1818011782835075845 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8196676163096250669} + 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: 1968171112662132768} + - {fileID: 5681384819811385053} + - {fileID: 7639439103983767718} + m_Father: {fileID: 3164444239499350358} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0, y: 0} +--- !u!222 &7162276489697915685 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8196676163096250669} + m_CullTransparentMesh: 0 +--- !u!114 &5810970270477516230 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8196676163096250669} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e56e20bbc30db69479446adfeca37a81, type: 3} + m_Name: + m_EditorClassIdentifier: + label: {fileID: 7705683713614301940} + icon: {fileID: 6540238802619258009} + clampAtBorders: 1 + rotateWhenClamped: 1 + rotatingElement: {fileID: 7639439103983767718} +--- !u!1 &8787603581679254651 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3164444239499350358} + m_Layer: 5 + m_Name: PointerContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3164444239499350358 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8787603581679254651} + 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: 1818011782835075845} + m_Father: {fileID: 1011405989867418180} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -101.5} + m_SizeDelta: {x: 0, y: -518.8} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/CameraProjectionWindow.prefab.meta b/Assets/UIFrameworkExamples/Prefabs/Screens/CameraProjectionWindow.prefab.meta new file mode 100644 index 0000000..3a9eeb9 --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/CameraProjectionWindow.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 98220a950995ef343bb8df2130378dda +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/ConfirmationPopup.prefab b/Assets/UIFrameworkExamples/Prefabs/Screens/ConfirmationPopup.prefab new file mode 100644 index 0000000..1a6e911 --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/ConfirmationPopup.prefab @@ -0,0 +1,1299 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &753166757890021008 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1520446301345855096} + - component: {fileID: 8027721913690519463} + - component: {fileID: 7299106550158769435} + - component: {fileID: 369883112276345079} + - component: {fileID: 2541120342965204587} + m_Layer: 5 + m_Name: CancelButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1520446301345855096 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 753166757890021008} + 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: 1217588006194710350} + m_Father: {fileID: 4915268649720767943} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 550.115, y: -50.286667} + m_SizeDelta: {x: 250.23, y: 100.57333} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8027721913690519463 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 753166757890021008} + m_CullTransparentMesh: 0 +--- !u!114 &7299106550158769435 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 753166757890021008} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &369883112276345079 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 753166757890021008} + 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: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_HighlightedColor: {r: 1, g: 0.495283, b: 0.5577481, 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: 7299106550158769435} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 6251046199111964487} + m_MethodName: UI_Cancel + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &2541120342965204587 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 753166757890021008} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: 250.23 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &1300414264170280447 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8300089473449365687} + - component: {fileID: 3589795682474592367} + - component: {fileID: 6573128085165387730} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8300089473449365687 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1300414264170280447} + 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: 6938923385336091823} + 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!222 &3589795682474592367 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1300414264170280447} + m_CullTransparentMesh: 0 +--- !u!114 &6573128085165387730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1300414264170280447} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Warning + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294770685 + m_fontColor: {r: 0.99215686, g: 1, b: 0.9882353, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 72 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 514 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 6573128085165387730} + characterCount: 7 + spriteCount: 0 + spaceCount: 0 + wordCount: 1 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 1 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1763140150870685473 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1217588006194710350} + - component: {fileID: 1704310096413301226} + - component: {fileID: 460915558610947767} + m_Layer: 5 + m_Name: CancelButtonLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1217588006194710350 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1763140150870685473} + 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: 1520446301345855096} + 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: -70, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1704310096413301226 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1763140150870685473} + m_CullTransparentMesh: 0 +--- !u!114 &460915558610947767 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1763140150870685473} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Cancel + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294770685 + m_fontColor: {r: 0.99215686, g: 1, b: 0.9882353, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 57.85 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 514 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 460915558610947767} + characterCount: 6 + spriteCount: 0 + spaceCount: 0 + wordCount: 1 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 1 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &2005694493604836044 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7389694280732727149} + - component: {fileID: 9180710329565262292} + - component: {fileID: 3909452541284739013} + m_Layer: 5 + m_Name: MessageLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7389694280732727149 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2005694493604836044} + 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: 1744571971706571164} + 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: -50, y: -50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9180710329565262292 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2005694493604836044} + m_CullTransparentMesh: 0 +--- !u!114 &3909452541284739013 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2005694493604836044} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: This is a pretty long message to tell you that this is a confirmation popup + with many different shapes and forms. + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294770685 + m_fontColor: {r: 0.99215686, g: 1, b: 0.9882353, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 36 + m_fontStyle: 0 + m_textAlignment: 258 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 3909452541284739013} + characterCount: 113 + spriteCount: 0 + spaceCount: 20 + wordCount: 21 + linkCount: 0 + lineCount: 3 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 1 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &2413192906655441539 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6938923385336091823} + - component: {fileID: 6358397677745182145} + - component: {fileID: 7671784008405301669} + m_Layer: 5 + m_Name: TitleBar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6938923385336091823 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2413192906655441539} + 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: 8300089473449365687} + m_Father: {fileID: 6899283882992341936} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 400, y: 0} + m_SizeDelta: {x: 800, y: 90.57333} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &6358397677745182145 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2413192906655441539} + m_CullTransparentMesh: 0 +--- !u!114 &7671784008405301669 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2413192906655441539} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &2633200789751949765 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4458683867480694874} + - component: {fileID: 5338312558377834810} + - component: {fileID: 4623561974178953265} + m_Layer: 5 + m_Name: ConfirmButtonLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4458683867480694874 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2633200789751949765} + 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: 3956193398256022831} + 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: -70, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5338312558377834810 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2633200789751949765} + m_CullTransparentMesh: 0 +--- !u!114 &4623561974178953265 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2633200789751949765} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Confirm + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281736679 + m_fontColor: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 51.45 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 514 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 4623561974178953265} + characterCount: 7 + spriteCount: 0 + spaceCount: 0 + wordCount: 1 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 1 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3672568053856412771 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6899283882992341936} + - component: {fileID: 3784896396256354807} + - component: {fileID: 4390124195735770380} + - component: {fileID: 4004627534911328026} + - component: {fileID: 6251046199111964487} + - component: {fileID: 8375409849673358447} + - component: {fileID: 7418588913208446005} + m_Layer: 5 + m_Name: ConfirmationPopup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &6899283882992341936 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3672568053856412771} + 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: 6938923385336091823} + - {fileID: 1744571971706571164} + - {fileID: 4915268649720767943} + 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: 3.7, y: 0} + m_SizeDelta: {x: 800, y: 500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3784896396256354807 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3672568053856412771} + m_CullTransparentMesh: 0 +--- !u!114 &4390124195735770380 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3672568053856412771} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.003921569, g: 0.08627451, b: 0.15294118, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &4004627534911328026 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3672568053856412771} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 20 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 +--- !u!114 &6251046199111964487 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3672568053856412771} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e6913d1a1cc99c44f80bf003a9cf820e, type: 3} + m_Name: + m_EditorClassIdentifier: + animIn: {fileID: 8375409849673358447} + animOut: {fileID: 7418588913208446005} + properties: + hideOnForegroundLost: 0 + windowPriority: 1 + isPopup: 1 + titleLabel: {fileID: 6573128085165387730} + messageLabel: {fileID: 3909452541284739013} + confirmButtonLabel: {fileID: 4623561974178953265} + cancelButtonLabel: {fileID: 460915558610947767} + cancelButtonObject: {fileID: 753166757890021008} +--- !u!114 &8375409849673358447 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3672568053856412771} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fba1e145d32ecc1418c1b103ff6a7b8b, type: 3} + m_Name: + m_EditorClassIdentifier: + isOutAnimation: 0 + duration: 0.5 + doFade: 0 + fadeDurationPercent: 0.5 + ease: 1 + xYSplit: 0.25 +--- !u!114 &7418588913208446005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3672568053856412771} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fba1e145d32ecc1418c1b103ff6a7b8b, type: 3} + m_Name: + m_EditorClassIdentifier: + isOutAnimation: 1 + duration: 0.25 + doFade: 1 + fadeDurationPercent: 0.5 + ease: 1 + xYSplit: 0.25 +--- !u!1 &4118879709865595941 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4915268649720767943} + - component: {fileID: 214980766208689368} + m_Layer: 5 + m_Name: BottomBar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4915268649720767943 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4118879709865595941} + 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: 3956193398256022831} + - {fileID: 1520446301345855096} + m_Father: {fileID: 6899283882992341936} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 400, y: -480} + m_SizeDelta: {x: 800, y: 100.57333} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &214980766208689368 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4118879709865595941} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 50 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 +--- !u!1 &6591497084889658201 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3956193398256022831} + - component: {fileID: 4880082209280684028} + - component: {fileID: 5895093782803980628} + - component: {fileID: 6220601697137495664} + - component: {fileID: 2509640724917203582} + m_Layer: 5 + m_Name: ConfirmButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3956193398256022831 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6591497084889658201} + 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: 4458683867480694874} + m_Father: {fileID: 4915268649720767943} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 249.88501, y: -50.286667} + m_SizeDelta: {x: 250.23, y: 100.57333} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4880082209280684028 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6591497084889658201} + m_CullTransparentMesh: 0 +--- !u!114 &5895093782803980628 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6591497084889658201} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &6220601697137495664 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6591497084889658201} + 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: 0.99215686, g: 1, b: 0.9882353, a: 1} + m_HighlightedColor: {r: 0.7924528, g: 0.7924528, b: 0.7924528, 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: 5895093782803980628} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 6251046199111964487} + m_MethodName: UI_Confirm + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &2509640724917203582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6591497084889658201} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: 250.23 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &6818589630592218863 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1744571971706571164} + - component: {fileID: 5703894357856252342} + m_Layer: 5 + m_Name: MessageContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1744571971706571164 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6818589630592218863} + 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: 7389694280732727149} + m_Father: {fileID: 6899283882992341936} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 400, y: -235} + m_SizeDelta: {x: 800, y: 288.85333} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5703894357856252342 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6818589630592218863} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 198.28 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/ConfirmationPopup.prefab.meta b/Assets/UIFrameworkExamples/Prefabs/Screens/ConfirmationPopup.prefab.meta new file mode 100644 index 0000000..100bea8 --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/ConfirmationPopup.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fb86aca5b5eaebe4bb3058576a1beadc +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/HomeWindow.prefab b/Assets/UIFrameworkExamples/Prefabs/Screens/HomeWindow.prefab new file mode 100644 index 0000000..c0081d4 --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/HomeWindow.prefab @@ -0,0 +1,585 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &98919773506510623 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8510129808855734869} + - component: {fileID: 221341594774490267} + - component: {fileID: 6656016783461502867} + m_Layer: 5 + m_Name: Topbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8510129808855734869 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98919773506510623} + 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: 8609200798398640552} + m_Father: {fileID: 6655699783792570770} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 106.5} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &221341594774490267 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98919773506510623} + m_CullTransparentMesh: 0 +--- !u!114 &6656016783461502867 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98919773506510623} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &3354577186298565417 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1011405989867418180} + - component: {fileID: 6711224828416930362} + - component: {fileID: 5270801028528848020} + - component: {fileID: 2101825805392338980} + - component: {fileID: 7772707016493260446} + m_Layer: 5 + m_Name: HomeWindow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1011405989867418180 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3354577186298565417} + 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: 6655699783792570770} + m_Father: {fileID: 0} + 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!222 &6711224828416930362 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3354577186298565417} + m_CullTransparentMesh: 0 +--- !u!114 &5270801028528848020 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3354577186298565417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dfde723a98b24660a740ac83905f195e, type: 3} + m_Name: + m_EditorClassIdentifier: + animIn: {fileID: 2101825805392338980} + animOut: {fileID: 7772707016493260446} + properties: + hideOnForegroundLost: 1 + windowPriority: 1 + isPopup: 0 +--- !u!114 &2101825805392338980 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3354577186298565417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fba1e145d32ecc1418c1b103ff6a7b8b, type: 3} + m_Name: + m_EditorClassIdentifier: + isOutAnimation: 0 + duration: 0.5 + doFade: 0 + fadeDurationPercent: 0.5 + ease: 6 + xYSplit: 0.25 +--- !u!114 &7772707016493260446 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3354577186298565417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f0ffd164e4450f439d7c219e6c88ce7, type: 3} + m_Name: + m_EditorClassIdentifier: + origin: 1 + isOutAnimation: 1 + duration: 0.25 + doFade: 0 + fadeDurationPercent: 0.5 + ease: 1 +--- !u!1 &5524082136175353845 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8609200798398640552} + - component: {fileID: 4285746058787129464} + - component: {fileID: 4674969595703324561} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8609200798398640552 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5524082136175353845} + 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: 8510129808855734869} + 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: 6.0024414, y: 0} + m_SizeDelta: {x: -11.995, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4285746058787129464 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5524082136175353845} + m_CullTransparentMesh: 0 +--- !u!114 &4674969595703324561 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5524082136175353845} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Welcome! + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 72 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 513 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 4674969595703324561} + characterCount: 8 + spriteCount: 0 + spaceCount: 0 + wordCount: 1 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 0 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7822190286887423806 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 101810048670895464} + - component: {fileID: 3823127532037936604} + - component: {fileID: 4799653581387038198} + m_Layer: 5 + m_Name: IntroText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &101810048670895464 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7822190286887423806} + 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: 6655699783792570770} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -4.0999756, y: -30.2} + m_SizeDelta: {x: -38.7, y: -175.3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3823127532037936604 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7822190286887423806} + m_CullTransparentMesh: 0 +--- !u!114 &4799653581387038198 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7822190286887423806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: "This projects tries to demonstrate the functionalities of the deVoid + UI Framework. \n\nThese examples use Signals as a messaging + system, DOTween as a tweening library, and icons from TheNounProject.com.\n\nThe + framework tries to be as agnostic as possible regarding how you implement your + screens, but it attempts to enforce one very specific rule: you can't access the + internal UI code from the outside. Other than that, everything is fair game - + you're the one who knows the necessities and how complex your codebase should + be.\n\nEven though it's intended to be simple enough for beginners and robust + enough for production, before using it in your project I recommend reading the + manual at https://github.com/yankooliveira/uiframework.\n\nClick + the buttons in the navigation panel below to see some of the examples." + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4280751617 + m_fontColor: {r: 0.003921569, g: 0.08627451, b: 0.15294118, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 36 + m_fontSizeBase: 20.1 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 36 + m_fontStyle: 0 + m_textAlignment: 264 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 4799653581387038198} + characterCount: 810 + spriteCount: 0 + spaceCount: 131 + wordCount: 132 + linkCount: 0 + lineCount: 14 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 0 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &8996272300765663487 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6655699783792570770} + - component: {fileID: 1114632935185904108} + - component: {fileID: 1507469595036276952} + m_Layer: 5 + m_Name: Contents + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6655699783792570770 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8996272300765663487} + 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: 8510129808855734869} + - {fileID: 101810048670895464} + m_Father: {fileID: 1011405989867418180} + 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: 75} + m_SizeDelta: {x: -200, y: -250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1114632935185904108 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8996272300765663487} + m_CullTransparentMesh: 0 +--- !u!114 &1507469595036276952 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8996272300765663487} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/HomeWindow.prefab.meta b/Assets/UIFrameworkExamples/Prefabs/Screens/HomeWindow.prefab.meta new file mode 100644 index 0000000..f95079c --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/HomeWindow.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3a68b7318cee11343af713222804c704 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/NavigationPanel.prefab b/Assets/UIFrameworkExamples/Prefabs/Screens/NavigationPanel.prefab new file mode 100644 index 0000000..13fad15 --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/NavigationPanel.prefab @@ -0,0 +1,571 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2060388738292839111 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8338613314173166000} + - component: {fileID: 4419130853045013439} + - component: {fileID: 5844606152381198886} + m_Layer: 5 + m_Name: ButtonIcon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8338613314173166000 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2060388738292839111} + 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: 88630437134135246} + 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: 21} + m_SizeDelta: {x: -40, y: -58} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4419130853045013439 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2060388738292839111} + m_CullTransparentMesh: 0 +--- !u!114 &5844606152381198886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2060388738292839111} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &3588384642012459075 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 88630437134135246} + - component: {fileID: 7797202251746677583} + - component: {fileID: 3411222907738474386} + - component: {fileID: 345793894806965386} + - component: {fileID: 1080301906137745222} + - component: {fileID: 4982524321882832074} + m_Layer: 5 + m_Name: NavigationButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &88630437134135246 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3588384642012459075} + 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: 8338613314173166000} + - {fileID: 1522472831179331385} + m_Father: {fileID: 7939089720915630041} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 449.99994, y: -75} + m_SizeDelta: {x: 220, y: 150} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &7797202251746677583 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3588384642012459075} + m_CullTransparentMesh: 0 +--- !u!114 &3411222907738474386 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3588384642012459075} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &345793894806965386 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3588384642012459075} + 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: 3411222907738474386} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1080301906137745222} + m_MethodName: UI_Click + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1080301906137745222 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3588384642012459075} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 915532acc8b7d534c86fdff46e6a0be6, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonLabel: {fileID: 9188384194980805416} + icon: {fileID: 5844606152381198886} +--- !u!114 &4982524321882832074 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3588384642012459075} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 220 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &3955197997429667027 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7939089720915630041} + - component: {fileID: 1483171869872550296} + - component: {fileID: 1743815660588205210} + - component: {fileID: 1581788129724897019} + - component: {fileID: 7137240126342042863} + - component: {fileID: 3626000749755598332} + - component: {fileID: 111474194970382263} + m_Layer: 5 + m_Name: NavigationPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7939089720915630041 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3955197997429667027} + 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: 88630437134135246} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -800, y: 150} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &1483171869872550296 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3955197997429667027} + m_CullTransparentMesh: 0 +--- !u!114 &1743815660588205210 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3955197997429667027} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.99215686, g: 1, b: 0.9882353, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &1581788129724897019 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3955197997429667027} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 800b00f1adb3ccb42bb2cfee5cf1af23, type: 3} + m_Name: + m_EditorClassIdentifier: + animIn: {fileID: 7137240126342042863} + animOut: {fileID: 3626000749755598332} + properties: + priority: 0 + navigationTargets: + - sprite: {fileID: 21300000, guid: 1e0aafccc644fcc40a0ff98e641cf4ae, type: 3} + buttonText: Home + targetScreen: HomeWindow + - sprite: {fileID: 21300000, guid: 6785b2af006c0554c8176dfb7ae21ee1, type: 3} + buttonText: Passing Data + targetScreen: PlayerWindow + - sprite: {fileID: 21300000, guid: 9c5ff6b53e8f2d649ba2a5487952cbca, type: 3} + buttonText: Pop-Ups + targetScreen: PopupExampleWindow + - sprite: {fileID: 21300000, guid: fb78cfb5c22903d40b2ccea7b662ecff, type: 3} + buttonText: Screenspace-Camera + targetScreen: ThreeDExample + - sprite: {fileID: 21300000, guid: 5bef3a0aed901a240aab4d0e45f717ba, type: 3} + buttonText: UI projections + targetScreen: CameraProjectionWindow + templateButton: {fileID: 1080301906137745222} +--- !u!114 &7137240126342042863 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3955197997429667027} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f0ffd164e4450f439d7c219e6c88ce7, type: 3} + m_Name: + m_EditorClassIdentifier: + origin: 4 + isOutAnimation: 0 + duration: 0.5 + doFade: 0 + ease: 30 +--- !u!114 &3626000749755598332 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3955197997429667027} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f0ffd164e4450f439d7c219e6c88ce7, type: 3} + m_Name: + m_EditorClassIdentifier: + origin: 4 + isOutAnimation: 0 + duration: 0.25 + doFade: 0 + ease: 1 +--- !u!114 &111474194970382263 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3955197997429667027} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 20 + m_Right: 20 + m_Top: 6 + m_Bottom: 6 + m_ChildAlignment: 4 + m_Spacing: 30 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 +--- !u!1 &9119580892891632796 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1522472831179331385} + - component: {fileID: 4485375939088672969} + - component: {fileID: 9188384194980805416} + m_Layer: 5 + m_Name: ButtonLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1522472831179331385 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9119580892891632796} + 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: 88630437134135246} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -30, y: 50} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &4485375939088672969 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9119580892891632796} + m_CullTransparentMesh: 0 +--- !u!114 &9188384194980805416 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9119580892891632796} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Button + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281736679 + m_fontColor: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 44.75 + m_fontSizeBase: 42.05 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 1026 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 9188384194980805416} + characterCount: 6 + spriteCount: 0 + spaceCount: 0 + wordCount: 1 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/NavigationPanel.prefab.meta b/Assets/UIFrameworkExamples/Prefabs/Screens/NavigationPanel.prefab.meta new file mode 100644 index 0000000..518b788 --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/NavigationPanel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 45f336f4b18fc084db012ee283bb1be4 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/PlayerWindow.prefab b/Assets/UIFrameworkExamples/Prefabs/Screens/PlayerWindow.prefab new file mode 100644 index 0000000..8d3153d --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/PlayerWindow.prefab @@ -0,0 +1,1720 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1650656771259169029 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6954153258504950159} + - component: {fileID: 1942499215714232907} + - component: {fileID: 1804430325498751270} + m_Layer: 5 + m_Name: Levels + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6954153258504950159 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1650656771259169029} + 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: 3104214900912094684} + - {fileID: 6759501883784738004} + m_Father: {fileID: 8851696778185281188} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -145.6} + m_SizeDelta: {x: -36, y: -422.6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1942499215714232907 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1650656771259169029} + m_CullTransparentMesh: 0 +--- !u!114 &1804430325498751270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1650656771259169029} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5188679, g: 0.5188679, b: 0.5188679, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &1817672464531924514 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8851696778185281188} + - component: {fileID: 8597023242219320145} + - component: {fileID: 7841506052228012645} + m_Layer: 5 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8851696778185281188 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1817672464531924514} + 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: 4977659711642189355} + - {fileID: 6954153258504950159} + - {fileID: 2004170552186592563} + m_Father: {fileID: 251612712420346207} + 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: 75} + m_SizeDelta: {x: -200, y: -250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8597023242219320145 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1817672464531924514} + m_CullTransparentMesh: 0 +--- !u!114 &7841506052228012645 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1817672464531924514} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &2000518083909506990 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9060108410771046117} + - component: {fileID: 6624529661994546389} + - component: {fileID: 4171582378135474077} + - component: {fileID: 842971632820540420} + m_Layer: 5 + m_Name: Star3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9060108410771046117 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000518083909506990} + 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: 1918934331247620334} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 235.43333, y: -28.949997} + m_SizeDelta: {x: 94.17333, y: 75} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6624529661994546389 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000518083909506990} + m_CullTransparentMesh: 0 +--- !u!114 &4171582378135474077 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000518083909506990} + 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: 0.62352943, b: 0.10980392, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 744ca399348c4294f82e8bd827fa35d5, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &842971632820540420 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000518083909506990} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: 75 + m_MinHeight: 75 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &2592118604778629170 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 251612712420346207} + - component: {fileID: 5789337063533103393} + - component: {fileID: 6078805321728324179} + - component: {fileID: 6368811384777017929} + - component: {fileID: 1713198479266696160} + m_Layer: 5 + m_Name: PlayerWindow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &251612712420346207 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2592118604778629170} + 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: 8851696778185281188} + m_Father: {fileID: 0} + 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!222 &5789337063533103393 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2592118604778629170} + m_CullTransparentMesh: 0 +--- !u!114 &6078805321728324179 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2592118604778629170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7340a46b47324d80b4367278fc02a3b1, type: 3} + m_Name: + m_EditorClassIdentifier: + animIn: {fileID: 6368811384777017929} + animOut: {fileID: 1713198479266696160} + properties: + hideOnForegroundLost: 1 + windowPriority: 1 + isPopup: 0 + templateLevelEntry: {fileID: 692316391990440636} +--- !u!114 &6368811384777017929 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2592118604778629170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f0ffd164e4450f439d7c219e6c88ce7, type: 3} + m_Name: + m_EditorClassIdentifier: + origin: 2 + isOutAnimation: 0 + duration: 0.5 + doFade: 0 + fadeDurationPercent: 0.5 + ease: 30 +--- !u!114 &1713198479266696160 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2592118604778629170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f0ffd164e4450f439d7c219e6c88ce7, type: 3} + m_Name: + m_EditorClassIdentifier: + origin: 1 + isOutAnimation: 1 + duration: 0.25 + doFade: 0 + fadeDurationPercent: 0.5 + ease: 1 +--- !u!1 &3326100627245597721 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3104214900912094684} + - component: {fileID: 63659339715803292} + - component: {fileID: 207480843634322215} + m_Layer: 5 + m_Name: LevelsTopbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3104214900912094684 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3326100627245597721} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.999785, y: 0.999785, z: 0.999785} + m_Children: + - {fileID: 4881746514993451955} + m_Father: {fileID: 6954153258504950159} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 60.5} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &63659339715803292 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3326100627245597721} + m_CullTransparentMesh: 0 +--- !u!114 &207480843634322215 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3326100627245597721} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &3919699623732873981 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4977659711642189355} + - component: {fileID: 1683106311651097393} + - component: {fileID: 380493786333768304} + m_Layer: 5 + m_Name: Topbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4977659711642189355 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3919699623732873981} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.999785, y: 0.999785, z: 0.999785} + m_Children: + - {fileID: 5740328975745033253} + m_Father: {fileID: 8851696778185281188} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 106.5} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &1683106311651097393 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3919699623732873981} + m_CullTransparentMesh: 0 +--- !u!114 &380493786333768304 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3919699623732873981} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &4476774902129073234 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6759501883784738004} + - component: {fileID: 4042858817033983836} + m_Layer: 5 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6759501883784738004 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4476774902129073234} + 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: 7912753963192915857} + m_Father: {fileID: 6954153258504950159} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -35.4} + m_SizeDelta: {x: 0, y: -70.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4042858817033983836 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4476774902129073234} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2095666955, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 282.52, y: 200} + m_Spacing: {x: 39.7, y: 0} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!1 &4828223603000775571 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3214048987722163941} + - component: {fileID: 4824599108662190229} + - component: {fileID: 3413460598377202260} + m_Layer: 5 + m_Name: LevelName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3214048987722163941 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4828223603000775571} + 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: 7912753963192915857} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 27.95} + m_SizeDelta: {x: -40, y: -75.9} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4824599108662190229 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4828223603000775571} + m_CullTransparentMesh: 0 +--- !u!114 &3413460598377202260 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4828223603000775571} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Hungry rapids + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281736679 + m_fontColor: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 54.7 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 514 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 3413460598377202260} + characterCount: 13 + spriteCount: 0 + spaceCount: 1 + wordCount: 2 + linkCount: 0 + lineCount: 2 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5770428888123302892 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8797667699978929283} + - component: {fileID: 5204416280959542624} + - component: {fileID: 5713505119834701780} + - component: {fileID: 1497641568283338638} + m_Layer: 5 + m_Name: Star1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8797667699978929283 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5770428888123302892} + 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: 1918934331247620334} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 47.086666, y: -28.949997} + m_SizeDelta: {x: 94.17333, y: 75} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5204416280959542624 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5770428888123302892} + m_CullTransparentMesh: 0 +--- !u!114 &5713505119834701780 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5770428888123302892} + 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: 0.62352943, b: 0.10980392, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 744ca399348c4294f82e8bd827fa35d5, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &1497641568283338638 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5770428888123302892} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: 75 + m_MinHeight: 75 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &5917892100068259789 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7690390644638995461} + - component: {fileID: 7772083425895463131} + - component: {fileID: 3576428130086223266} + - component: {fileID: 3894135024503729366} + m_Layer: 5 + m_Name: Star2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7690390644638995461 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5917892100068259789} + 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: 1918934331247620334} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 141.26, y: -28.949997} + m_SizeDelta: {x: 94.17333, y: 75} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7772083425895463131 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5917892100068259789} + m_CullTransparentMesh: 0 +--- !u!114 &3576428130086223266 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5917892100068259789} + 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: 0.62352943, b: 0.10980392, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 744ca399348c4294f82e8bd827fa35d5, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &3894135024503729366 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5917892100068259789} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: 75 + m_MinHeight: 75 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &6115775414925960720 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2004170552186592563} + - component: {fileID: 62052315683608685} + - component: {fileID: 249438427514954613} + m_Layer: 5 + m_Name: IntroText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2004170552186592563 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6115775414925960720} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.999785, y: 0.999785, z: 0.999785} + m_Children: [] + m_Father: {fileID: 8851696778185281188} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -4.0998535, y: 196.5} + m_SizeDelta: {x: -38.7, y: -628.9} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &62052315683608685 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6115775414925960720} + m_CullTransparentMesh: 0 +--- !u!114 &249438427514954613 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6115775414925960720} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: 'When you try to show a Panel or open a Window, you can optionally pass + a data payload in the form of Properties. This is strongly-typed + to your Screen Controller implementation. + + + Try selecting the PlayerData ScriptableObject in the Assets + folder and changing the values.' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4280751617 + m_fontColor: {r: 0.003921569, g: 0.08627451, b: 0.15294118, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 36 + m_fontSizeBase: 20.1 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 36 + m_fontStyle: 0 + m_textAlignment: 264 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 249438427514954613} + characterCount: 270 + spriteCount: 0 + spaceCount: 44 + wordCount: 44 + linkCount: 0 + lineCount: 4 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 0 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &6346683789928858383 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4031016202203192196} + - component: {fileID: 4027351722747265541} + - component: {fileID: 7852375130334150131} + m_Layer: 5 + m_Name: LevelIndexLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4031016202203192196 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6346683789928858383} + 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: 7912753963192915857} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 56.3} + m_SizeDelta: {x: 0, y: 56.3} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &4027351722747265541 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6346683789928858383} + m_CullTransparentMesh: 0 +--- !u!114 &7852375130334150131 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6346683789928858383} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Level 1 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294770685 + m_fontColor: {r: 0.99215686, g: 1, b: 0.9882353, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 33.67 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 33.67 + m_fontStyle: 0 + m_textAlignment: 1025 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 7852375130334150131} + characterCount: 7 + spriteCount: 0 + spaceCount: 1 + wordCount: 2 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7419898297510125101 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5740328975745033253} + - component: {fileID: 1568288369731270101} + - component: {fileID: 966256418741535635} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5740328975745033253 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7419898297510125101} + 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: 4977659711642189355} + 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: 6.0024414, y: 0} + m_SizeDelta: {x: -11.995, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1568288369731270101 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7419898297510125101} + m_CullTransparentMesh: 0 +--- !u!114 &966256418741535635 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7419898297510125101} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Player Data + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 72 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 513 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 966256418741535635} + characterCount: 11 + spriteCount: 0 + spaceCount: 1 + wordCount: 2 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 0 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7539472005144123168 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4881746514993451955} + - component: {fileID: 4309508750081305987} + - component: {fileID: 5121026959206732308} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4881746514993451955 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7539472005144123168} + 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: 3104214900912094684} + 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: 6.0024414, y: 0} + m_SizeDelta: {x: -11.995, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4309508750081305987 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7539472005144123168} + m_CullTransparentMesh: 0 +--- !u!114 &5121026959206732308 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7539472005144123168} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Player Progress + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 54.15 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 513 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 5121026959206732308} + characterCount: 15 + spriteCount: 0 + spaceCount: 1 + wordCount: 2 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 0 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7678775063965960122 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7912753963192915857} + - component: {fileID: 4196643834492405247} + - component: {fileID: 4278769868453422948} + - component: {fileID: 692316391990440636} + m_Layer: 5 + m_Name: LevelTemplate + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7912753963192915857 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7678775063965960122} + 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: 1918934331247620334} + - {fileID: 3214048987722163941} + - {fileID: 4031016202203192196} + m_Father: {fileID: 6759501883784738004} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 841.9999, y: -168.14075} + m_SizeDelta: {x: 282.52, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4196643834492405247 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7678775063965960122} + m_CullTransparentMesh: 0 +--- !u!114 &4278769868453422948 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7678775063965960122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.003921569, g: 0.08627451, b: 0.15294118, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &692316391990440636 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7678775063965960122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b3c8348a523d4f90a0152195738c1913, type: 3} + m_Name: + m_EditorClassIdentifier: + levelCounter: {fileID: 7852375130334150131} + levelName: {fileID: 3413460598377202260} + stars: + - {fileID: 5713505119834701780} + - {fileID: 3576428130086223266} + - {fileID: 4171582378135474077} + starOn: {r: 1, g: 0.62352943, b: 0.10980392, a: 1} + starOff: {r: 0.46226418, g: 0.31379867, b: 0.11120505, a: 0.28627452} +--- !u!1 &9093027656753650742 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1918934331247620334} + - component: {fileID: 34498838429484951} + m_Layer: 5 + m_Name: Stars + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1918934331247620334 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9093027656753650742} + 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: 8797667699978929283} + - {fileID: 7690390644638995461} + - {fileID: 9060108410771046117} + m_Father: {fileID: 7912753963192915857} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 8} + m_SizeDelta: {x: 0, y: 57.899994} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &34498838429484951 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9093027656753650742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/PlayerWindow.prefab.meta b/Assets/UIFrameworkExamples/Prefabs/Screens/PlayerWindow.prefab.meta new file mode 100644 index 0000000..29af67e --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/PlayerWindow.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 88f2f76f2f0c8c640930f0bc9d5974c7 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/PopupExampleWindow.prefab b/Assets/UIFrameworkExamples/Prefabs/Screens/PopupExampleWindow.prefab new file mode 100644 index 0000000..8bde5bc --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/PopupExampleWindow.prefab @@ -0,0 +1,973 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1002823885256948607 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9062628783331547175} + - component: {fileID: 720505279706231423} + - component: {fileID: 6725664635751171063} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9062628783331547175 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1002823885256948607} + 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: 891527111526010016} + 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: 6.0024414, y: 0} + m_SizeDelta: {x: -11.995, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &720505279706231423 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1002823885256948607} + m_CullTransparentMesh: 0 +--- !u!114 &6725664635751171063 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1002823885256948607} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Dynamically changing your UI by its payload + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 72 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 513 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 6725664635751171063} + characterCount: 43 + spriteCount: 0 + spaceCount: 6 + wordCount: 7 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 0 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1005113949833716428 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 79341957293992841} + - component: {fileID: 7362419291603315165} + - component: {fileID: 5593745571717137771} + m_Layer: 5 + m_Name: IntroText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &79341957293992841 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1005113949833716428} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.999785, y: 0.999785, z: 0.999785} + m_Children: [] + m_Father: {fileID: 1592699385560224675} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -4.0999756, y: 46.5} + m_SizeDelta: {x: -38.7, y: -328.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7362419291603315165 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1005113949833716428} + m_CullTransparentMesh: 0 +--- !u!114 &5593745571717137771 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1005113949833716428} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: 'If you''re not used to the idea of passing a payload to the UI, it might + seem like too much of a hassle, but it helps you separate your concerns and reduce + coupling. Also, nothing stops you from passing in parameters that are very dynamic + into the payload. + + + An example is this Warning Pop-Up that has multiple formats depending on the payload + that you pass onto it. Notice also that the popup itself doesn''t have any code + for darkening the screen; that is all controlled by the UI Framework itself (because + the prefab is set up to be a Pop-Up). + + + Click the button below a few times, then check the code in ConfirmationPopupController.cs' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4280751617 + m_fontColor: {r: 0.003921569, g: 0.08627451, b: 0.15294118, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 36 + m_fontSizeBase: 20.1 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 36 + m_fontStyle: 0 + m_textAlignment: 264 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 5593745571717137771} + characterCount: 634 + spriteCount: 0 + spaceCount: 114 + wordCount: 114 + linkCount: 0 + lineCount: 9 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 0 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1204044405225998084 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 891527111526010016} + - component: {fileID: 804833496510288715} + - component: {fileID: 8125648841458191973} + m_Layer: 5 + m_Name: Topbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &891527111526010016 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1204044405225998084} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.999785, y: 0.999785, z: 0.999785} + m_Children: + - {fileID: 9062628783331547175} + m_Father: {fileID: 1592699385560224675} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.000061035156} + m_SizeDelta: {x: 0, y: 106.5} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &804833496510288715 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1204044405225998084} + m_CullTransparentMesh: 0 +--- !u!114 &8125648841458191973 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1204044405225998084} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &3390277017725746816 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7001613120975603558} + - component: {fileID: 6360807371090085804} + - component: {fileID: 7695741950601372303} + - component: {fileID: 2954652659060446683} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7001613120975603558 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3390277017725746816} + 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: 8481937330075508293} + m_Father: {fileID: 1592699385560224675} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 44} + m_SizeDelta: {x: 243.7, y: 115.399994} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &6360807371090085804 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3390277017725746816} + m_CullTransparentMesh: 0 +--- !u!114 &7695741950601372303 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3390277017725746816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &2954652659060446683 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3390277017725746816} + 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: 7695741950601372303} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 4695726644735509897} + m_MethodName: UI_ShowPopup + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &3757599129449982355 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8481937330075508293} + - component: {fileID: 7429131403510127783} + - component: {fileID: 3255138022254089630} + m_Layer: 5 + m_Name: ButtonLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8481937330075508293 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3757599129449982355} + 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: 7001613120975603558} + 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!222 &7429131403510127783 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3757599129449982355} + m_CullTransparentMesh: 0 +--- !u!114 &3255138022254089630 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3757599129449982355} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: CLICK ME + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281736679 + m_fontColor: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 36 + m_fontSizeBase: 33.9 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 36 + m_fontStyle: 1 + m_textAlignment: 514 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 3255138022254089630} + characterCount: 8 + spriteCount: 0 + spaceCount: 1 + wordCount: 2 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 0 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3935725966173123278 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1592699385560224675} + - component: {fileID: 4985577868204544989} + - component: {fileID: 6821888608635697897} + - component: {fileID: 4695726644735509897} + m_Layer: 5 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1592699385560224675 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3935725966173123278} + 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: 891527111526010016} + - {fileID: 7001613120975603558} + - {fileID: 4183705689204613110} + - {fileID: 79341957293992841} + m_Father: {fileID: 6618921005439021551} + 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: 75} + m_SizeDelta: {x: -200, y: -250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4985577868204544989 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3935725966173123278} + m_CullTransparentMesh: 0 +--- !u!114 &6821888608635697897 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3935725966173123278} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &4695726644735509897 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3935725966173123278} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bdb359b15cef456c87b9d85d0d8a9239, type: 3} + m_Name: + m_EditorClassIdentifier: + animIn: {fileID: 0} + animOut: {fileID: 0} + properties: + hideOnForegroundLost: 1 + windowPriority: 1 + isPopup: 0 + exampleImage: {fileID: 263141639975866240} +--- !u!1 &5091399288710801064 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4183705689204613110} + - component: {fileID: 9023979182031243688} + - component: {fileID: 263141639975866240} + m_Layer: 5 + m_Name: ExampleImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4183705689204613110 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5091399288710801064} + 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: 1592699385560224675} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: -261, y: 0} + m_SizeDelta: {x: 195.8, y: 195.8} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &9023979182031243688 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5091399288710801064} + m_CullTransparentMesh: 0 +--- !u!114 &263141639975866240 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5091399288710801064} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.003921569, g: 0.08627451, b: 0.15294118, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 5fe371a3d11c56d4b877ee4f70d9117e, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &8890043933281423490 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6618921005439021551} + - component: {fileID: 644316678112227729} + - component: {fileID: 931071617374660549} + - component: {fileID: 6163870475183305832} + - component: {fileID: 115853013980129834} + m_Layer: 5 + m_Name: PopupExampleWindow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6618921005439021551 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8890043933281423490} + 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: 1592699385560224675} + m_Father: {fileID: 0} + 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!222 &644316678112227729 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8890043933281423490} + m_CullTransparentMesh: 0 +--- !u!114 &931071617374660549 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8890043933281423490} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bdb359b15cef456c87b9d85d0d8a9239, type: 3} + m_Name: + m_EditorClassIdentifier: + animIn: {fileID: 6163870475183305832} + animOut: {fileID: 115853013980129834} + properties: + hideOnForegroundLost: 1 + windowPriority: 1 + isPopup: 0 + exampleImage: {fileID: 263141639975866240} +--- !u!114 &6163870475183305832 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8890043933281423490} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f0ffd164e4450f439d7c219e6c88ce7, type: 3} + m_Name: + m_EditorClassIdentifier: + origin: 4 + isOutAnimation: 0 + duration: 0.5 + doFade: 1 + fadeDurationPercent: 0.5 + ease: 30 +--- !u!114 &115853013980129834 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8890043933281423490} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f0ffd164e4450f439d7c219e6c88ce7, type: 3} + m_Name: + m_EditorClassIdentifier: + origin: 2 + isOutAnimation: 1 + duration: 0.25 + doFade: 1 + fadeDurationPercent: 0.5 + ease: 1 diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/PopupExampleWindow.prefab.meta b/Assets/UIFrameworkExamples/Prefabs/Screens/PopupExampleWindow.prefab.meta new file mode 100644 index 0000000..6588392 --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/PopupExampleWindow.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e7d17039446a5ac41afee18e47ffc57f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/StartGameWindow.prefab b/Assets/UIFrameworkExamples/Prefabs/Screens/StartGameWindow.prefab new file mode 100644 index 0000000..7cf0236 --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/StartGameWindow.prefab @@ -0,0 +1,576 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &310697271487929409 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2527882790160811346} + - component: {fileID: 7485823179086053036} + - component: {fileID: 1557744524710383312} + m_Layer: 5 + m_Name: StartLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2527882790160811346 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 310697271487929409} + 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: 8294762724504813984} + 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!222 &7485823179086053036 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 310697271487929409} + m_CullTransparentMesh: 0 +--- !u!114 &1557744524710383312 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 310697271487929409} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Start Tour + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4280751617 + m_fontColor: {r: 0.003921569, g: 0.08627451, b: 0.15294118, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 59.45 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 59.47 + m_fontStyle: 0 + m_textAlignment: 514 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 1557744524710383312} + characterCount: 10 + spriteCount: 0 + spaceCount: 1 + wordCount: 2 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 0 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &6881516711535211617 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3850208934447900450} + - component: {fileID: 4027760820032064193} + - component: {fileID: 8508450983391758977} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3850208934447900450 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6881516711535211617} + 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: 8749973151181950828} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 161.69} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &4027760820032064193 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6881516711535211617} + m_CullTransparentMesh: 0 +--- !u!114 &8508450983391758977 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6881516711535211617} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: deVoid UI Framework Examples + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281736679 + m_fontColor: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 80.9 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 80.9 + m_fontStyle: 1 + m_textAlignment: 514 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 0} + characterCount: 28 + spriteCount: 0 + spaceCount: 3 + wordCount: 4 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 0 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7585138635245549005 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8294762724504813984} + - component: {fileID: 7921261570443125120} + - component: {fileID: 7739891487745903936} + - component: {fileID: 7281940551429234777} + m_Layer: 5 + m_Name: StartButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8294762724504813984 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7585138635245549005} + 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: 2527882790160811346} + m_Father: {fileID: 8749973151181950828} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: -0.0000030994415, y: 72.91} + m_SizeDelta: {x: 487.4, y: 141.6} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &7921261570443125120 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7585138635245549005} + m_CullTransparentMesh: 0 +--- !u!114 &7739891487745903936 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7585138635245549005} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &7281940551429234777 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7585138635245549005} + 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: 7739891487745903936} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 6812951680411409494} + m_MethodName: UI_Start + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!1 &7617306793594988998 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8749973151181950828} + - component: {fileID: 7451711150524851965} + - component: {fileID: 8614912029994708458} + - component: {fileID: 6812951680411409494} + - component: {fileID: 7772959813813847272} + - component: {fileID: 3947463569980931984} + m_Layer: 5 + m_Name: MainMenuWindow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8749973151181950828 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7617306793594988998} + 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: 3850208934447900450} + - {fileID: 8294762724504813984} + m_Father: {fileID: 0} + 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: 25} + m_SizeDelta: {x: -300, y: -250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7451711150524851965 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7617306793594988998} + m_CullTransparentMesh: 0 +--- !u!114 &8614912029994708458 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7617306793594988998} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.99215686, g: 1, b: 0.9882353, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &6812951680411409494 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7617306793594988998} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 18cc5984687341548acdac6ef7ea7e6b, type: 3} + m_Name: + m_EditorClassIdentifier: + animIn: {fileID: 7772959813813847272} + animOut: {fileID: 3947463569980931984} + properties: + hideOnForegroundLost: 1 + windowPriority: 1 + isPopup: 0 +--- !u!114 &7772959813813847272 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7617306793594988998} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f9739af8e894b7b8db28faf4bb2114d, type: 3} + m_Name: + m_EditorClassIdentifier: + fadeDuration: 1 + fadeOut: 0 +--- !u!114 &3947463569980931984 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7617306793594988998} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f9739af8e894b7b8db28faf4bb2114d, type: 3} + m_Name: + m_EditorClassIdentifier: + fadeDuration: 0.25 + fadeOut: 1 diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/StartGameWindow.prefab.meta b/Assets/UIFrameworkExamples/Prefabs/Screens/StartGameWindow.prefab.meta new file mode 100644 index 0000000..1516ac5 --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/StartGameWindow.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0a680a728e2bff444bd5b6b236aac4ee +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/ThreeDExample.prefab b/Assets/UIFrameworkExamples/Prefabs/Screens/ThreeDExample.prefab new file mode 100644 index 0000000..a5aedf5 --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/ThreeDExample.prefab @@ -0,0 +1,5560 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &98919773506510623 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8510129808855734869} + - component: {fileID: 221341594774490267} + - component: {fileID: 6656016783461502867} + m_Layer: 5 + m_Name: Topbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8510129808855734869 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98919773506510623} + 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: 8609200798398640552} + m_Father: {fileID: 1011405989867418180} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 106.5} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &221341594774490267 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98919773506510623} + m_CullTransparentMesh: 0 +--- !u!114 &6656016783461502867 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98919773506510623} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &1807298226610486564 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1757428579225915418} + m_Layer: 5 + m_Name: CubeContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1757428579225915418 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1807298226610486564} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -76} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3002787342056332443} + m_Father: {fileID: 1011405989867418180} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 40.620003} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: -142} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3354577186298565417 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1011405989867418180} + - component: {fileID: 6711224828416930362} + - component: {fileID: 5097912390384655118} + - component: {fileID: 5270801028528848020} + - component: {fileID: 9141157222543811983} + - component: {fileID: 7453661503186017305} + - component: {fileID: 550862453059069657} + m_Layer: 5 + m_Name: ThreeDExample + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1011405989867418180 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3354577186298565417} + 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: 8510129808855734869} + - {fileID: 101810048670895464} + - {fileID: 1757428579225915418} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -26.235} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 75} + m_SizeDelta: {x: -200, y: -250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6711224828416930362 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3354577186298565417} + m_CullTransparentMesh: 0 +--- !u!114 &5097912390384655118 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3354577186298565417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &5270801028528848020 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3354577186298565417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dfde723a98b24660a740ac83905f195e, type: 3} + m_Name: + m_EditorClassIdentifier: + animIn: {fileID: 7453661503186017305} + animOut: {fileID: 550862453059069657} + properties: + hideOnForegroundLost: 1 + windowPriority: 1 + isPopup: 0 +--- !u!111 &9141157222543811983 +Animation: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3354577186298565417} + m_Enabled: 1 + serializedVersion: 3 + m_Animation: {fileID: 0} + m_Animations: + - {fileID: 7400000, guid: c57e754a0613a714584cc84ba36b9850, type: 2} + m_WrapMode: 0 + m_PlayAutomatically: 0 + m_AnimatePhysics: 0 + m_CullingType: 0 +--- !u!114 &7453661503186017305 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3354577186298565417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 09bbc675c80bb4a4c81b3a98d595de4f, type: 3} + m_Name: + m_EditorClassIdentifier: + clip: {fileID: 7400000, guid: c57e754a0613a714584cc84ba36b9850, type: 2} + playReverse: 0 +--- !u!114 &550862453059069657 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3354577186298565417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f0ffd164e4450f439d7c219e6c88ce7, type: 3} + m_Name: + m_EditorClassIdentifier: + origin: 1 + isOutAnimation: 1 + duration: 0.2 + doFade: 0 + fadeDurationPercent: 0.5 + ease: 1 +--- !u!1 &5524082136175353845 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8609200798398640552} + - component: {fileID: 4285746058787129464} + - component: {fileID: 4674969595703324561} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8609200798398640552 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5524082136175353845} + 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: 8510129808855734869} + 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: 6.0024414, y: 0} + m_SizeDelta: {x: -11.995, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4285746058787129464 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5524082136175353845} + m_CullTransparentMesh: 0 +--- !u!114 &4674969595703324561 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5524082136175353845} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Why should you use Screenspace-Camera? + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 72 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 513 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 4674969595703324561} + characterCount: 38 + spriteCount: 0 + spaceCount: 4 + wordCount: 5 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 0 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &6229844064144893533 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3002787342056332443} + - component: {fileID: 7717947496556902187} + m_Layer: 5 + m_Name: Mover + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3002787342056332443 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6229844064144893533} + 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: 7793025421541178745} + - {fileID: 7028266311933527890} + m_Father: {fileID: 1757428579225915418} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7717947496556902187 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6229844064144893533} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 190344ed5d8d33b42951e2311f8aad96, type: 3} + m_Name: + m_EditorClassIdentifier: + minMaxPosition: {x: -500, y: 500} + speed: 2 + minMaxPositionY: {x: 0, y: 0} + speedY: 0 + rotationSpeed: {x: 0, y: 0, z: 0} +--- !u!1 &6268285490808836184 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7793025421541178745} + - component: {fileID: 6174324025851701120} + - component: {fileID: 5687793674713780647} + m_Layer: 5 + m_Name: Particle System + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7793025421541178745 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6268285490808836184} + m_LocalRotation: {x: -0.88884985, y: -0, z: -0, w: 0.45819864} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3002787342056332443} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -125.45799, 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} +--- !u!198 &6174324025851701120 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6268285490808836184} + serializedVersion: 6 + lengthInSec: 5 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 1 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.91 + minScalar: 5 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 7.77 + minScalar: 5 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 0.62352943, b: 0.10980392, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, 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 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, 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 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 1000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 2.33 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 4 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 10 + minScalar: 10 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0.95213556, g: 1, b: 0, a: 1} + key1: {r: 0.9764706, g: 0, b: 0.9343466, a: 1} + key2: {r: 1, 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: 33731 + ctime2: 65535 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 65535 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 3 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, 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 + UVModule: + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + randomRow: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + enabled: 0 + multiplier: 1 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 0 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.5 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, 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 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, 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 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 3 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + plane0: {fileID: 0} + plane1: {fileID: 0} + plane2: {fileID: 0} + plane3: {fileID: 0} + plane4: {fileID: 0} + plane5: {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + collisionShape0: {fileID: 0} + collisionShape1: {fileID: 0} + collisionShape2: {fileID: 0} + collisionShape3: {fileID: 0} + collisionShape4: {fileID: 0} + collisionShape5: {fileID: 0} + inside: 1 + outside: 0 + enter: 0 + exit: 0 + radiusScale: 1 + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, 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 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, 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 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + 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: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, 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 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, 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 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, 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 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, 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 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, 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 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, 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 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &5687793674713780647 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6268285490808836184} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: bf1b8bb369da6a44d8bd4265254615d0, type: 2} + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 0 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 +--- !u!1 &7822190286887423806 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 101810048670895464} + - component: {fileID: 3823127532037936604} + - component: {fileID: 4799653581387038198} + m_Layer: 5 + m_Name: IntroText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &101810048670895464 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7822190286887423806} + 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: 1011405989867418180} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -4.0999756, y: -30.2} + m_SizeDelta: {x: -38.7, y: -175.3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3823127532037936604 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7822190286887423806} + m_CullTransparentMesh: 0 +--- !u!114 &4799653581387038198 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7822190286887423806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: "The UI Framework doesn't really care how you deal with this (as a matter + of fact, you could have an UI Frame in a Worldspace UI), but + as a rule of thumb, I always use Screenspace Camera for on-screen UI. \n\nThe + advantage is that you can directly add other Unity elements like 3d objects, line + renderers and particle systems directly in the UI prefabs. You'll be limited by + the fact that the UI is using an Ortographic camera and that you'll need to tweak + shaders if you need transparency, but it can save you the cost of using RenderTextures + and allows you to have things like post-processing effects directly on your UI + Camera." + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4280751617 + m_fontColor: {r: 0.003921569, g: 0.08627451, b: 0.15294118, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 36 + m_fontSizeBase: 20.1 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 36 + m_fontStyle: 0 + m_textAlignment: 264 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 4799653581387038198} + characterCount: 627 + spriteCount: 0 + spaceCount: 114 + wordCount: 113 + linkCount: 0 + lineCount: 7 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 0 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &8776202272283587063 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7028266311933527890} + - component: {fileID: 1037815268308363406} + - component: {fileID: 4831036298055440590} + - component: {fileID: 4825614968240082308} + - component: {fileID: 8950396346978655838} + m_Layer: 5 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7028266311933527890 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8776202272283587063} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 3002787342056332443} + m_RootOrder: 1 + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!33 &1037815268308363406 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8776202272283587063} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4831036298055440590 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8776202272283587063} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, 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_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!114 &4825614968240082308 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8776202272283587063} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 190344ed5d8d33b42951e2311f8aad96, type: 3} + m_Name: + m_EditorClassIdentifier: + minMaxPosition: {x: 0, y: 0} + speed: 0 + minMaxPositionY: {x: 0, y: 0} + speedY: 0 + rotationSpeed: {x: 50, y: 50, z: 50} +--- !u!96 &8950396346978655838 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8776202272283587063} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 07392310de2491d4a902ee93d342ba79, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Time: 0.5 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.9148941 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.3921445 + value: 0.5659128 + inSlope: -1.1915672 + outSlope: -1.1915672 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.3357376 + - serializedVersion: 3 + time: 0.9823789 + value: 0.14893615 + inSlope: -0.8720446 + outSlope: -0.8720446 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.16143504 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0.90588236, g: 0.11372549, b: 0.21176471, a: 1} + key1: {r: 1, g: 0.62352943, b: 0.10980392, a: 0} + key2: {r: 1, g: 1, b: 1, 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: 50693 + 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 diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/ThreeDExample.prefab.meta b/Assets/UIFrameworkExamples/Prefabs/Screens/ThreeDExample.prefab.meta new file mode 100644 index 0000000..c27036a --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/ThreeDExample.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 80be0c317fa558843b7df437ee48c2ae +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/ToastPanel.prefab b/Assets/UIFrameworkExamples/Prefabs/Screens/ToastPanel.prefab new file mode 100644 index 0000000..ddc7acd --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/ToastPanel.prefab @@ -0,0 +1,455 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &510292907285894001 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8987037450507234914} + - component: {fileID: 345835162038094348} + - component: {fileID: 6804735848887098402} + m_Layer: 5 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8987037450507234914 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 510292907285894001} + 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: 4933371486452348570} + - {fileID: 7835963586836779705} + m_Father: {fileID: 795429926949686570} + 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: 2.5} + m_SizeDelta: {x: -10, y: -5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &345835162038094348 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 510292907285894001} + m_CullTransparentMesh: 0 +--- !u!114 &6804735848887098402 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 510292907285894001} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.003921569, g: 0.08627451, b: 0.15294118, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &2198531993298414313 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5924150215548257719} + - component: {fileID: 4705433561442730310} + - component: {fileID: 2582112438795701029} + m_Layer: 5 + m_Name: ToastPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5924150215548257719 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2198531993298414313} + 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: 795429926949686570} + m_Father: {fileID: 0} + 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!222 &4705433561442730310 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2198531993298414313} + m_CullTransparentMesh: 0 +--- !u!114 &2582112438795701029 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2198531993298414313} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8605f786ebb9fa438c790fd56239290, type: 3} + m_Name: + m_EditorClassIdentifier: + animIn: {fileID: 0} + animOut: {fileID: 0} + properties: + priority: 1 + toastRect: {fileID: 795429926949686570} + toastDuration: 0.5 + toastPause: 3 + toastEase: 12 +--- !u!1 &3826402163125325674 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 795429926949686570} + - component: {fileID: 4184129144206520126} + - component: {fileID: 179584529989483029} + m_Layer: 5 + m_Name: Toast + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &795429926949686570 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3826402163125325674} + 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: 8987037450507234914} + m_Father: {fileID: 5924150215548257719} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 150} + m_SizeDelta: {x: 800, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &4184129144206520126 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3826402163125325674} + m_CullTransparentMesh: 0 +--- !u!114 &179584529989483029 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3826402163125325674} + 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: 0.62352943, b: 0.10980392, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &8295418785191436969 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7835963586836779705} + - component: {fileID: 1739484401099992863} + - component: {fileID: 2358262474515053837} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7835963586836779705 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8295418785191436969} + 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: 8987037450507234914} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 59.700012, y: -0.0000076293945} + m_SizeDelta: {x: -162.9, y: -24.4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1739484401099992863 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8295418785191436969} + m_CullTransparentMesh: 0 +--- !u!114 &2358262474515053837 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8295418785191436969} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: 'ACHIEVEMENT UNLOCKED: + + Changing Player Data' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 513 + m_isAlignmentEnumConverted: 1 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 2358262474515053837} + characterCount: 42 + spriteCount: 0 + spaceCount: 4 + wordCount: 5 + linkCount: 0 + lineCount: 2 + pageCount: 1 + materialCount: 1 + m_havePropertiesChanged: 0 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_isInputParsingRequired: 0 + m_inputSource: 0 + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &8564901647309102806 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4933371486452348570} + - component: {fileID: 63720739359059336} + - component: {fileID: 3463217483843096014} + m_Layer: 5 + m_Name: Smiley + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4933371486452348570 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8564901647309102806} + 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: 8987037450507234914} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 22, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &63720739359059336 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8564901647309102806} + m_CullTransparentMesh: 0 +--- !u!114 &3463217483843096014 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8564901647309102806} + 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: 0.62352943, b: 0.10980392, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 5fe371a3d11c56d4b877ee4f70d9117e, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 diff --git a/Assets/UIFrameworkExamples/Prefabs/Screens/ToastPanel.prefab.meta b/Assets/UIFrameworkExamples/Prefabs/Screens/ToastPanel.prefab.meta new file mode 100644 index 0000000..6125ef8 --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/Screens/ToastPanel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5637ec63a9899c340abe04789b5fa363 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Prefabs/UIFrame.prefab b/Assets/UIFrameworkExamples/Prefabs/UIFrame.prefab new file mode 100644 index 0000000..1af4cb3 --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/UIFrame.prefab @@ -0,0 +1,559 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1985850983345001446 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 310472267987625303} + m_Layer: 5 + m_Name: PriorityPanelLayer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &310472267987625303 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1985850983345001446} + 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: 8599660085001212290} + m_RootOrder: 4 + 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!1 &2065264217840043533 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6573608478759487928} + - component: {fileID: 7700543320284888609} + m_Layer: 5 + m_Name: PriorityWindowLayer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6573608478759487928 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2065264217840043533} + 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: 2987103639935370902} + m_Father: {fileID: 8599660085001212290} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7700543320284888609 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2065264217840043533} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a90c3299e98eab34bb731538858f57e7, type: 3} + m_Name: + m_EditorClassIdentifier: + darkenBgObject: {fileID: 3825505896469302027} +--- !u!1 &2769530639012317696 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7700777384375926989} + - component: {fileID: 6264142245743544120} + m_Layer: 5 + m_Name: WindowLayer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7700777384375926989 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2769530639012317696} + 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: 8599660085001212290} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6264142245743544120 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2769530639012317696} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e58584fae0250804580bdeaee2c0a479, type: 3} + m_Name: + m_EditorClassIdentifier: + priorityParaLayer: {fileID: 7700543320284888609} +--- !u!1 &3825505896469302027 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2987103639935370902} + - component: {fileID: 2873740012033911796} + - component: {fileID: 4139780519250603708} + m_Layer: 5 + m_Name: DarkenBG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2987103639935370902 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3825505896469302027} + 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: 6573608478759487928} + 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!222 &2873740012033911796 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3825505896469302027} + m_CullTransparentMesh: 0 +--- !u!114 &4139780519250603708 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3825505896469302027} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.78431374} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &3940090283735938056 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1994109017947380173} + - component: {fileID: 7843379768279424496} + m_Layer: 5 + m_Name: PanelLayer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1994109017947380173 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3940090283735938056} + 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: 8599660085001212290} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7843379768279424496 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3940090283735938056} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3192e4f9ae2f1d7468c1a8b4ec79c8df, type: 3} + m_Name: + m_EditorClassIdentifier: + priorityLayers: + paraLayers: + - priority: 0 + targetParent: {fileID: 1994109017947380173} + - priority: 1 + targetParent: {fileID: 310472267987625303} + - priority: 2 + targetParent: {fileID: 291234465181832256} +--- !u!1 &4496382984029757211 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1586450253346379796} + - component: {fileID: 1190310783983262933} + - component: {fileID: 5490129030880833646} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1586450253346379796 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4496382984029757211} + 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: 8599660085001212290} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1190310783983262933 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4496382984029757211} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!114 &5490129030880833646 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4496382984029757211} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!1 &5165930534265230394 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8599660085001212290} + - component: {fileID: 358001020665244776} + - component: {fileID: 2818863584460791390} + - component: {fileID: 422667887317154571} + - component: {fileID: 1307850561927095324} + m_Layer: 5 + m_Name: UIFrame + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8599660085001212290 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5165930534265230394} + 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: 3238111362008383974} + - {fileID: 1586450253346379796} + - {fileID: 1994109017947380173} + - {fileID: 7700777384375926989} + - {fileID: 310472267987625303} + - {fileID: 6573608478759487928} + - {fileID: 291234465181832256} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &358001020665244776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5165930534265230394} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cdc8dba95123fb24c805dbd32dc633ad, type: 3} + m_Name: + m_EditorClassIdentifier: + initializeOnAwake: 1 +--- !u!223 &2818863584460791390 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5165930534265230394} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 1 + m_Camera: {fileID: 7874057041211495143} + 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!114 &422667887317154571 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5165930534265230394} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &1307850561927095324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5165930534265230394} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &5283807304502250602 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 291234465181832256} + m_Layer: 5 + m_Name: TutorialPanelLayer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &291234465181832256 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5283807304502250602} + 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: 8599660085001212290} + m_RootOrder: 6 + 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!1 &5454055171282583702 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3238111362008383974} + - component: {fileID: 7874057041211495143} + m_Layer: 0 + m_Name: UICamera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3238111362008383974 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5454055171282583702} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -1500} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8599660085001212290} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!20 &7874057041211495143 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5454055171282583702} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 3 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 25 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 32 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 diff --git a/Assets/UIFrameworkExamples/Prefabs/UIFrame.prefab.meta b/Assets/UIFrameworkExamples/Prefabs/UIFrame.prefab.meta new file mode 100644 index 0000000..831a355 --- /dev/null +++ b/Assets/UIFrameworkExamples/Prefabs/UIFrame.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8ff5283766dd8614a8838c8489cb528c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts.meta b/Assets/UIFrameworkExamples/Scripts.meta new file mode 100644 index 0000000..eba476f --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b5aaa3eac56b0e40b1fa7c6b345dc46 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/Editor.meta b/Assets/UIFrameworkExamples/Scripts/Editor.meta new file mode 100644 index 0000000..76cf6b4 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 94d3c2c64a33df64e956e17c3c1be1d0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/Editor/ScreenIdGenerator.cs b/Assets/UIFrameworkExamples/Scripts/Editor/ScreenIdGenerator.cs new file mode 100644 index 0000000..17fdb44 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/Editor/ScreenIdGenerator.cs @@ -0,0 +1,130 @@ +using System.CodeDom; +using System.CodeDom.Compiler; +using System.Collections.Generic; +using System.IO; +using System.Reflection; +using UnityEditor; +using UnityEngine; + +namespace deVoid.UIFramework.Editor +{ + /// + /// It's way less error prone to have constants for your UI instead of directly typing in ids. + /// This utility searches through a folder for Screen prefabs and creates a class with Screen Id constants + /// based on their names. That way you can do eg: + /// + /// UIFrame.OpenWindow(ScreenIds.ItsAWindow); + /// + /// instead of wondering for ages why + /// + /// UIFrame.OpenWindow("ltsAWindow"); + /// + /// isn't working. It isn't a perfect solution, however: if you rename prefabs, you may have to refactor part + /// of your code. You could also manually define these and use an asset postprocessor to validate it and warn + /// if the data is stale, or just do it manually. The solution below is my current favourite local maximum. + /// + public class ScreenIdProcessor : AssetPostprocessor + { + private const string UIPrefabFolder = "Assets/UIFrameworkExamples/Prefabs/Screens"; + private const string UIIdScriptFolder = "Assets/UIFrameworkExamples/Scripts"; + private const string ScreenIdScriptName = "ScreenIds"; + private const string ScreenIdScriptNamespace = "deVoid.UIFramework.Examples"; + + [MenuItem("Assets/Create/deVoid UI/Re-generate UI ScreenIds")] + public static void RegenerateScreenIdsAndRefresh() { + RegenerateScreenIds(true); + } + + private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, + string[] movedAssets, string[] movedFromAssetPaths) { + foreach (string str in importedAssets) { + if (str.Contains(UIPrefabFolder)) { + RegenerateScreenIds(true); + return; + } + } + + foreach (string str in deletedAssets) { + if (str.Contains(UIPrefabFolder)) { + RegenerateScreenIds(true); + return; + } + } + + for (int i = 0; i < movedAssets.Length; i++) { + if (movedAssets[i].Contains(UIPrefabFolder) + || movedFromAssetPaths[i].Contains(UIPrefabFolder)) { + RegenerateScreenIds(true); + return; + } + } + } + + public static void RegenerateScreenIds(bool refreshAssetDatabase) { + Dictionary paths = new Dictionary(); + var assets = AssetDatabase.FindAssets("t:prefab", new[] {UIPrefabFolder}); + foreach (var asset in assets) { + string path = AssetDatabase.GUIDToAssetPath(asset); + var go = AssetDatabase.LoadAssetAtPath(path); + var screenController = go.GetComponent(); + var name = go.name.Replace(" ", string.Empty); + if (screenController != null) { + if (paths.ContainsKey(name)) { + Debug.LogError( + string.Format( + "You have multiple screen prefabs with the same name: {0}! Locations: (1){1}, (2){2}", + name, paths[name], path)); + } + else { + paths.Add(name, path); + Debug.Log(string.Format("Registering {0} as {1}", path, name)); + } + } + } + + var scripts = AssetDatabase.FindAssets(string.Format("t:script {0}", ScreenIdScriptName), new[] {UIIdScriptFolder}); + if (scripts.Length > 0) { + string filePath = AssetDatabase.GUIDToAssetPath(scripts[0]); + WriteIdClass(paths, filePath); + if (refreshAssetDatabase) { + AssetDatabase.Refresh(); + } + } + else { + Debug.LogError("Could not find ScreenIds script file! Create the file and try again."); + } + } + + private static void WriteIdClass(Dictionary idPaths, string filePath) { + var targetUnit = new CodeCompileUnit(); + var codeNamespace = new CodeNamespace(ScreenIdScriptNamespace); + var targetClass = new CodeTypeDeclaration(ScreenIdScriptName) { + IsClass = true, + TypeAttributes = TypeAttributes.Public | TypeAttributes.Sealed + }; + + codeNamespace.Types.Add(targetClass); + targetUnit.Namespaces.Add(codeNamespace); + + foreach (var idPathPair in idPaths) { + var idField = new CodeMemberField(typeof(string), idPathPair.Key) { + Attributes = MemberAttributes.Public | MemberAttributes.Const, + InitExpression = new CodePrimitiveExpression(idPathPair.Key) + }; + + targetClass.Members.Add(idField); + } + + GenerateCSharpCode(targetUnit, filePath); + } + + private static void GenerateCSharpCode(CodeCompileUnit targetUnit, string fileName) { + var provider = CodeDomProvider.CreateProvider("CSharp"); + var options = new CodeGeneratorOptions(); + + using (var sourceWriter = new StreamWriter(fileName)) { + provider.GenerateCodeFromCompileUnit(targetUnit, sourceWriter, options); + } + } + } +} diff --git a/Assets/UIFrameworkExamples/Scripts/Editor/ScreenIdGenerator.cs.meta b/Assets/UIFrameworkExamples/Scripts/Editor/ScreenIdGenerator.cs.meta new file mode 100644 index 0000000..f213a78 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/Editor/ScreenIdGenerator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e199115da2f5bb049881978738afa5ee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/Extras.meta b/Assets/UIFrameworkExamples/Scripts/Extras.meta new file mode 100644 index 0000000..d72d191 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/Extras.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8581e14894a270e4c9f4f1aa48ca0b8b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/Extras/FakePlayerData.cs b/Assets/UIFrameworkExamples/Scripts/Extras/FakePlayerData.cs new file mode 100644 index 0000000..33261c1 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/Extras/FakePlayerData.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using deVoid.Utils; +using UnityEngine; + +namespace deVoid.UIFramework.Examples +{ + public class PlayerDataUpdatedSignal : ASignal> { } + + [Serializable] + public class PlayerDataEntry + { + public string LevelName; + [Range(0,3)] + public int Stars; + } + + [CreateAssetMenu(fileName = "PlayerData", menuName = "deVoid UI/Fake Player Data")] + public class FakePlayerData : ScriptableObject + { + [SerializeField] + private List levelProgress = null; + + public List LevelProgress { + get { return levelProgress; } + } + + /// + /// This is called by the Unity Editor in MonoBehaviours and + /// ScriptableObjects whenever a value is changed in the inspector. + /// Here I'm using it to propagate the changes for the example, + /// but in practice, you could implement the same kind of behaviour + /// by having an observable variable passed into the screen via its + /// properties, or other forms of data-binding data to the controller. + /// + private void OnValidate() { + Signals.Get().Dispatch(levelProgress); + } + } +} + diff --git a/Assets/UIFrameworkExamples/Scripts/Extras/FakePlayerData.cs.meta b/Assets/UIFrameworkExamples/Scripts/Extras/FakePlayerData.cs.meta new file mode 100644 index 0000000..b1cc9a0 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/Extras/FakePlayerData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b11b6e8c98789024f8399c1d2ea4e995 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers.meta b/Assets/UIFrameworkExamples/Scripts/ScreenControllers.meta new file mode 100644 index 0000000..df23022 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7ff28458e9fdd8842aeed2d0afaaaebc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers/CameraProjectionWindowController.cs b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/CameraProjectionWindowController.cs new file mode 100644 index 0000000..3f9e980 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/CameraProjectionWindowController.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace deVoid.UIFramework.Examples +{ + [Serializable] + public class CameraProjectionWindowProperties : WindowProperties + { + public readonly Camera WorldCamera; + public readonly Transform TransformToFollow; + + public CameraProjectionWindowProperties(Camera worldCamera, Transform toFollow) { + WorldCamera = worldCamera; + TransformToFollow = toFollow; + } + } + + public class CameraProjectionWindowController : AWindowController + { + [SerializeField] + private UIFollowComponent followTemplate = null; + + private List allElements = new List(); + + protected override void OnPropertiesSet() { + CreateNewLabel(Properties.TransformToFollow,"Look at me!", null); + } + + protected override void WhileHiding() { + foreach (var element in allElements) { + Destroy(element.gameObject); + } + allElements.Clear(); + // This is the kind of thing you *COULD* do, but you usually wouldn't + // want to - in theory this is UI code, so it shouldn't control external things. + // This is an example of "with great power comes great responsibility": + // the UI Framework enforces very few rules, but the rest is up to you. + Properties.TransformToFollow.parent.gameObject.SetActive(false); + } + + private void LateUpdate() { + for (int i = 0; i < allElements.Count; i++) { + allElements[i].UpdatePosition(Properties.WorldCamera); + } + } + + private void CreateNewLabel(Transform target, string label, Sprite icon) { + var followComponent = Instantiate(followTemplate, followTemplate.transform.parent, false); + followComponent.LabelDestroyed += OnLabelDestroyed; + followComponent.gameObject.SetActive(true); + followComponent.SetFollow(target); + followComponent.SetText(label); + + if (icon != null) { + followComponent.SetIcon(icon); + } + + allElements.Add(followComponent); + } + + private void OnLabelDestroyed(UIFollowComponent destroyedLabel) { + allElements.Remove(destroyedLabel); + } + } +} diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers/CameraProjectionWindowController.cs.meta b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/CameraProjectionWindowController.cs.meta new file mode 100644 index 0000000..0cf698e --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/CameraProjectionWindowController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f62375b573ca1174b94825b05482e166 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers/ConfirmationPopupController.cs b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/ConfirmationPopupController.cs new file mode 100644 index 0000000..3b49fbc --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/ConfirmationPopupController.cs @@ -0,0 +1,65 @@ +using System; +using deVoid.Utils; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace deVoid.UIFramework.Examples +{ + public class ShowConfirmationPopupSignal : ASignal { } + + [Serializable] + public class ConfirmationPopupController: AWindowController + { + [SerializeField] public TextMeshProUGUI titleLabel; + [SerializeField] public TextMeshProUGUI messageLabel; + [SerializeField] public TextMeshProUGUI confirmButtonLabel; + [SerializeField] public TextMeshProUGUI cancelButtonLabel; + [SerializeField] public GameObject cancelButtonObject; + protected override void OnPropertiesSet() { + titleLabel.text = Properties.Title; + messageLabel.text = Properties.Message; + confirmButtonLabel.text = Properties.ConfirmButtonText; + cancelButtonLabel.text = Properties.CancelButtonText; + + cancelButtonObject.SetActive(Properties.CancelAction != null); + + } + + public void UI_Confirm() { + UI_Close(); + if (Properties.ConfirmAction != null) { + Properties.ConfirmAction(); + } + } + + public void UI_Cancel() { + UI_Close(); + if (Properties.CancelAction != null) { + Properties.CancelAction(); + } + } + } + + [Serializable] + public class ConfirmationPopupProperties : WindowProperties + { + public readonly string Title; + public readonly string Message; + public readonly string ConfirmButtonText; + public readonly string CancelButtonText; + public readonly Action CancelAction; + public readonly Action ConfirmAction; + + public ConfirmationPopupProperties(string title, string message, + string confirmButtonText = "Confirm", Action confirmAction = null, + string cancelButtonText = "Cancel", Action cancelAction = null) { + Title = title; + Message = message; + ConfirmButtonText = confirmButtonText; + CancelButtonText = cancelButtonText; + CancelAction = cancelAction; + ConfirmAction = confirmAction; + } + } +} diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers/ConfirmationPopupController.cs.meta b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/ConfirmationPopupController.cs.meta new file mode 100644 index 0000000..ed394be --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/ConfirmationPopupController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e6913d1a1cc99c44f80bf003a9cf820e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers/EmptyWindowController.cs b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/EmptyWindowController.cs new file mode 100644 index 0000000..9d01bc4 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/EmptyWindowController.cs @@ -0,0 +1,13 @@ +namespace deVoid.UIFramework.Examples +{ + /// + /// You usually won't have empty windows, as you'll almost always have + /// data to be passed onto them for set up. However, you may have multiple + /// windows that use the same controller, you just need them to have different + /// ids. More than one window in this demo is totally static and defined by + /// its prefab, and they are all using this empty window. + /// Even though it has no implementation, it still provides the functionality + /// for animation/priority etc. + /// + public class EmptyWindowController : AWindowController { } +} diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers/EmptyWindowController.cs.meta b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/EmptyWindowController.cs.meta new file mode 100644 index 0000000..4d4782d --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/EmptyWindowController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: dfde723a98b24660a740ac83905f195e +timeCreated: 1552851288 \ No newline at end of file diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers/NavigationPanelController.cs b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/NavigationPanelController.cs new file mode 100644 index 0000000..a83b541 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/NavigationPanelController.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using deVoid.UIFramework; +using deVoid.UIFramework.Examples; +using deVoid.Utils; +using UnityEngine; + +[Serializable] +public class NavigationPanelEntry +{ + [SerializeField] private Sprite sprite = null; + [SerializeField] private string buttonText = ""; + [SerializeField] private string targetScreen = ""; + + public Sprite Sprite { + get { return sprite; } + } + + public string ButtonText { + get { return buttonText; } + } + + public string TargetScreen { + get { return targetScreen; } + } +} + +public class NavigateToWindowSignal : ASignal { } +public class NavigationPanelController : APanelController +{ + [SerializeField] + private List navigationTargets = new List(); + [SerializeField] + private NavigationPanelButton templateButton = null; + + private readonly List currentButtons = new List(); + + // I usually always place AddListeners and RemoveListeners together + // to reduce the chances of adding a listener and not removing it. + protected override void AddListeners() { + Signals.Get().AddListener(OnExternalNavigation); + } + + protected override void RemoveListeners() { + Signals.Get().RemoveListener(OnExternalNavigation); + } + + /// + /// This is called whenever this screen is opened + /// be it for the first time or coming from the history/queue + /// + protected override void OnPropertiesSet() { + ClearEntries(); + foreach (var target in navigationTargets) { + var newBtn = Instantiate(templateButton); + // When using UI, never forget to pass the parameter + // worldPositionStays as FALSE, otherwise your RectTransform + // won't layout properly after reparenting. + // This is the cause for the most common head-scratching issues + // when starting to deal with Unity UI: adding objects via the editor + // working fine but objects instanced via code having broken sizes/positions + newBtn.transform.SetParent(templateButton.transform.parent, false); + newBtn.SetData(target); + newBtn.gameObject.SetActive(true); + newBtn.ButtonClicked += OnNavigationButtonClicked; + currentButtons.Add(newBtn); + } + + // The first button is selected by default + OnNavigationButtonClicked(currentButtons[0]); + } + + private void OnNavigationButtonClicked(NavigationPanelButton currentlyClickedButton) { + Signals.Get().Dispatch(currentlyClickedButton.Target); + foreach (var button in currentButtons) { + button.SetCurrentNavigationTarget(currentlyClickedButton); + } + } + + private void OnExternalNavigation(string screenId) { + foreach (var button in currentButtons) { + button.SetCurrentNavigationTarget(screenId); + } + } + + private void ClearEntries() { + foreach (var button in currentButtons) { + button.ButtonClicked -= OnNavigationButtonClicked; + Destroy(button.gameObject); + } + } +} diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers/NavigationPanelController.cs.meta b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/NavigationPanelController.cs.meta new file mode 100644 index 0000000..4fbebf9 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/NavigationPanelController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 800b00f1adb3ccb42bb2cfee5cf1af23 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers/PlayerWindowController.cs b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/PlayerWindowController.cs new file mode 100644 index 0000000..c66368f --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/PlayerWindowController.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using deVoid.Utils; +using UnityEngine; + +namespace deVoid.UIFramework.Examples +{ + /// + /// This is the Properties class for this specific window. + /// It carries the payload which will be used to fill up this + /// window upon opening. + /// + [Serializable] + public class PlayerWindowProperties : WindowProperties + { + public readonly List PlayerData; + + public PlayerWindowProperties(List data) { + PlayerData = data; + } + } + + public class PlayerWindowController : AWindowController + { + [SerializeField] + private LevelProgressComponent templateLevelEntry = null; + + private List currentLevels = new List(); + + /// + /// Here I'm listening to a global signal that is fired by the ScriptableObject + /// itself as a way of exemplifying how you could do this in your codebase. + /// I could optionally carry the ScriptableObject itself, store a reference to it + /// and do the same process via direct event hooks. + /// + protected override void AddListeners() { + Signals.Get().AddListener(OnDataUpdated); + } + + protected override void RemoveListeners() { + Signals.Get().RemoveListener(OnDataUpdated); + } + + protected override void OnPropertiesSet() { + OnDataUpdated(Properties.PlayerData); + } + + private void OnDataUpdated(List data) { + VerifyElementCount(data.Count); + RefreshElementData(data); + } + + private void VerifyElementCount(int levelCount) { + if (currentLevels.Count == levelCount) { + return; + } + + if (currentLevels.Count < levelCount) { + while (currentLevels.Count < levelCount) { + var newLevel = Instantiate(templateLevelEntry, + templateLevelEntry.transform.parent, + false); // Never forget to pass worldPositionStays as false for UI! + newLevel.gameObject.SetActive(true); + currentLevels.Add(newLevel); + } + } + else { + while (currentLevels.Count > levelCount) { + var levelToRemove = currentLevels[currentLevels.Count - 1]; + currentLevels.Remove(levelToRemove); + Destroy(levelToRemove.gameObject); + } + } + } + + private void RefreshElementData(List playerLevelProgress) { + for (int i = 0; i < currentLevels.Count; i++) { + currentLevels[i].SetData(playerLevelProgress[i], i); + } + } + } +} diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers/PlayerWindowController.cs.meta b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/PlayerWindowController.cs.meta new file mode 100644 index 0000000..cb68bbc --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/PlayerWindowController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7340a46b47324d80b4367278fc02a3b1 +timeCreated: 1552944131 \ No newline at end of file diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers/PopupExampleWindowController.cs b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/PopupExampleWindowController.cs new file mode 100644 index 0000000..13eb13c --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/PopupExampleWindowController.cs @@ -0,0 +1,75 @@ +using deVoid.Utils; +using UnityEngine; +using UnityEngine.UI; + +namespace deVoid.UIFramework.Examples +{ + public class PopupExampleWindowController : AWindowController + { + [SerializeField] + private Image exampleImage = null; + + private int currentPopupExample; + private Color originalColor; + + /// + /// You can use all of Unity's regular functions, as Screens + /// are all MonoBehaviours, but don't forget that many of them + /// have important operations being called in their base methods + /// + protected override void Awake() { + base.Awake(); + originalColor = exampleImage.color; + } + + public void UI_ShowPopup() { + Signals.Get().Dispatch(GetPopupData()); + } + + private ConfirmationPopupProperties GetPopupData() { + ConfirmationPopupProperties testProps = null; + + switch (currentPopupExample) { + case 0: + testProps = new ConfirmationPopupProperties("Uh-oh!", + "You were curious and clicked the button! Try a few more times.", + "Got it!"); + break; + case 1: + testProps = new ConfirmationPopupProperties("Question:", + "What is your favourite color?", + "Blue", OnBlueSelected, + "Red", OnRedSelected); + break; + case 2: + testProps = new ConfirmationPopupProperties("Pretty cool huh?", + "Let's return our buddy to its original color.", + "Fine.", OnRevertColors); + break; + case 3: + testProps = new ConfirmationPopupProperties("YOU DIED", + "The Dark Souls of Pop-Ups", "Respawn"); + break; + } + + currentPopupExample++; + if (currentPopupExample > 3) { + currentPopupExample = 0; + } + + return testProps; + } + + private void OnRevertColors() { + exampleImage.color = originalColor; + } + + private void OnRedSelected() { + exampleImage.color = Color.red; + } + + private void OnBlueSelected() { + exampleImage.color = Color.blue; + } + } +} \ No newline at end of file diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers/PopupExampleWindowController.cs.meta b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/PopupExampleWindowController.cs.meta new file mode 100644 index 0000000..c4a672c --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/PopupExampleWindowController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: bdb359b15cef456c87b9d85d0d8a9239 +timeCreated: 1552866528 \ No newline at end of file diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers/StartWindowController.cs b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/StartWindowController.cs new file mode 100644 index 0000000..40e3d17 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/StartWindowController.cs @@ -0,0 +1,13 @@ +using deVoid.Utils; + +namespace deVoid.UIFramework.Examples +{ + public class StartDemoSignal : ASignal { } + + public class StartWindowController : AWindowController + { + public void UI_Start() { + Signals.Get().Dispatch(); + } + } +} diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers/StartWindowController.cs.meta b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/StartWindowController.cs.meta new file mode 100644 index 0000000..b68708f --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/StartWindowController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 18cc5984687341548acdac6ef7ea7e6b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers/ToastPanelController.cs b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/ToastPanelController.cs new file mode 100644 index 0000000..68e1565 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/ToastPanelController.cs @@ -0,0 +1,67 @@ +using System.Collections; +using System.Collections.Generic; +using deVoid.Utils; +using DG.Tweening; +using UnityEngine; + +namespace deVoid.UIFramework.Examples +{ + /// + /// Yes, this panel is there, all the time, just waiting for its moment to shine + /// + public class ToastPanelController : APanelController + { + [SerializeField] private RectTransform toastRect = null; + [SerializeField] private float toastDuration = 0.5f; + [SerializeField] private float toastPause = 2f; + [SerializeField] private Ease toastEase = Ease.Linear; + + private bool isToasting; + + /// + /// We're making this respond to the same signal as the PlayerWindow does. + /// This allows us to have the toast if it's present, but there's no issues if + /// it's not present for any reason. + /// + protected override void AddListeners() { + Signals.Get().AddListener(OnDataUpdated); + } + + protected override void RemoveListeners() { + Signals.Get().RemoveListener(OnDataUpdated); + } + + private void OnDataUpdated(List data) { + if (isToasting) { + return; + } + + // HACK: more info below + StartCoroutine(YieldForDOTween()); + } + + /// + /// TIL: DOTween uses AddComponent internally, which means + /// it can't be called OnValidate. + /// Since I've used that to avoid having a custom inspector + /// just for the FakePlayerData, I'll allow myself this + /// hack, otherwise I'll be stuck writing custom inspectors + /// instead of writing documentation :D + /// It just emits a harmless warning and wouldn't happen + /// in a real-life situation as OnValidate is only called + /// in the Editor. + /// + private IEnumerator YieldForDOTween() { + yield return null; + + isToasting = true; + Sequence seq = DOTween.Sequence(); + seq.Append(toastRect.DOAnchorPosY(0f, toastDuration).SetEase(toastEase)); + seq.AppendInterval(toastPause); + seq.Append(toastRect.DOAnchorPosY(toastRect.rect.height, toastDuration).SetEase(toastEase)); + seq.OnComplete(() => isToasting = false); + + seq.Play(); + } + } +} diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenControllers/ToastPanelController.cs.meta b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/ToastPanelController.cs.meta new file mode 100644 index 0000000..7fdd989 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenControllers/ToastPanelController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f8605f786ebb9fa438c790fd56239290 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenIds.cs b/Assets/UIFrameworkExamples/Scripts/ScreenIds.cs new file mode 100644 index 0000000..d309ff7 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenIds.cs @@ -0,0 +1,34 @@ +// ------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Mono Runtime Version: 2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +// ------------------------------------------------------------------------------ + +namespace deVoid.UIFramework.Examples { + + + public sealed class ScreenIds { + + public const string CameraProjectionWindow = "CameraProjectionWindow"; + + public const string ConfirmationPopup = "ConfirmationPopup"; + + public const string HomeWindow = "HomeWindow"; + + public const string NavigationPanel = "NavigationPanel"; + + public const string PlayerWindow = "PlayerWindow"; + + public const string PopupExampleWindow = "PopupExampleWindow"; + + public const string StartGameWindow = "StartGameWindow"; + + public const string ThreeDExample = "ThreeDExample"; + + public const string ToastPanel = "ToastPanel"; + } +} diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenIds.cs.meta b/Assets/UIFrameworkExamples/Scripts/ScreenIds.cs.meta new file mode 100644 index 0000000..433437f --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenIds.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 141738f766781504a879b1eed120a1ff +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenTransitions.meta b/Assets/UIFrameworkExamples/Scripts/ScreenTransitions.meta new file mode 100644 index 0000000..a693f72 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenTransitions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fa502d0ef331d52469b273533283b66c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenTransitions/ScaleScreenTransition.cs b/Assets/UIFrameworkExamples/Scripts/ScreenTransitions/ScaleScreenTransition.cs new file mode 100644 index 0000000..1c549bd --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenTransitions/ScaleScreenTransition.cs @@ -0,0 +1,58 @@ +using System; +using DG.Tweening; +using UnityEngine; + +namespace deVoid.UIFramework.Examples +{ + public class ScaleScreenTransition : ATransitionComponent + { + [SerializeField] protected bool isOutAnimation; + [SerializeField] protected float duration = 0.5f; + [SerializeField] protected bool doFade; + [SerializeField] protected float fadeDurationPercent = 0.5f; + [SerializeField] protected Ease ease = Ease.Linear; + [SerializeField] [Range(0f, 1f)] + protected float xYSplit = 0.25f; + + public override void Animate(Transform target, Action callWhenFinished) { + RectTransform rTransform = target as RectTransform; + CanvasGroup canvasGroup = null; + if (doFade) { + canvasGroup = rTransform.GetComponent(); + if (canvasGroup == null) { + canvasGroup = rTransform.gameObject.AddComponent(); + } + + canvasGroup.DOFade(isOutAnimation ? 0f : 1f, duration * fadeDurationPercent); + } + + rTransform.DOKill(); + if (isOutAnimation) { + rTransform.DOScale(0f, duration).SetEase(ease) + .OnComplete(() => Cleanup(callWhenFinished, rTransform, canvasGroup)) + .SetUpdate(true); + } + else { + Sequence scaleSequence = DOTween.Sequence(); + scaleSequence.SetUpdate(true); + rTransform.localScale = new Vector3(0f, 0.02f, 0f); + + var xScale = rTransform.DOScaleX(1f, duration * xYSplit).SetEase(ease); + var yScale = rTransform.DOScaleY(1f, duration * 1f - xYSplit).SetEase(ease); + scaleSequence.Append(xScale).Append(yScale).OnComplete( + () => Cleanup(callWhenFinished, rTransform, canvasGroup) + ).SetUpdate(true); + + scaleSequence.Play(); + } + } + + private void Cleanup(Action callWhenFinished, RectTransform rTransform, CanvasGroup canvasGroup) { + callWhenFinished(); + rTransform.localScale = Vector3.one; + if (canvasGroup != null) { + canvasGroup.alpha = 1f; + } + } + } +} \ No newline at end of file diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenTransitions/ScaleScreenTransition.cs.meta b/Assets/UIFrameworkExamples/Scripts/ScreenTransitions/ScaleScreenTransition.cs.meta new file mode 100644 index 0000000..608fdc4 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenTransitions/ScaleScreenTransition.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fba1e145d32ecc1418c1b103ff6a7b8b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenTransitions/SlideScreenTransition.cs b/Assets/UIFrameworkExamples/Scripts/ScreenTransitions/SlideScreenTransition.cs new file mode 100644 index 0000000..428525e --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenTransitions/SlideScreenTransition.cs @@ -0,0 +1,75 @@ +using System; +using DG.Tweening; +using UnityEngine; + +namespace deVoid.UIFramework.Examples +{ + public class SlideScreenTransition : ATransitionComponent + { + public enum Position + { + None = 0, + Left = 1, + Right = 2, + Top = 3, + Bottom = 4, + } + + [SerializeField] protected Position origin = Position.Left; + [SerializeField] protected bool isOutAnimation; + [SerializeField] protected float duration = 0.5f; + [SerializeField] protected bool doFade; + [SerializeField] protected float fadeDurationPercent = 0.5f; + [SerializeField] protected Ease ease = Ease.Linear; + + public Position Origin { + get { return origin; } + set { origin = value; } + } + + public override void Animate(Transform target, Action callWhenFinished) { + RectTransform rTransform = target as RectTransform; + var origAnchoredPos = rTransform.anchoredPosition; + Vector3 startPosition = Vector3.zero; + + switch (origin) { + case Position.Left: + startPosition = new Vector3(-rTransform.rect.width, 0.0f, 0.0f); + break; + case Position.Right: + startPosition = new Vector3(rTransform.rect.width, 0.0f, 0.0f); + break; + case Position.Top: + startPosition = new Vector3(0.0f, rTransform.rect.height, 0.0f); + break; + case Position.Bottom: + startPosition = new Vector3(0.0f, -rTransform.rect.height, 0.0f); + break; + } + + rTransform.anchoredPosition = isOutAnimation ? Vector3.zero : startPosition; + + rTransform.DOKill(); + + CanvasGroup canvasGroup = null; + if (doFade) { + canvasGroup = rTransform.GetComponent(); + if (canvasGroup == null) { + canvasGroup = rTransform.gameObject.AddComponent(); + } + + canvasGroup.DOFade(isOutAnimation ? 0f : 1f, duration * fadeDurationPercent); + } + + rTransform.DOAnchorPos(isOutAnimation ? startPosition : Vector3.zero, duration, true) + .SetEase(ease).OnComplete( + () => { + callWhenFinished(); + rTransform.anchoredPosition = origAnchoredPos; + if (canvasGroup != null) { + canvasGroup.alpha = 1f; + } + }).SetUpdate(true); + } + } +} \ No newline at end of file diff --git a/Assets/UIFrameworkExamples/Scripts/ScreenTransitions/SlideScreenTransition.cs.meta b/Assets/UIFrameworkExamples/Scripts/ScreenTransitions/SlideScreenTransition.cs.meta new file mode 100644 index 0000000..14c0f93 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/ScreenTransitions/SlideScreenTransition.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6f0ffd164e4450f439d7c219e6c88ce7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/UIDemoController.cs b/Assets/UIFrameworkExamples/Scripts/UIDemoController.cs new file mode 100644 index 0000000..b65b804 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/UIDemoController.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using deVoid.Utils; +using UnityEngine; + +namespace deVoid.UIFramework.Examples +{ + public class UIDemoController : MonoBehaviour + { + [SerializeField] private UISettings defaultUISettings = null; + [SerializeField] private FakePlayerData fakePlayerData = null; + [SerializeField] private Camera cam = null; + [SerializeField] private Transform transformToFollow = null; + + private UIFrame uiFrame; + + private void Awake() { + uiFrame = defaultUISettings.CreateUIInstance(); + Signals.Get().AddListener(OnStartDemo); + Signals.Get().AddListener(OnNavigateToWindow); + Signals.Get().AddListener(OnShowConfirmationPopup); + } + + private void OnDestroy() { + Signals.Get().RemoveListener(OnStartDemo); + Signals.Get().RemoveListener(OnNavigateToWindow); + Signals.Get().RemoveListener(OnShowConfirmationPopup); + } + + private void Start() { + uiFrame.OpenWindow(ScreenIds.StartGameWindow); + } + + private void OnStartDemo() { + // The navigation panel will automatically navigate + // to the first screen upon opening + uiFrame.ShowPanel(ScreenIds.NavigationPanel); + uiFrame.ShowPanel(ScreenIds.ToastPanel); + } + + private void OnNavigateToWindow(string windowId) { + // You usually don't have to do this as the system takes care of everything + // automatically, but since we're dealing with navigation and the Window layer + // has a history stack, this way we can make sure we're not just adding + // entries to the stack indefinitely + uiFrame.CloseCurrentWindow(); + + switch (windowId) { + case ScreenIds.PlayerWindow: + uiFrame.OpenWindow(windowId, new PlayerWindowProperties(fakePlayerData.LevelProgress)); + break; + case ScreenIds.CameraProjectionWindow: + transformToFollow.parent.gameObject.SetActive(true); + uiFrame.OpenWindow(windowId, new CameraProjectionWindowProperties(cam, transformToFollow)); + break; + default: + uiFrame.OpenWindow(windowId); + break; + } + } + + private void OnShowConfirmationPopup(ConfirmationPopupProperties popupPayload) { + uiFrame.OpenWindow(ScreenIds.ConfirmationPopup, popupPayload); + } + } +} \ No newline at end of file diff --git a/Assets/UIFrameworkExamples/Scripts/UIDemoController.cs.meta b/Assets/UIFrameworkExamples/Scripts/UIDemoController.cs.meta new file mode 100644 index 0000000..b441a4f --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/UIDemoController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6ea977a77c0032e458147f6d2e676e01 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/Widgets.meta b/Assets/UIFrameworkExamples/Scripts/Widgets.meta new file mode 100644 index 0000000..1a61f6a --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/Widgets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c9b743a1e258bf14ea6bd2629919e4e8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/Widgets/AutoMove.cs b/Assets/UIFrameworkExamples/Scripts/Widgets/AutoMove.cs new file mode 100644 index 0000000..0efe0e0 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/Widgets/AutoMove.cs @@ -0,0 +1,22 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace deVoid.UIFramework.Examples +{ + public class AutoMove : MonoBehaviour + { + [SerializeField] private Vector2 minMaxPosition = Vector2.zero; + [SerializeField] private float speed = 0f; + [SerializeField] private Vector2 minMaxPositionY = Vector2.zero; + [SerializeField] private float speedY = 0f; + [SerializeField] private Vector3 rotationSpeed = Vector3.zero; + + private void Update() { + transform.Rotate(rotationSpeed * Time.deltaTime, Space.Self); + float x = Mathf.Lerp(minMaxPosition.x, minMaxPosition.y, (Mathf.Sin(Time.time*speed)+1)/2f); + float y = Mathf.Lerp(minMaxPositionY.x, minMaxPositionY.y, (Mathf.Sin(Time.time*speedY)+1)/2f); + transform.localPosition = new Vector3(x, y, transform.position.z); + } + } +} diff --git a/Assets/UIFrameworkExamples/Scripts/Widgets/AutoMove.cs.meta b/Assets/UIFrameworkExamples/Scripts/Widgets/AutoMove.cs.meta new file mode 100644 index 0000000..0250ef8 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/Widgets/AutoMove.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 190344ed5d8d33b42951e2311f8aad96 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UIFrameworkExamples/Scripts/Widgets/LevelProgressComponent.cs b/Assets/UIFrameworkExamples/Scripts/Widgets/LevelProgressComponent.cs new file mode 100644 index 0000000..4c2295c --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/Widgets/LevelProgressComponent.cs @@ -0,0 +1,28 @@ +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace deVoid.UIFramework.Examples +{ + public class LevelProgressComponent : MonoBehaviour + { + [SerializeField] private TextMeshProUGUI levelCounter = null; + [SerializeField] private TextMeshProUGUI levelName = null; + [SerializeField] private Image[] stars = null; + [SerializeField] private Color starOn = Color.yellow; + [SerializeField] private Color starOff = Color.black; + + public void SetData(PlayerDataEntry entry, int levelNumber) { + levelCounter.text = "Level " + (levelNumber + 1); + levelName.text = entry.LevelName; + for (int i = 0; i < stars.Length; i++) { + if (i + 1 <= entry.Stars) { + stars[i].color = starOn; + } + else { + stars[i].color = starOff; + } + } + } + } +} diff --git a/Assets/UIFrameworkExamples/Scripts/Widgets/LevelProgressComponent.cs.meta b/Assets/UIFrameworkExamples/Scripts/Widgets/LevelProgressComponent.cs.meta new file mode 100644 index 0000000..31c9960 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/Widgets/LevelProgressComponent.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b3c8348a523d4f90a0152195738c1913 +timeCreated: 1553028290 \ No newline at end of file diff --git a/Assets/UIFrameworkExamples/Scripts/Widgets/NavigationPanelButton.cs b/Assets/UIFrameworkExamples/Scripts/Widgets/NavigationPanelButton.cs new file mode 100644 index 0000000..8eedcd5 --- /dev/null +++ b/Assets/UIFrameworkExamples/Scripts/Widgets/NavigationPanelButton.cs @@ -0,0 +1,56 @@ +using System; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace deVoid.UIFramework.Examples +{ + [RequireComponent(typeof(Button))] + public class NavigationPanelButton : MonoBehaviour + { + [SerializeField] + private TextMeshProUGUI buttonLabel = null; + [SerializeField] + private Image icon = null; + + public event Action ButtonClicked; + + private NavigationPanelEntry navigationData = null; + private Button _button = null; + private Button button { + get { + if (_button == null) { + _button = GetComponent