├── .gitignore ├── .idea └── .idea.AppsUIComponents │ ├── .idea │ ├── contentModel.xml │ ├── encodings.xml │ ├── indexLayout.xml │ ├── misc.xml │ ├── modules.xml │ ├── vcs.xml │ └── workspace.xml │ └── riderModule.iml ├── AppsUIComponents.sln ├── AppsUIComponents.sln.DotSettings.user ├── Assembly-CSharp-Editor.csproj ├── Assembly-CSharp.csproj ├── Assets ├── Components.meta ├── Components │ ├── ActionBar.meta │ ├── ActionBar │ │ ├── ActionBar.cs │ │ └── ActionBar.cs.meta │ ├── Attributes.meta │ ├── Attributes │ │ ├── ComponentAttributes.cs │ │ └── ComponentAttributes.cs.meta │ ├── Calendars.meta │ ├── Calendars │ │ ├── BigMonthView.cs │ │ ├── BigMonthView.cs.meta │ │ ├── IntervalCalendar.cs │ │ └── IntervalCalendar.cs.meta │ ├── Clickable.meta │ ├── Clickable │ │ ├── AnimatableButton.cs │ │ ├── AnimatableButton.cs.meta │ │ ├── HamburgerMenuButton.cs │ │ ├── HamburgerMenuButton.cs.meta │ │ ├── Toggle.cs │ │ └── Toggle.cs.meta │ ├── ComponentBehaviour.cs │ ├── ComponentBehaviour.cs.meta │ ├── ComponentHolder.cs │ ├── ComponentHolder.cs.meta │ ├── ComponentUtils.cs │ ├── ComponentUtils.cs.meta │ ├── ContainerVerticalResizer.cs │ ├── ContainerVerticalResizer.cs.meta │ ├── Drawer.meta │ ├── Drawer │ │ ├── NavigationDrawer.cs │ │ ├── NavigationDrawer.cs.meta │ │ ├── NavigationDrawerPanel.cs │ │ ├── NavigationDrawerPanel.cs.meta │ │ ├── NavigationDrawerPosition.cs │ │ ├── NavigationDrawerPosition.cs.meta │ │ ├── NavigationDrawerSidePanel.cs │ │ └── NavigationDrawerSidePanel.cs.meta │ ├── DrawerSettingsPanel.cs │ ├── DrawerSettingsPanel.cs.meta │ ├── Editor.meta │ ├── Editor │ │ ├── NiceUIMenus.cs │ │ ├── NiceUIMenus.cs.meta │ │ ├── NiceUIThemeEditor.cs │ │ └── NiceUIThemeEditor.cs.meta │ ├── Extensions.cs │ ├── Extensions.cs.meta │ ├── HorizontalProgressBar.cs │ ├── HorizontalProgressBar.cs.meta │ ├── InputNumberFormatter.cs │ ├── InputNumberFormatter.cs.meta │ ├── InteractiveObject.cs │ ├── InteractiveObject.cs.meta │ ├── Interfaces.meta │ ├── Interfaces │ │ ├── IScrollable.cs │ │ └── IScrollable.cs.meta │ ├── Localization.meta │ ├── Localization │ │ ├── Localization.cs │ │ └── Localization.cs.meta │ ├── Pages.meta │ ├── Pages │ │ ├── PageBase.cs │ │ ├── PageBase.cs.meta │ │ ├── ParallaxScrollPage.cs │ │ └── ParallaxScrollPage.cs.meta │ ├── Position.cs │ ├── Position.cs.meta │ ├── ProgressBar.cs │ ├── ProgressBar.cs.meta │ ├── QuickScrollerVertical.cs │ ├── QuickScrollerVertical.cs.meta │ ├── Sprites.meta │ ├── Sprites │ │ ├── ProgressBars.meta │ │ ├── ProgressBars │ │ │ ├── inner_circle.png │ │ │ ├── inner_circle.png.meta │ │ │ ├── linear_progress_bar.png │ │ │ ├── linear_progress_bar.png.meta │ │ │ ├── outer_circle.png │ │ │ └── outer_circle.png.meta │ │ ├── background.png │ │ ├── background.png.meta │ │ ├── big_rounded_rect.png │ │ ├── big_rounded_rect.png.meta │ │ ├── calendar_selector.png │ │ ├── calendar_selector.png.meta │ │ ├── hamburger_menu_button.png │ │ ├── hamburger_menu_button.png.meta │ │ ├── icon.png │ │ ├── icon.png.meta │ │ ├── rounded_rect.png │ │ ├── rounded_rect.png.meta │ │ ├── small_arrow.png │ │ ├── small_arrow.png.meta │ │ ├── toggle_base.png │ │ ├── toggle_base.png.meta │ │ ├── toggle_knob.png │ │ ├── toggle_knob.png.meta │ │ ├── wallpaper.png │ │ └── wallpaper.png.meta │ ├── Texts.meta │ └── Texts │ │ ├── CalendarDateCell.cs │ │ └── CalendarDateCell.cs.meta ├── DOTween.meta ├── DOTween │ ├── DOTween.XML │ ├── DOTween.XML.meta │ ├── DOTween.dll │ ├── DOTween.dll.mdb │ ├── DOTween.dll.mdb.meta │ ├── DOTween.dll.meta │ ├── Editor.meta │ ├── Editor │ │ ├── DOTweenEditor.XML │ │ ├── DOTweenEditor.XML.meta │ │ ├── DOTweenEditor.dll │ │ ├── DOTweenEditor.dll.mdb │ │ ├── DOTweenEditor.dll.mdb.meta │ │ ├── DOTweenEditor.dll.meta │ │ ├── Imgs.meta │ │ └── Imgs │ │ │ ├── DOTweenIcon.png │ │ │ ├── DOTweenIcon.png.meta │ │ │ ├── Footer.png │ │ │ ├── Footer.png.meta │ │ │ ├── Footer_dark.png │ │ │ ├── Footer_dark.png.meta │ │ │ ├── Header.jpg │ │ │ └── Header.jpg.meta │ ├── Modules.meta │ ├── Modules │ │ ├── DOTweenModuleAudio.cs │ │ ├── DOTweenModuleAudio.cs.meta │ │ ├── DOTweenModulePhysics.cs │ │ ├── DOTweenModulePhysics.cs.meta │ │ ├── DOTweenModulePhysics2D.cs │ │ ├── DOTweenModulePhysics2D.cs.meta │ │ ├── DOTweenModuleSprite.cs │ │ ├── DOTweenModuleSprite.cs.meta │ │ ├── DOTweenModuleUI.cs │ │ ├── DOTweenModuleUI.cs.meta │ │ ├── DOTweenModuleUnityVersion.cs │ │ ├── DOTweenModuleUnityVersion.cs.meta │ │ ├── DOTweenModuleUtils.cs │ │ └── DOTweenModuleUtils.cs.meta │ ├── readme.txt │ └── readme.txt.meta ├── Plugins.meta ├── Plugins │ ├── Editor.meta │ └── Editor │ │ ├── JetBrains.meta │ │ └── JetBrains │ │ ├── JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll │ │ └── JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll.meta ├── Resources.meta ├── Resources │ ├── DOTweenSettings.asset │ ├── DOTweenSettings.asset.meta │ ├── NiceUIPrefabs.meta │ └── NiceUIPrefabs │ │ ├── ActionBar_pfb.prefab │ │ ├── ActionBar_pfb.prefab.meta │ │ ├── HamburgerMenuButton_pfb.prefab │ │ ├── HamburgerMenuButton_pfb.prefab.meta │ │ ├── HorizontalProgressBar_pfb.prefab │ │ ├── HorizontalProgressBar_pfb.prefab.meta │ │ ├── IntervalCalendar_pfb.prefab │ │ ├── IntervalCalendar_pfb.prefab.meta │ │ ├── NavigationDrawerPanel_pfb.prefab │ │ ├── NavigationDrawerPanel_pfb.prefab.meta │ │ ├── ParallaxScrollPage_pfb.prefab │ │ ├── ParallaxScrollPage_pfb.prefab.meta │ │ ├── RadialProgressBar_pfb.prefab │ │ ├── RadialProgressBar_pfb.prefab.meta │ │ ├── Toggle_pfb.prefab │ │ ├── Toggle_pfb.prefab.meta │ │ ├── UIController_pfb.prefab │ │ └── UIController_pfb.prefab.meta ├── Scenes.meta ├── Scenes │ ├── SampleScene.unity │ └── SampleScene.unity.meta ├── UiController.cs └── UiController.cs.meta ├── Packages └── manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset └── VFXManager.asset ├── README.md └── obj └── Debug ├── Assembly-CSharp-Editor.csprojAssemblyReference.cache └── Assembly-CSharp.csprojAssemblyReference.cache /.gitignore: -------------------------------------------------------------------------------- 1 | Library/ 2 | Components.apk 3 | Temp/ 4 | Logs/ 5 | -------------------------------------------------------------------------------- /.idea/.idea.AppsUIComponents/.idea/contentModel.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /.idea/.idea.AppsUIComponents/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.idea/.idea.AppsUIComponents/.idea/indexLayout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/.idea.AppsUIComponents/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /.idea/.idea.AppsUIComponents/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/.idea.AppsUIComponents/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/.idea.AppsUIComponents/riderModule.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /AppsUIComponents.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 11.00 2 | # Visual Studio 2010 3 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{3BD37008-FE20-E969-79B4-DF00FDBE77D2}" 4 | EndProject 5 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-Editor", "Assembly-CSharp-Editor.csproj", "{0A27A82D-D60B-F0BA-801A-78642643DF86}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Debug|Any CPU = Debug|Any CPU 10 | Release|Any CPU = Release|Any CPU 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {3BD37008-FE20-E969-79B4-DF00FDBE77D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 14 | {3BD37008-FE20-E969-79B4-DF00FDBE77D2}.Debug|Any CPU.Build.0 = Debug|Any CPU 15 | {3BD37008-FE20-E969-79B4-DF00FDBE77D2}.Release|Any CPU.ActiveCfg = Release|Any CPU 16 | {3BD37008-FE20-E969-79B4-DF00FDBE77D2}.Release|Any CPU.Build.0 = Release|Any CPU 17 | {0A27A82D-D60B-F0BA-801A-78642643DF86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 18 | {0A27A82D-D60B-F0BA-801A-78642643DF86}.Debug|Any CPU.Build.0 = Debug|Any CPU 19 | {0A27A82D-D60B-F0BA-801A-78642643DF86}.Release|Any CPU.ActiveCfg = Release|Any CPU 20 | {0A27A82D-D60B-F0BA-801A-78642643DF86}.Release|Any CPU.Build.0 = Release|Any CPU 21 | EndGlobalSection 22 | GlobalSection(SolutionProperties) = preSolution 23 | HideSolutionNode = FALSE 24 | EndGlobalSection 25 | GlobalSection(MonoDevelopProperties) = preSolution 26 | StartupItem = Assembly-CSharp.csproj 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /AppsUIComponents.sln.DotSettings.user: -------------------------------------------------------------------------------- 1 |  2 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 3 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 4 | <Policy Inspect="True" Prefix="m_" Suffix="" Style="AaBb" /> 5 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 6 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 7 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> 8 | <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> 9 | 2 -------------------------------------------------------------------------------- /Assets/Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7752e637a0bf375478f2402472dd9946 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Components/ActionBar.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5d9a57221f4045358606ff2b8cbf08ef 3 | timeCreated: 1543992971 -------------------------------------------------------------------------------- /Assets/Components/ActionBar/ActionBar.cs: -------------------------------------------------------------------------------- 1 | using Components.Attributes; 2 | using DG.Tweening; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | 6 | namespace Components.ActionBar { 7 | 8 | [DisallowMultipleComponent] 9 | public class ActionBar : ComponentHolder { 10 | 11 | [Tooltip("Если true, то при прохождении сообщения ActionBarOff, уберется за экран, а ActionBarOn вернет его")] 12 | [SerializeField] private bool m_CanDisappear = true; 13 | [SerializeField] private float m_HideAnimationTime = .2f; 14 | 15 | [SerializeField] 16 | private Image m_Background; 17 | 18 | private void Awake() { 19 | 20 | Height = GetRectTransform().rect.height; 21 | } 22 | 23 | public float Height { get; private set; } 24 | 25 | /// 26 | /// Эти методы вызываются через UIController.Instance.HideActionBar() 27 | /// UIController.Instance.ShowActionBar() 28 | /// 29 | internal void HideActionBar() { 30 | if (!m_CanDisappear) { 31 | print($"ActionBar невозможно скрыть! Свойство CanDisappear = false; {this}"); 32 | return; 33 | } 34 | GetRectTransform().DOAnchorPosY(Height, m_HideAnimationTime); 35 | } 36 | 37 | internal void ShowActionBar() { 38 | if (!m_CanDisappear) { 39 | print($"ActionBar невозможно скрыть! Свойство CanDisappear = false; {this}"); 40 | return; 41 | } 42 | GetRectTransform().DOAnchorPosY(0, m_HideAnimationTime); 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /Assets/Components/ActionBar/ActionBar.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3aa5bcb118474dc8992e153cdb8e4784 3 | timeCreated: 1543992980 -------------------------------------------------------------------------------- /Assets/Components/Attributes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 919abc8113b549e8b6c6918d6d918423 3 | timeCreated: 1547923253 -------------------------------------------------------------------------------- /Assets/Components/Attributes/ComponentAttributes.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Components.Attributes { 4 | 5 | 6 | /** 7 | * this file contains attributes which must be applied to all your stuff which 8 | * you wanna be affected by global theme settings 9 | * if you apply some of them and the UserThemeColors field of the component 10 | * is true (or missing at all), then your component will 11 | * receive the according theme value which you set in NiceUI Theme editor window 12 | * 13 | * EXAMPLE: 14 | * [SmallSizeText] public Text buttonText; 15 | * 16 | * If you add this attribute to a text, the editor will find your Text field 17 | * and apply a setting the corresponds to a small size text in your theme editor 18 | * 19 | */ 20 | 21 | 22 | // TEXT ATTRIBUTES use these on all Text and InputField 23 | // object fields whose font you wanna be affected by your global theme settings 24 | 25 | [AttributeUsage(AttributeTargets.Field)] 26 | public class SmallSizeText : Attribute { } 27 | 28 | [AttributeUsage(AttributeTargets.Field)] 29 | public class MiddleSizeText : Attribute { } 30 | 31 | [AttributeUsage(AttributeTargets.Field)] 32 | public class BigSizeText : Attribute { } 33 | 34 | [AttributeUsage(AttributeTargets.Field)] 35 | public class LargeSizeText : Attribute { } 36 | 37 | // COLOR ATTRIBUTES use this on all Image and RectTransform fields (that contain Image components) 38 | // that you wanna be affected by your global theme settings 39 | [AttributeUsage(AttributeTargets.Field)] 40 | public class StartColor : Attribute { } 41 | 42 | [AttributeUsage(AttributeTargets.Field)] 43 | public class EndColor : Attribute { } 44 | 45 | [AttributeUsage(AttributeTargets.Field)] 46 | public class DisabledDarkShade : Attribute { } 47 | 48 | [AttributeUsage(AttributeTargets.Field)] 49 | public class DisabledLightShade : Attribute { } 50 | } -------------------------------------------------------------------------------- /Assets/Components/Attributes/ComponentAttributes.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 72e89464108f4595be4b2079e02c4c38 3 | timeCreated: 1547923262 -------------------------------------------------------------------------------- /Assets/Components/Calendars.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ca9c586574d0458ea1cfc78737f9a43a 3 | timeCreated: 1551708898 -------------------------------------------------------------------------------- /Assets/Components/Calendars/BigMonthView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2eeaea8d21e748beaa5a362034d7c748 3 | timeCreated: 1551709246 -------------------------------------------------------------------------------- /Assets/Components/Calendars/IntervalCalendar.cs: -------------------------------------------------------------------------------- 1 | 2 | using System; 3 | using System.Collections.Generic; 4 | using Components.Localization; 5 | using UnityEngine; 6 | using UnityEngine.Serialization; 7 | using UnityEngine.UI; 8 | 9 | namespace Components.Calendars { 10 | 11 | [ExecuteInEditMode] 12 | public class IntervalCalendar : MonoBehaviour { 13 | 14 | [SerializeField, Tooltip("Use sunday as the first day of the week")] 15 | private bool m_UseSundayAsWeekStart = false; 16 | [SerializeField, Tooltip("The color of sunday text")] 17 | private Color m_SundayColor; 18 | [SerializeField, Tooltip("The color the text for any normal day of month")] 19 | private Color m_NormalDayColor; 20 | [SerializeField, Tooltip("Current day color")] 21 | private Color m_CurrentDayColor; 22 | [SerializeField, Tooltip("The color of mupliple selection marker")] 23 | private Color m_MultipleSelectorColor; 24 | [SerializeField] private Text m_InstructionText; 25 | [SerializeField] private BigMonthView m_BigMonthView; 26 | [SerializeField] private bool m_BoldDaysFont = false; 27 | [SerializeField] private bool m_BoldWeekFont = false; 28 | [SerializeField] private Color m_BackgroundColor; 29 | [SerializeField, Tooltip("Bottom instruction. You may also use {{phraseId}} pattern for localization")] 30 | private string m_BottomPromptText; 31 | 32 | [SerializeField, Tooltip("You may set the names directly, or use a {{dayId}} pattern," + 33 | " in this case the names will be picked up from a localization dictionary")] 34 | private List m_DayNames = new List() { 35 | "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" 36 | }; 37 | [SerializeField, Tooltip("You may set the names directly, or use a {{monthId}} pattern," + 38 | " in this case the names will be picked up from a localization dictionary")] 39 | private List m_MonthNames = new List() { 40 | "January", "February", "March", "April", "May", "June", 41 | "July", "August", "September", "October", "November", "December" 42 | }; 43 | [SerializeField, Tooltip("Whether or not the same colors will be automatically used for day numbers and names")] 44 | private bool m_UseSameColorsForDaysAndNames = true; 45 | 46 | private DateTime m_MinDate; 47 | private DateTime m_MaxDate; 48 | 49 | 50 | private void Start() { 51 | OnValidate(); 52 | } 53 | 54 | 55 | protected void OnValidate() { 56 | var image = gameObject.GetComponent(); 57 | if (image != null) { 58 | image.color = m_BackgroundColor; 59 | } 60 | m_BigMonthView.AllowMultipleSelection = true; 61 | m_BigMonthView.UseSundaysAsWeekStart = m_UseSundayAsWeekStart; 62 | m_BigMonthView.DayNames = m_DayNames; 63 | m_BigMonthView.MonthNames = m_MonthNames; 64 | m_BigMonthView.SetTextStyles(m_NormalDayColor, 65 | m_SundayColor, m_CurrentDayColor, m_MultipleSelectorColor, m_BoldDaysFont, 66 | m_BoldWeekFont, m_UseSameColorsForDaysAndNames); 67 | m_BigMonthView.SetDate(DateTime.Now); 68 | m_InstructionText.text = m_BottomPromptText.Localize(); 69 | //SetSelection(new DateTime(2019, 2, 26), new DateTime(2019, 3, 31)); 70 | 71 | } 72 | /// 73 | /// Sets multiple selection of days creating a time span 74 | /// and highlights the selected dates with a marker 75 | /// 76 | /// 77 | /// 78 | public void SetSelection(DateTime minDate, DateTime maxDate) { 79 | if (maxDate < minDate) { 80 | throw new ArgumentException("Max date can't be less than the min one"); 81 | } 82 | m_MinDate = minDate; 83 | m_MaxDate = maxDate; 84 | m_BigMonthView.SetSelection(minDate, maxDate); 85 | } 86 | 87 | } 88 | } -------------------------------------------------------------------------------- /Assets/Components/Calendars/IntervalCalendar.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4fbdd82acd3342cd9196f0238669a21f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Components/Clickable.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 63cf3edf30fb412181cb2ebe274386e2 3 | timeCreated: 1547534358 -------------------------------------------------------------------------------- /Assets/Components/Clickable/AnimatableButton.cs: -------------------------------------------------------------------------------- 1 | using Components.Attributes; 2 | using UnityEngine; 3 | using UnityEngine.EventSystems; 4 | using UnityEngine.UI; 5 | 6 | namespace Components.Clickable { 7 | 8 | [ExecuteInEditMode] 9 | public class AnimatableButton : InteractiveObject { 10 | 11 | [SerializeField] protected Image m_Background; 12 | [SerializeField] protected Text m_Text; 13 | [Tooltip("Optional icon which could be placed inside this botton and will be colorized if ChangeColors is 'true'")] 14 | [SerializeField] protected Image m_InnerIcon; 15 | [SerializeField] protected bool m_IsDisabled = false; 16 | [SerializeField] private bool m_AnimateColoring = true; 17 | [Tooltip("Start color for inner contents like icons or texts. This color will be applied on button press")] 18 | [SerializeField][StartColor] protected Color m_StartColor; 19 | [Tooltip("End color from inner contents like icons or texts")] 20 | [SerializeField, EndColor] protected Color m_EndColor; 21 | [SerializeField, EndColor, Tooltip("The current color of the text and icons inside")] 22 | protected Color m_CurrentColor; 23 | [SerializeField] private Color m_BackgroundColor; 24 | [SerializeField][DisabledDarkShade] private Color m_DisabledColor; 25 | [SerializeField] private float m_AnimationSpeed = 30.0f; 26 | private float m_CurAnimationProgress = 1.0f; 27 | 28 | 29 | private void Start() { 30 | 31 | } 32 | 33 | protected override void OnValidate() { 34 | base.OnValidate(); 35 | m_CurrentColor = m_EndColor; 36 | SetColors(); 37 | } 38 | 39 | protected override void SetColors() { 40 | if (!m_ChangeColor) return; 41 | 42 | if (m_Background != null) { 43 | m_Background.color = m_BackgroundColor; 44 | } 45 | if (m_InnerIcon != null) { 46 | m_InnerIcon.color = m_CurrentColor; 47 | } 48 | 49 | if (m_Text != null) { 50 | m_Text.color = m_CurrentColor; 51 | } 52 | 53 | 54 | } 55 | 56 | private void FixedUpdate() { 57 | if (m_IsDisabled || !m_AnimateColoring) return; 58 | if (!m_IsPressed) { 59 | if (m_CurAnimationProgress > .9990f) return; 60 | m_CurAnimationProgress += m_AnimationSpeed * Time.deltaTime; 61 | } 62 | else { 63 | if (m_CurAnimationProgress < .0001f) return; 64 | m_CurAnimationProgress -= m_AnimationSpeed * Time.deltaTime; 65 | } 66 | m_CurAnimationProgress = Mathf.Clamp01(m_CurAnimationProgress); 67 | SetAnimationProgress(m_CurAnimationProgress); 68 | } 69 | 70 | /// 71 | /// Can be used in the inheritors 72 | /// 73 | /// 74 | protected virtual void SetAnimationProgress(float value) { 75 | m_CurrentColor = ComponentUtils.MixColorsByValue(m_StartColor, m_EndColor, value); 76 | SetColors(); 77 | } 78 | 79 | public override void OnPointerDown(PointerEventData eventData) { 80 | if (m_IsDisabled) return; 81 | base.OnPointerDown(eventData); 82 | if (!m_AnimateColoring) { 83 | m_CurrentColor = m_EndColor; 84 | SetColors(); 85 | } 86 | 87 | } 88 | 89 | public override void OnPointerUp(PointerEventData eventData) { 90 | if (m_IsDisabled) return; 91 | base.OnPointerUp(eventData); 92 | if (!m_AnimateColoring) { 93 | m_CurrentColor = m_StartColor; 94 | SetColors(); 95 | } 96 | } 97 | } 98 | } -------------------------------------------------------------------------------- /Assets/Components/Clickable/AnimatableButton.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2183b457b501439e83597606ac887a0d 3 | timeCreated: 1548265055 -------------------------------------------------------------------------------- /Assets/Components/Clickable/HamburgerMenuButton.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace Components.Clickable { 5 | 6 | 7 | public class HamburgerMenuButton : AnimatableButton { 8 | 9 | [Tooltip("Will apply rotation animation to the inner icon when the drawer it's attached to is opening or closing")] 10 | [SerializeField] private bool m_RotateButtonOnDrawerOpen = true; 11 | [Tooltip("Max angle of inner icon rotation in degrees. May be positive or negative. Set negative for clockwise rotation")] 12 | [SerializeField] private float m_MaxRotationAngle = -180f; 13 | 14 | private float m_RotationValue = 0; 15 | 16 | 17 | protected override void OnValidate() { 18 | base.OnValidate(); 19 | m_CurrentColor = ComponentUtils.MixColorsByValue(m_StartColor, m_EndColor, m_RotationValue); 20 | } 21 | 22 | internal void RotateByValue(float value) { 23 | 24 | if (m_RotateButtonOnDrawerOpen) { 25 | value = Mathf.Clamp01(value); 26 | m_RotationValue = value; 27 | var angle = value * m_MaxRotationAngle; 28 | m_InnerIcon.rectTransform.eulerAngles = new Vector3(0, 0, angle); 29 | m_CurrentColor = ComponentUtils.MixColorsByValue(m_StartColor, m_EndColor, m_RotationValue); 30 | SetColors(); 31 | } 32 | else { 33 | m_RotationValue = 0; 34 | } 35 | } 36 | protected override void SetAnimationProgress(float value) { 37 | if (!m_RotateButtonOnDrawerOpen) { 38 | base.SetAnimationProgress(value); 39 | } 40 | } 41 | 42 | } 43 | } -------------------------------------------------------------------------------- /Assets/Components/Clickable/HamburgerMenuButton.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d81032284bff43cf8594791880b79ab2 3 | timeCreated: 1548341258 -------------------------------------------------------------------------------- /Assets/Components/Clickable/Toggle.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.Events; 3 | using UnityEngine.EventSystems; 4 | using UnityEngine.UI; 5 | 6 | namespace Components.Clickable { 7 | 8 | [ExecuteInEditMode] 9 | public class Toggle : InteractiveObject { 10 | 11 | [Tooltip("Whether it's nevessary or not to tween color from one color to another when the toggle is switched")] 12 | [SerializeField] private bool m_ChangeColorOnSwitch; 13 | [SerializeField] private Image m_Background; 14 | [SerializeField] private Image m_Knob; 15 | [SerializeField] private Color m_KnobOffColor; 16 | [SerializeField] private Color m_KnobOnColor; 17 | [SerializeField] private Color m_BackgroundOffColor; 18 | [SerializeField] private Color m_BackgroundOnColor; 19 | [SerializeField] private Color m_BackgroundDisabledColor; 20 | [SerializeField] private Color m_KnobDisabledColor; 21 | [SerializeField] private bool m_IsOn = false; 22 | [SerializeField] private bool m_IsDisabled = false; 23 | [SerializeField] private bool m_AnimateToggling = true; 24 | // a value between 0 and 1 25 | private float m_CurMoveX = 0; 26 | private RectTransform m_KnobTransform; 27 | private float m_KnobPosY = 0; 28 | private float m_StartX = 0; 29 | private float m_EndX = 0; 30 | 31 | public event UnityAction ValueChange; 32 | 33 | private void Start() { 34 | Setup(); 35 | } 36 | 37 | public bool IsOn { 38 | get { return m_IsOn; } 39 | set { 40 | if (IsDisabled) return; 41 | 42 | if (m_IsOn != value) { 43 | m_IsOn = value; 44 | if (!m_AnimateToggling) { 45 | ChangeView(value ? 1 : 0); 46 | } 47 | ValueChange?.Invoke(value); 48 | } 49 | 50 | } 51 | } 52 | 53 | public bool IsDisabled { 54 | get { return m_IsDisabled; } 55 | set { 56 | m_IsDisabled = value; 57 | if (value) { 58 | m_Background.color = m_BackgroundDisabledColor; 59 | m_Knob.color = m_KnobDisabledColor; 60 | } 61 | else { 62 | ChangeView(IsOn ? 1 : 0); 63 | } 64 | } 65 | } 66 | 67 | private void ChangeView(float knobMovePercent) { 68 | if (m_ChangeColorOnSwitch) { 69 | m_Knob.color = ComponentUtils.MixColorsByValue(m_KnobOffColor, m_KnobOnColor, knobMovePercent); 70 | m_Background.color = ComponentUtils.MixColorsByValue(m_BackgroundOffColor, m_BackgroundOnColor, knobMovePercent); 71 | } 72 | else { 73 | m_Knob.color = m_KnobOnColor; 74 | m_Background.color = m_BackgroundOnColor; 75 | } 76 | 77 | var posX = ((m_StartX - m_EndX) * knobMovePercent) + m_EndX; 78 | m_KnobTransform.anchoredPosition = new Vector2(posX, m_KnobPosY); 79 | } 80 | 81 | private void FixedUpdate() { 82 | if (IsDisabled || !m_AnimateToggling) return; 83 | if (m_IsOn) { 84 | if (m_CurMoveX > .9899) return; 85 | m_CurMoveX = Mathf.Lerp(m_CurMoveX, 1, 15f * Time.deltaTime); 86 | } 87 | else { 88 | if (m_CurMoveX < .0001) return; 89 | m_CurMoveX = Mathf.Lerp(m_CurMoveX, 0, 15f * Time.deltaTime); 90 | 91 | } 92 | ChangeView(m_CurMoveX); 93 | } 94 | 95 | private void Setup() { 96 | m_KnobTransform = m_Knob.GetComponent(); 97 | var startPosition = m_KnobTransform.anchoredPosition; 98 | m_StartX = Mathf.Abs(startPosition.x); 99 | m_KnobPosY = startPosition.y; 100 | m_EndX = -m_StartX; 101 | if (m_ChangeColorOnSwitch) { 102 | if (m_IsOn) { 103 | m_Background.color = m_BackgroundOnColor; 104 | m_Knob.color = m_KnobOnColor; 105 | } 106 | else { 107 | m_Background.color = m_BackgroundOffColor; 108 | m_Knob.color = m_KnobOffColor; 109 | } 110 | } 111 | else { 112 | m_Background.color = m_BackgroundOnColor; 113 | m_Knob.color = m_KnobOnColor; 114 | } 115 | 116 | m_CurMoveX = m_IsOn ? 1 : 0; 117 | m_KnobTransform.anchoredPosition = new Vector2(m_IsOn ? m_StartX : m_EndX, m_KnobPosY); 118 | IsDisabled = IsDisabled; 119 | } 120 | 121 | 122 | protected override void OnValidate() { 123 | Setup(); 124 | } 125 | 126 | public override void OnPointerClick(PointerEventData eventData) { 127 | IsOn = !IsOn; 128 | } 129 | } 130 | } -------------------------------------------------------------------------------- /Assets/Components/Clickable/Toggle.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fc95f80b0103468089637449ac7fe952 3 | timeCreated: 1547534371 -------------------------------------------------------------------------------- /Assets/Components/ComponentBehaviour.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using UnityEngine; 4 | 5 | namespace Components { 6 | public class ComponentBehaviour : MonoBehaviour { 7 | 8 | 9 | [Tooltip("Whether or not will this component use theme colors which you set in NiceUI Kit Theme Editor window")] 10 | [SerializeField] private bool UseGlobalThemeColors = true; 11 | [Tooltip("If 'false' the selected colors won't affect the component")] 12 | [SerializeField] internal bool m_ChangeColor = false; 13 | //[SerializeField] internal float m_AnimationSpeed = 30.0f; 14 | private RectTransform m_RectTransform; 15 | 16 | /// 17 | /// Calls a method after some delay. 18 | /// Might be useful in an asynchronous scenario 19 | /// 20 | /// A delegate to be called after the delay 21 | /// Delay in seconds 22 | public void DelayCall(Action callback, float delay) { 23 | if (callback != null) { 24 | StartCoroutine(Caller(callback, delay)); 25 | } 26 | } 27 | 28 | protected RectTransform GetRectTransform() { 29 | if (m_RectTransform == null) { 30 | m_RectTransform = GetComponent(); 31 | } 32 | 33 | return m_RectTransform; 34 | } 35 | 36 | protected virtual void OnValidate() {} 37 | 38 | private static IEnumerator Caller(Action callback, float delay) { 39 | yield return new WaitForSeconds(delay); 40 | callback?.Invoke(); 41 | } 42 | protected virtual void SetColors() {} 43 | 44 | } 45 | } -------------------------------------------------------------------------------- /Assets/Components/ComponentBehaviour.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 03cba1517dee43cab7ba1ecde68f2135 3 | timeCreated: 1547920386 -------------------------------------------------------------------------------- /Assets/Components/ComponentHolder.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace Components { 4 | 5 | 6 | public class ComponentHolder : ComponentBehaviour { 7 | 8 | 9 | } 10 | } -------------------------------------------------------------------------------- /Assets/Components/ComponentHolder.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb88bf11db004e79b83cffcda4b1eb2c 3 | timeCreated: 1543990289 -------------------------------------------------------------------------------- /Assets/Components/ComponentUtils.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using Components.Texts; 5 | using UnityEngine; 6 | using Object = UnityEngine.Object; 7 | 8 | 9 | namespace Components { 10 | public static class ComponentUtils { 11 | 12 | 13 | /// 14 | /// Mixes 2 colors by a specified value 15 | /// 16 | /// 17 | /// 18 | /// a value of mixture from 0 to 1 19 | /// A resulting color 20 | public static Color MixColorsByValue(Color startColor, Color endColor, float mixValue) { 21 | mixValue = Mathf.Clamp01(mixValue); 22 | return startColor + ((endColor - startColor) * mixValue); 23 | } 24 | 25 | /// 26 | /// Finds all object of a specified type in child transforms and adds them to List 27 | /// 28 | /// The parent transform 29 | /// a collection to use as a storage 30 | /// 31 | public static void CollectInstancesInChildren(Transform transform, List toCollection) { 32 | var numChildren = transform.childCount; 33 | if (numChildren > 0) { 34 | for (var i = 0; i < numChildren; i++) { 35 | var child = transform.GetChild(i); 36 | CollectInstancesInChildren(child, toCollection); 37 | } 38 | } 39 | var instance = transform.gameObject.GetComponent(); 40 | if (instance != null) { 41 | toCollection.Add(instance); 42 | } 43 | } 44 | 45 | public static GameObject InstantiatePrefab(string prefabName) { 46 | return (GameObject)Object.Instantiate(Resources.Load(Path.Combine("NiceUIPrefabs", prefabName))); 47 | } 48 | 49 | public static string GetProjectName() { 50 | var splitPath = Application.dataPath.Split('/'); 51 | var projectName = splitPath[splitPath.Length - 2]; 52 | return projectName; 53 | } 54 | /// 55 | /// Finds all objects that have attached component of the specified type 56 | /// 57 | /// 58 | /// 59 | public static List FindObjectsWithComponentsOfType(bool onlyActiveInHierarchy = false) where T : Behaviour { 60 | var allGameObjects = (GameObject[])Resources.FindObjectsOfTypeAll(typeof(GameObject)); 61 | var result = new List(); 62 | foreach (var go in allGameObjects) { 63 | var componentHolder = go.GetComponent(); 64 | if (onlyActiveInHierarchy) { 65 | if (componentHolder == null || !componentHolder.gameObject.activeInHierarchy) { 66 | continue; 67 | } 68 | result.Add(componentHolder); 69 | } 70 | else { 71 | if (componentHolder != null) { 72 | result.Add(componentHolder); 73 | } 74 | } 75 | } 76 | return result; 77 | } 78 | 79 | } 80 | } -------------------------------------------------------------------------------- /Assets/Components/ComponentUtils.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 19a823ebe3da420bb219ab0bb20b2a41 3 | timeCreated: 1547538055 -------------------------------------------------------------------------------- /Assets/Components/ContainerVerticalResizer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace Components { 5 | 6 | // changes the height of the container, depending on its children bounding box 7 | [DisallowMultipleComponent] 8 | public class ContainerVerticalResizer : MonoBehaviour { 9 | 10 | 11 | private RectTransform m_RectTransform; 12 | private int m_LastChildCount = 0; 13 | private float m_MinHeight = 0; 14 | private readonly List m_Children = new List(); 15 | 16 | 17 | private void Start() { 18 | m_RectTransform = GetComponent(); 19 | SetupMinHeight(); 20 | CalculateContainerSize(); 21 | } 22 | 23 | private void SetupMinHeight() { 24 | if (m_MinHeight < 1) { 25 | m_MinHeight = m_RectTransform.rect.height; 26 | } 27 | } 28 | 29 | private void OnDisable() { 30 | m_Children.Clear(); 31 | m_LastChildCount = 0; 32 | } 33 | 34 | private void CalculateContainerSize() { 35 | var containerHeight = 0; 36 | m_Children.ForEach(childRect => { 37 | var pivotY = childRect.pivot.y; 38 | var height = childRect.rect.height * pivotY; 39 | var maxChildY = (int)(Mathf.Abs(childRect.anchoredPosition.y) + height); 40 | if (maxChildY > containerHeight) { 41 | containerHeight = maxChildY; 42 | } 43 | }); 44 | var size = m_RectTransform.sizeDelta; 45 | size.y = Mathf.Max(containerHeight, m_MinHeight); 46 | m_RectTransform.sizeDelta = size; 47 | } 48 | 49 | private void LateUpdate() { 50 | var numChildren = m_RectTransform.childCount; 51 | if (numChildren != m_LastChildCount) { 52 | m_LastChildCount = numChildren; 53 | m_Children.Clear(); 54 | for (var i = 0; i < numChildren; i++) { 55 | var childTransform = m_RectTransform.GetChild(i); 56 | var childRect = childTransform.GetComponent(); 57 | if (childRect != null) m_Children.Add(childRect); 58 | } 59 | } 60 | // must be called evety frame to account for possible children positions change 61 | CalculateContainerSize(); 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /Assets/Components/ContainerVerticalResizer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ac38342fce949d4be7a03177bf45457 3 | timeCreated: 1549729843 -------------------------------------------------------------------------------- /Assets/Components/Drawer.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 11c750519e15c0d4caf08773231ec331 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Components/Drawer/NavigationDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3e0e3f18e89c4eb693ceb6bf8d73de1b 3 | timeCreated: 1538909613 -------------------------------------------------------------------------------- /Assets/Components/Drawer/NavigationDrawerPanel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using UnityEngine; 4 | 5 | namespace Components.Drawer { 6 | 7 | // a window which simply holds 2 or 1 drawer 8 | [ExecuteInEditMode] 9 | public class NavigationDrawerPanel : ComponentHolder { 10 | 11 | 12 | private NavigationDrawer[] m_NavigationDrawers; 13 | [SerializeField] private bool m_RightDrawerActive = true; 14 | [SerializeField] private bool m_LeftDrawerActive = true; 15 | 16 | private void Start() { 17 | AttachDrawers(); 18 | } 19 | 20 | private void AttachDrawers() { 21 | m_NavigationDrawers = transform.GetComponentsInChildren(true); 22 | if (m_NavigationDrawers.Length > 2) { 23 | throw new Exception("There can be no more than 2 drawers!"); 24 | } 25 | 26 | var numLeft = m_NavigationDrawers.Count(drawer => drawer.NavigationDrawerPosition == NavigationDrawerPosition.Left); 27 | var numRight = m_NavigationDrawers.Count(drawer => drawer.NavigationDrawerPosition == NavigationDrawerPosition.Right); 28 | if (numLeft > 1 || numRight > 1) { 29 | throw new Exception("Only 1 drawer for each position is allowed!"); 30 | } 31 | var leftDrawer = GetDrawerForPosition(NavigationDrawerPosition.Left); 32 | if (leftDrawer != null) leftDrawer.gameObject.SetActive(m_LeftDrawerActive); 33 | 34 | var rightDrawer = GetDrawerForPosition(NavigationDrawerPosition.Right); 35 | if (rightDrawer != null) rightDrawer.gameObject.SetActive(m_RightDrawerActive); 36 | } 37 | 38 | public NavigationDrawer GetDrawerForPosition(NavigationDrawerPosition navigationDrawerPosition) { 39 | if (m_NavigationDrawers == null) { 40 | AttachDrawers(); 41 | } 42 | return m_NavigationDrawers.FirstOrDefault(d => d.NavigationDrawerPosition == navigationDrawerPosition); 43 | } 44 | 45 | protected override void OnValidate() { 46 | AttachDrawers(); 47 | 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /Assets/Components/Drawer/NavigationDrawerPanel.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad6abddafa7545fbbc6131cbf6946417 3 | timeCreated: 1547905380 -------------------------------------------------------------------------------- /Assets/Components/Drawer/NavigationDrawerPosition.cs: -------------------------------------------------------------------------------- 1 | namespace Components.Drawer { 2 | public enum NavigationDrawerPosition { 3 | Left = -1, 4 | Right = 1 5 | } 6 | } -------------------------------------------------------------------------------- /Assets/Components/Drawer/NavigationDrawerPosition.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ffe8581b5974540b1bab6516d9681f3 3 | timeCreated: 1543996418 -------------------------------------------------------------------------------- /Assets/Components/Drawer/NavigationDrawerSidePanel.cs: -------------------------------------------------------------------------------- 1 | namespace Components.Drawer { 2 | public class NavigationDrawerSidePanel : InteractiveObject { 3 | 4 | } 5 | } -------------------------------------------------------------------------------- /Assets/Components/Drawer/NavigationDrawerSidePanel.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 69dc711e47f7486f9be7446fab30d347 3 | timeCreated: 1538984613 -------------------------------------------------------------------------------- /Assets/Components/DrawerSettingsPanel.cs: -------------------------------------------------------------------------------- 1 | using Components.Drawer; 2 | using UnityEngine; 3 | using UnityEngine.UI; 4 | 5 | namespace Components { 6 | public class DrawerSettingsPanel : MonoBehaviour { 7 | 8 | [SerializeField] private Slider m_OpeningDelta; 9 | [SerializeField] private Slider m_ClosingDelta; 10 | [SerializeField] private Slider m_AnimationSpeed; 11 | [SerializeField] private Slider m_TimeBetweenChecks; 12 | [SerializeField] private Slider m_MinDistToOpen; 13 | [SerializeField] private Text m_OpeningDeltaText; 14 | [SerializeField] private Text m_ClosingDeltaText; 15 | [SerializeField] private Text m_AnimationSpeedText; 16 | [SerializeField] private Text m_TimeBetweenChecksText; 17 | [SerializeField] private Text m_MinDistToOpenText; 18 | 19 | private void Start() { 20 | 21 | m_OpeningDelta.value = NavigationDrawer.m_OpeningDelta; 22 | m_ClosingDelta.value = NavigationDrawer.m_ClosingingDelta; 23 | m_AnimationSpeed.value = NavigationDrawer.m_AnimationSpeed; 24 | m_TimeBetweenChecks.value = NavigationDrawer.m_TimeBetweenChecks; 25 | m_MinDistToOpen.value = NavigationDrawer.m_MinDistForQuickSwipeOpen; 26 | 27 | m_OpeningDeltaText.text = $"Дельта открытия {m_OpeningDelta.value:F2}"; 28 | m_ClosingDeltaText.text = $"Дельта закрытия {m_ClosingDelta.value:F2}"; 29 | m_AnimationSpeedText.text = $"Скорость анимации {m_AnimationSpeed.value:F2}"; 30 | m_TimeBetweenChecksText.text = $"Время между проверками {m_TimeBetweenChecks.value:F3}"; 31 | m_MinDistToOpenText.text = $"Мин растояние открытия свайпом {m_MinDistToOpen.value:F2}"; 32 | 33 | m_OpeningDelta.onValueChanged.AddListener(value => { 34 | NavigationDrawer.m_OpeningDelta = value; 35 | m_OpeningDeltaText.text = $"Дельта открытия {value:F2}"; 36 | }); 37 | m_ClosingDelta.onValueChanged.AddListener(value => { 38 | NavigationDrawer.m_ClosingingDelta = value; 39 | m_ClosingDeltaText.text = $"Дельта закрытия {value:F2}"; 40 | }); 41 | m_AnimationSpeed.onValueChanged.AddListener(value => { 42 | NavigationDrawer.m_AnimationSpeed = value; 43 | m_AnimationSpeedText.text = $"Скорость анимации {value:F2}"; 44 | }); 45 | m_TimeBetweenChecks.onValueChanged.AddListener(value => { 46 | NavigationDrawer.m_TimeBetweenChecks = value; 47 | m_TimeBetweenChecksText.text = $"Время между проверками {value:F3}"; 48 | }); 49 | m_MinDistToOpen.onValueChanged.AddListener(value => { 50 | NavigationDrawer.m_MinDistForQuickSwipeOpen = value; 51 | m_MinDistToOpenText.text = $"Мин растояние открытия свайпом {value:F2}"; 52 | }); 53 | 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /Assets/Components/DrawerSettingsPanel.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ac19208999d74541a7282ceba0c3296a 3 | timeCreated: 1551968132 -------------------------------------------------------------------------------- /Assets/Components/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 51dc7f853c5047d28efe3b19c13eea7c 3 | timeCreated: 1547897547 -------------------------------------------------------------------------------- /Assets/Components/Editor/NiceUIMenus.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using UnityEditor; 3 | using UnityEngine; 4 | using static UnityEngine.Debug; 5 | 6 | namespace Components.Editor { 7 | public class NiceUiMenus { 8 | 9 | private static UiController m_UiController; 10 | 11 | [MenuItem("NiceUI Kit/Initialize Application Frame", false, -10)] 12 | private static void InitializeAppFrame() { 13 | if (IsInitialized()) { 14 | EditorUtility.DisplayDialog("Information", "Already initialized!", "Ok"); 15 | return; 16 | } 17 | InitUiController(); 18 | } 19 | 20 | [MenuItem("NiceUI Kit/Add Navigation Drawer Panel")] 21 | private static void AddNavigationDrawerPanel() { 22 | GetUiController()?.AddNavigationDrawerPanel(); 23 | } 24 | [MenuItem("NiceUI Kit/Add Action Bar")] 25 | private static void AddActionBar() { 26 | GetUiController()?.AddActionBar(); 27 | } 28 | 29 | 30 | [MenuItem("NiceUI Kit/Remove Navigation Drawer Panel")] 31 | private static void RemoveDrawerPanel() { 32 | if (!IsInitialized()) { 33 | EditorUtility.DisplayDialog("Warning", "Nothing to remove", "Ok"); 34 | return; 35 | } 36 | 37 | if (EditorUtility.DisplayDialog("Warning", 38 | "The panel with drawers will be completely destroyed!\nIt is not possible to undo this operation!\n" + 39 | "Are you sure you want to continue and remove it?", "Remove", "Cancel")) { 40 | m_UiController.RemoveNavigationDrawerPanel(); 41 | } 42 | } 43 | [MenuItem("NiceUI Kit/Remove Action Bar")] 44 | private static void RemoveActionBar() { 45 | if (!IsInitialized()) { 46 | EditorUtility.DisplayDialog("Warning", "Nothing to remove", "Ok"); 47 | return; 48 | } 49 | if (EditorUtility.DisplayDialog("Warning", 50 | "The action bar will be completely destroyed!\nIt is not possible to undo this operation!\n" + 51 | "Are you sure you want to continue and remove it?", "Remove", "Cancel")) { 52 | m_UiController.RemoveActionBar(); 53 | } 54 | } 55 | 56 | 57 | private static bool IsInitialized() { 58 | var allGameObjects = (GameObject[])Resources.FindObjectsOfTypeAll(typeof(GameObject)); 59 | var uiHolderGameObject = allGameObjects.FirstOrDefault(g => { 60 | var uiController = g.GetComponent(); 61 | return uiController != null && g.activeInHierarchy; 62 | }); 63 | if (uiHolderGameObject != null && m_UiController == null) { 64 | m_UiController = uiHolderGameObject.GetComponent(); 65 | } 66 | 67 | return uiHolderGameObject != null && uiHolderGameObject.activeInHierarchy; 68 | } 69 | 70 | 71 | private static UiController GetUiController() { 72 | if (m_UiController != null) return m_UiController; 73 | // если при загрузке юньки уже есть контроллер, но ссылки еще нет 74 | var allGameObjects = (GameObject[])Resources.FindObjectsOfTypeAll(typeof(GameObject)); 75 | foreach (var gameObject in allGameObjects) { 76 | var uiController = gameObject.GetComponent(); 77 | if (uiController == null || !gameObject.activeInHierarchy) continue; 78 | m_UiController = uiController; 79 | break; 80 | } 81 | 82 | if (m_UiController == null) { 83 | if (EditorUtility.DisplayDialog("Warning", 84 | "The application needs to be initialized first. Do you want to initialize in now?", "Yes", "No")) { 85 | InitializeAppFrame(); 86 | } 87 | } 88 | 89 | return m_UiController; 90 | } 91 | 92 | private static void InitUiController() { 93 | if (IsInitialized()) return; 94 | m_UiController = ComponentUtils.InstantiatePrefab("UIController_pfb")?.GetComponent(); 95 | } 96 | } 97 | } -------------------------------------------------------------------------------- /Assets/Components/Editor/NiceUIMenus.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d6f94b5666654427ad4497c84813951f 3 | timeCreated: 1547911004 -------------------------------------------------------------------------------- /Assets/Components/Editor/NiceUIThemeEditor.cs: -------------------------------------------------------------------------------- 1 | namespace Components.Editor { 2 | using UnityEngine; 3 | using UnityEditor; 4 | 5 | public class NiceUiThemeEditor : EditorWindow { 6 | 7 | [SerializeField] private bool m_UseDarkTheme; 8 | [SerializeField] private bool m_EnableAnimatableControlsColorsGroup; 9 | [SerializeField] private bool m_EnableBackgroundColorsGroup; 10 | [SerializeField] private Color m_StartColor = new Color(0.0f, 0.380f, 0.356f); 11 | [SerializeField] private Color m_EndColor = new Color(0.0f, 0.8313f, 0.7803f); 12 | [SerializeField] private Color m_DisabledDarkShadeColor = new Color(0.17f, 0.17f, 0.17f); 13 | [SerializeField] private Color m_DisabledLightShadeColor = new Color(0.302f, 0.302f, 0.302f); 14 | [SerializeField] private Color m_LightControlBackgroundColor = new Color(0.9245f, 0.9245f, 0.9245f); 15 | [SerializeField] private Color m_DarkControlBackgroundColor = new Color(0.169f, 0.169f, 0.169f); 16 | [SerializeField] private Color m_DarkPageBackgroundColor = new Color(0.10f, 0.10f, 0.10f); 17 | [SerializeField] private Color m_LightPageBackgroundColor = new Color(0.90f, 0.90f, 0.90f); 18 | 19 | 20 | [MenuItem("NiceUI Kit/Theme Editor")] 21 | static void Init() { 22 | var window = (NiceUiThemeEditor)GetWindow(typeof(NiceUiThemeEditor)); 23 | window.Show(); 24 | } 25 | 26 | private void OnEnable() { 27 | UnityEngine.Debug.Log(ComponentUtils.GetProjectName()); 28 | var data = EditorPrefs.GetString(ComponentUtils.GetProjectName(), JsonUtility.ToJson(this, false)); 29 | JsonUtility.FromJsonOverwrite(data, this); 30 | } 31 | 32 | private void OnDisable() { 33 | var data = JsonUtility.ToJson(this, false); 34 | EditorPrefs.SetString(ComponentUtils.GetProjectName(), data); 35 | } 36 | 37 | private void OnGUI() { 38 | GUILayout.Label("Base theme settings", EditorStyles.boldLabel); 39 | GUILayout.Label("Whether or not to use dark background colors"); 40 | m_UseDarkTheme = GUILayout.Toggle(m_UseDarkTheme, "Use dark theme"); 41 | m_EnableAnimatableControlsColorsGroup = EditorGUILayout.BeginToggleGroup("Colors for animatable controls", m_EnableAnimatableControlsColorsGroup); 42 | m_StartColor = EditorGUILayout.ColorField("Icon and text start color", m_StartColor); 43 | m_EndColor = EditorGUILayout.ColorField("Icon and text end", m_EndColor); 44 | m_DisabledDarkShadeColor = EditorGUILayout.ColorField("Dark color for disabled components", m_DisabledDarkShadeColor); 45 | m_DisabledLightShadeColor = EditorGUILayout.ColorField("Light color for disabled components", m_DisabledLightShadeColor); 46 | GUILayout.Space(20); 47 | EditorGUILayout.EndToggleGroup(); 48 | m_EnableBackgroundColorsGroup = EditorGUILayout.BeginToggleGroup("Background colors", m_EnableBackgroundColorsGroup); 49 | m_LightControlBackgroundColor = EditorGUILayout.ColorField("Light control background", m_LightControlBackgroundColor); 50 | m_DarkControlBackgroundColor = EditorGUILayout.ColorField("Dark control background", m_DarkControlBackgroundColor); 51 | m_DarkPageBackgroundColor = EditorGUILayout.ColorField("Dark page background", m_DarkPageBackgroundColor); 52 | m_LightPageBackgroundColor = EditorGUILayout.ColorField("Light page background", m_LightPageBackgroundColor); 53 | EditorGUILayout.EndToggleGroup(); 54 | 55 | 56 | GUILayout.Label("Apply theme to all components", EditorStyles.label); 57 | if (GUILayout.Button("Apply Theme")) { 58 | if (EditorUtility.DisplayDialog("Confirmation", 59 | "These settings will be applied to all fields that " + 60 | "have attributes from the 'ComponentAttributes.cs' file attached " + 61 | "and whose 'UseGlobalThemeColors' field is set to true" + 62 | "\nDo you want to continue?", "Yes", "No")) { 63 | ApplySettings(); 64 | } 65 | } 66 | } 67 | 68 | private void ApplySettings() { 69 | Debug.Log("APPLYING"); 70 | } 71 | 72 | } 73 | } -------------------------------------------------------------------------------- /Assets/Components/Editor/NiceUIThemeEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 96efeef63db545c4b54b1fc472d90cf3 3 | timeCreated: 1547897557 -------------------------------------------------------------------------------- /Assets/Components/Extensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using UnityEngine; 6 | using UnityEngine.UI; 7 | 8 | namespace Components { 9 | public static class Extensions { 10 | 11 | private static readonly CultureInfo m_Culture = new CultureInfo("en-US"); 12 | 13 | public static void SetAsPassword(this InputField inputField) { 14 | inputField.contentType = InputField.ContentType.Password; 15 | inputField.ForceLabelUpdate(); 16 | } 17 | public static void SetAsStandard(this InputField inputField) { 18 | inputField.contentType = InputField.ContentType.Standard; 19 | inputField.ForceLabelUpdate(); 20 | } 21 | public static bool IsPassword(this InputField inputField) { 22 | return inputField.contentType == InputField.ContentType.Password; 23 | } 24 | public static T GetOrAddComponent(this GameObject gameObject) where T : Component { 25 | var result = gameObject.GetComponent(); 26 | if (result == default(T)) { 27 | result = gameObject.AddComponent(); 28 | } 29 | return result; 30 | } 31 | public static bool HasComponent(this GameObject gameObject) where T : Component { 32 | return gameObject.GetComponent() != null; 33 | } 34 | public static IList Swap(this IList list, int indexA, int indexB) { 35 | T tmp = list[indexA]; 36 | list[indexA] = list[indexB]; 37 | list[indexB] = tmp; 38 | return list; 39 | } 40 | 41 | public static int SwapWith(this int input, ref int target) { 42 | var temp = input; 43 | input = target; 44 | target = temp; 45 | return input; 46 | } 47 | 48 | /// 49 | /// returns the ordinal number of the day of the week the month has started on. 50 | /// The week here starts from a monday and ends with a sunday 51 | /// 52 | /// 53 | /// 54 | /// 55 | public static int GetDayOfWeekMonthStartedOn(this DateTime dateTime, bool useSundayAsWeekStart) { 56 | var date = new DateTime(dateTime.Year, dateTime.Month, 1); 57 | if (useSundayAsWeekStart) return (int)date.DayOfWeek; 58 | 59 | switch (date.DayOfWeek) { 60 | case DayOfWeek.Monday: 61 | return 0; 62 | case DayOfWeek.Tuesday: 63 | return 1; 64 | case DayOfWeek.Wednesday: 65 | return 2; 66 | case DayOfWeek.Thursday: 67 | return 3; 68 | case DayOfWeek.Friday: 69 | return 4; 70 | case DayOfWeek.Saturday: 71 | return 5; 72 | case DayOfWeek.Sunday: 73 | return 6; 74 | } 75 | 76 | return 0; 77 | } 78 | /// 79 | /// Gets a date with a month preceeding to this 80 | /// 81 | /// 82 | /// 83 | public static DateTime GetPreviousMonth(this DateTime dateTime) { 84 | return dateTime.AddMonths(-1); 85 | } 86 | /// 87 | /// Gets a date with a month right next to this 88 | /// 89 | /// 90 | /// 91 | public static DateTime GetNextMonth(this DateTime dateTime) { 92 | return dateTime.AddMonths(1); 93 | } 94 | 95 | public static int GetNumDaysInMonth(this DateTime dateTime) { 96 | return DateTime.DaysInMonth(dateTime.Year, dateTime.Month); 97 | } 98 | 99 | // to simplify chaining 100 | public static float Abs(this float num) { 101 | return Math.Abs(num); 102 | } 103 | public static int Abs(this int num) { 104 | return Math.Abs(num); 105 | } 106 | public static int ToInt(this float num) { 107 | return (int)num; 108 | } 109 | /// 110 | /// Converts long number to their shorter string representation 111 | /// For exameple 1000 -> 1K, 1000000 -> 1M, 1300 -> 1.3K and so on 112 | /// 113 | /// Number to format 114 | /// 115 | public static string ToShorterView(this double number) { 116 | string[] numberNames = {"K", "M", "B"}; 117 | var i = 0; 118 | while (number >= TenPower((i + 1) * 3)) { 119 | ++i; 120 | } 121 | var result = ""; 122 | if (i == 0) { 123 | var temp = number.ToString(CultureInfo.InvariantCulture); 124 | result = number >= 10 ? temp : Math.Round(number).ToString(CultureInfo.InvariantCulture); 125 | } 126 | else 127 | result = (number / TenPower(i * 3)).ToString(CultureInfo.InvariantCulture); 128 | 129 | var postfix = ""; 130 | while (i >= 3) { 131 | postfix = "B" + postfix; 132 | i -= 3; 133 | } 134 | 135 | if (i > 0) 136 | postfix = numberNames[i - 1] + postfix; 137 | 138 | if (result.Length > 4) 139 | result = result.Substring(0, 4); 140 | if (result.Contains(".")) 141 | result = result.TrimEnd('0'); 142 | return result.TrimEnd('.') + postfix; 143 | } 144 | 145 | public static string ToShorterView(this float number) { 146 | return ((double) number).ToShorterView(); 147 | } 148 | 149 | private static float TenPower(int power){ 150 | return (float) Math.Pow(10, power); 151 | } 152 | 153 | public static string[] SplitToArray(this string inputString, string delimiter = ",") { 154 | return inputString.Split(new [] {delimiter}, StringSplitOptions.RemoveEmptyEntries) 155 | .Select(val => val.Trim()) 156 | .Where(val => !string.IsNullOrWhiteSpace(val)).ToArray(); 157 | } 158 | public static string[] SplitToArray(this string inputString, char delimiter = ',') { 159 | return inputString.Split(delimiter) 160 | .Select(val => val.Trim()) 161 | .Where(val => !string.IsNullOrWhiteSpace(val)).ToArray(); 162 | } 163 | public static bool IsEmpty(this string str) { 164 | return string.IsNullOrWhiteSpace(str); 165 | } 166 | 167 | public static float ToFloat(this string str) { 168 | string trimmed = str.Trim(); 169 | if (string.IsNullOrWhiteSpace(trimmed)) return 0; 170 | return Convert.ToSingle(trimmed, m_Culture); 171 | } 172 | public static int ToInt32(this string str) { 173 | var trimmed = str.Trim(); 174 | if (string.IsNullOrWhiteSpace(trimmed)) return 0; 175 | return Convert.ToInt32(trimmed, m_Culture); 176 | } 177 | public static long ToInt64(this string str) { 178 | var trimmed = str.Trim(); 179 | if (string.IsNullOrWhiteSpace(trimmed)) return 0; 180 | return Convert.ToInt64(trimmed, m_Culture); 181 | } 182 | } 183 | } -------------------------------------------------------------------------------- /Assets/Components/Extensions.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b8f21088b3cc44b68ae5b3f5e64ca242 3 | timeCreated: 1543637882 -------------------------------------------------------------------------------- /Assets/Components/HorizontalProgressBar.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace Components { 4 | 5 | public class HorizontalProgressBar : ProgressBar { 6 | 7 | private float m_Width; 8 | 9 | protected override void OnValidate() { 10 | m_Width = RectTransform.rect.width; 11 | base.OnValidate(); 12 | } 13 | 14 | protected override void SetFillAmount(float amount) { 15 | var sizeDelta = ProgressTransform.sizeDelta; 16 | ProgressTransform.sizeDelta = new Vector2(m_Width * amount, sizeDelta.y); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Assets/Components/HorizontalProgressBar.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ece85daa13f74ad7b19e4b95ab551452 3 | timeCreated: 1547563124 -------------------------------------------------------------------------------- /Assets/Components/InputNumberFormatter.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using System.Text; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | 6 | namespace Components { 7 | // цепляется к штатному InputField и задает ему формат под номер телефона или 8 | // другое число 9 | public class InputNumberFormatter : MonoBehaviour { 10 | 11 | [Tooltip("The format which will be used for your number representation")] 12 | [SerializeField] private string m_Format = "(###) ###-##-##"; 13 | private InputField m_InputField; 14 | private StringBuilder m_FormatBuilder; 15 | 16 | private void Start() { 17 | m_InputField = GetComponent(); 18 | m_InputField.characterLimit = m_Format.Length; 19 | m_InputField.onValueChanged.AddListener(OnValueChanged); 20 | m_InputField.contentType = InputField.ContentType.Standard; 21 | m_InputField.ForceLabelUpdate(); 22 | m_FormatBuilder = new StringBuilder(m_Format); 23 | } 24 | private void OnValueChanged(string text) { 25 | text = FormatNumberText(text); 26 | var curText = m_InputField.text; 27 | if (curText.Equals(text)) { 28 | return; 29 | } 30 | m_InputField.text = text; 31 | m_InputField.caretPosition = text.Length; 32 | } 33 | 34 | private string FormatNumberText(string text) { 35 | var digits = string.Join("", text.ToCharArray().Where(char.IsDigit)); 36 | var stringBuilder = new StringBuilder(); 37 | var curDigit = 0; 38 | for (var i = 0; i < m_FormatBuilder.Length; i++) { 39 | var formatChar = m_Format[i]; 40 | if (!char.IsDigit(formatChar) && !formatChar.Equals('#')) { 41 | if (curDigit < digits.Length) 42 | stringBuilder.Append(formatChar); 43 | } 44 | else { 45 | if (curDigit > digits.Length - 1) { 46 | return stringBuilder.ToString(); 47 | } 48 | stringBuilder.Append(digits[curDigit]); 49 | curDigit++; 50 | } 51 | } 52 | return stringBuilder.ToString(); 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /Assets/Components/InputNumberFormatter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ffd92c23eedd46e2bc4836120c721583 3 | timeCreated: 1547558215 -------------------------------------------------------------------------------- /Assets/Components/InteractiveObject.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | using UnityEngine.Events; 4 | using UnityEngine.EventSystems; 5 | 6 | namespace Components { 7 | public class InteractiveObject : ComponentBehaviour, IPointerClickHandler, 8 | IPointerDownHandler, IPointerUpHandler, IPointerEnterHandler, IPointerExitHandler { 9 | 10 | protected bool m_IsPressed = false; 11 | 12 | /// 13 | /// usage example: 14 | /// 15 | /// someObject.Click += ClickHandler; 16 | /// 17 | /// private ClickHandler(InteractiveObject target, PointerEventData eventData) { 18 | /// print($"Clicked object {target}"); 19 | /// }; 20 | /// 21 | /// don't forget to remove listeners when they are not needed anymore 22 | /// 23 | /// someObject.Click -= ClickHandler; 24 | /// 25 | 26 | public event UnityAction Click; 27 | public event UnityAction PointerDown; 28 | public event UnityAction PointerUp; 29 | public event UnityAction PointerEnter; 30 | public event UnityAction PointerExit; 31 | /// 32 | /// Dispatched when parent changes. Passes this interactive object and new parent 33 | /// 34 | public event UnityAction ParentChanged; 35 | 36 | private Transform m_Parent; 37 | // used to detect double tap, because eventData.clickCount doesn't work with taps on android 38 | private float m_LastTapTime = 0; 39 | private float m_DoubleClickDelay = .35f; 40 | private int m_TapCount = 0; 41 | 42 | private void Update() { 43 | if (transform.parent != m_Parent) { 44 | m_Parent = transform.parent; 45 | ParentChanged?.Invoke(this, m_Parent); 46 | } 47 | } 48 | 49 | public virtual void OnPointerClick(PointerEventData eventData) { 50 | Click?.Invoke(this, eventData); 51 | var curTime = Time.time; 52 | if (curTime - m_LastTapTime < m_DoubleClickDelay) { 53 | m_TapCount++; 54 | } 55 | else m_TapCount = 1; 56 | m_LastTapTime = curTime; 57 | if (m_TapCount == 2) { 58 | OnPointerDoubleClick(eventData); 59 | } 60 | ForwardToParents((parent) => parent.OnPointerClick(eventData)); 61 | } 62 | 63 | public virtual void OnPointerDoubleClick(PointerEventData eventData) { 64 | 65 | } 66 | 67 | public virtual void OnPointerDown(PointerEventData eventData) { 68 | m_IsPressed = true; 69 | PointerDown?.Invoke(this, eventData); 70 | ForwardToParents((parent) => parent.OnPointerDown(eventData)); 71 | } 72 | 73 | public virtual void OnPointerUp(PointerEventData eventData) { 74 | m_IsPressed = false; 75 | PointerUp?.Invoke(this, eventData); 76 | ForwardToParents((parent) => parent.OnPointerUp(eventData)); 77 | } 78 | 79 | public virtual void OnPointerEnter(PointerEventData eventData) { 80 | PointerEnter?.Invoke(this, eventData); 81 | ForwardToParents((parent) => parent.OnPointerEnter(eventData)); 82 | } 83 | 84 | public virtual void OnPointerExit(PointerEventData eventData) { 85 | PointerExit?.Invoke(this, eventData); 86 | ForwardToParents((parent) => parent.OnPointerExit(eventData)); 87 | } 88 | 89 | public bool Active { 90 | get { return gameObject.activeInHierarchy; } 91 | set { gameObject.SetActive(value); } 92 | } 93 | 94 | protected void ForwardToParents(Action action) where T : IEventSystemHandler { 95 | var parent = transform.parent; 96 | 97 | while (parent != null) { 98 | foreach (var component in parent.GetComponents()) { 99 | if (component is T) { 100 | action((T) (IEventSystemHandler) component); 101 | } 102 | } 103 | parent = parent.parent; 104 | } 105 | } 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /Assets/Components/InteractiveObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cee95c34015dc9741b8a5edc8aecf37b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Components/Interfaces.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d8bd50b26b38424193b4d84b9ee763ac 3 | timeCreated: 1551709396 -------------------------------------------------------------------------------- /Assets/Components/Interfaces/IScrollable.cs: -------------------------------------------------------------------------------- 1 | namespace Components.Interfaces { 2 | public interface IScrollable { 3 | /// 4 | /// returns a value between 0 and 1, indicating current scroll value 5 | /// 6 | float ScrollProgress { get; } 7 | } 8 | } -------------------------------------------------------------------------------- /Assets/Components/Interfaces/IScrollable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 618dbc0e38974feaad6d7e47b0c84c44 3 | timeCreated: 1551709407 -------------------------------------------------------------------------------- /Assets/Components/Localization.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6642bb8f78d84a3cb2de3ea424e63bd5 3 | timeCreated: 1551953776 -------------------------------------------------------------------------------- /Assets/Components/Localization/Localization.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine.UI; 2 | 3 | namespace Components.Localization { 4 | public static class Localization { 5 | 6 | 7 | 8 | 9 | /// 10 | /// Simply call it on a string a to localize. 11 | /// If the string is pattern like {{phraseId}} surrounded with double curly braces 12 | /// the internal text will be considered as a dictionary key and will be looked up in a 13 | /// localization dictionary. If the correcponding key is found it will be replaced with a translation 14 | /// 15 | /// 16 | public static string Localize(this string stringToLocalize) { 17 | 18 | // todo сделать нормальную локализацию 19 | return stringToLocalize; 20 | } 21 | 22 | 23 | } 24 | } -------------------------------------------------------------------------------- /Assets/Components/Localization/Localization.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bf67f5a43df84652b2f0833e72220492 3 | timeCreated: 1551953847 -------------------------------------------------------------------------------- /Assets/Components/Pages.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05f4b03295ed47f290e97630fe2eeb85 3 | timeCreated: 1549727716 -------------------------------------------------------------------------------- /Assets/Components/Pages/PageBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using Components.Drawer; 4 | using UnityEngine; 5 | using UnityEngine.EventSystems; 6 | 7 | namespace Components.Pages { 8 | 9 | [DisallowMultipleComponent][ExecuteInEditMode] 10 | public class PageBase : InteractiveObject, IDragHandler, IBeginDragHandler, IEndDragHandler { 11 | 12 | 13 | private Action m_OnAnimactionComplete; 14 | protected bool p_IsAnimating = false; 15 | 16 | public bool RequireConfirmationOnBack { get; internal set; } 17 | // any page can be added to a navigation drawer's container, so it might be necessary 18 | // to disable some page's features (e.g. vertical scrolling) while the drawer is not open. 19 | // Just check this property for null to make some decision you need 20 | // for usage example see ParallaxScrollPage class's source 21 | protected NavigationDrawer NavigationDrawer { get; private set; } 22 | 23 | protected virtual void Awake() { 24 | ParentChanged += OnParentChanged; 25 | } 26 | private void OnParentChanged(InteractiveObject target, Transform newParent) { 27 | NavigationDrawer = newParent == null 28 | ? null : newParent.gameObject.GetComponentInParent(); 29 | } 30 | /// 31 | /// Called after the page is added and all accompanying animations are complete 32 | /// 33 | protected virtual void OnAfterAppeared() { 34 | 35 | } 36 | 37 | protected virtual void OnAdded() { 38 | 39 | } 40 | 41 | protected virtual void OnRemoved() { 42 | 43 | } 44 | 45 | public bool Enabled { 46 | get { return gameObject.activeInHierarchy; } 47 | set { 48 | gameObject.SetActive(value); 49 | if (value) { 50 | transform.SetAsLastSibling(); 51 | if (GetRectTransform() != null) { 52 | OnAdded(); 53 | } 54 | } 55 | else { 56 | OnRemoved(); 57 | } 58 | } 59 | } 60 | 61 | public void AnimateAppear(Action onComplete = null) { 62 | if (p_IsAnimating) return; 63 | Enabled = true; 64 | p_IsAnimating = true; 65 | m_OnAnimactionComplete = onComplete; 66 | StartCoroutine(AppearCoroutine()); 67 | } 68 | 69 | private IEnumerator AppearCoroutine(float startScale = .95f, float endScale = 1.0f, float animationTime = .25f, float delaySeconds = 0.0f) { 70 | yield return new WaitForSeconds(delaySeconds); 71 | var rectTransform = GetRectTransform(); 72 | var curScale = rectTransform.localScale.x; 73 | if (curScale > endScale) { 74 | curScale = endScale; 75 | } 76 | rectTransform.localScale = new Vector3(curScale, curScale, 1); 77 | var iterations = animationTime / 0.016f; 78 | var scaleStep = (endScale - startScale) / iterations; 79 | 80 | while (curScale < endScale) { 81 | yield return new WaitForSeconds(.016f); 82 | curScale += scaleStep; 83 | curScale = Mathf.Clamp01(curScale); 84 | rectTransform.localScale = new Vector3(curScale, curScale, 1); 85 | } 86 | 87 | } 88 | 89 | public void ShowWithoutAnimation() { 90 | Enabled = true; 91 | GetRectTransform().anchoredPosition = new Vector2(); 92 | OnAfterAppeared(); 93 | } 94 | 95 | private void OnAnimationComplete() { 96 | p_IsAnimating = false; 97 | m_OnAnimactionComplete?.Invoke(); 98 | m_OnAnimactionComplete = null; 99 | OnAfterAppeared(); 100 | 101 | } 102 | 103 | public virtual void OnDrag(PointerEventData eventData) { 104 | ForwardToParents((parent) => parent.OnDrag(eventData)); 105 | } 106 | public virtual void OnBeginDrag(PointerEventData eventData) { 107 | ForwardToParents((parent) => parent.OnBeginDrag(eventData)); 108 | } 109 | 110 | public virtual void OnEndDrag(PointerEventData eventData) { 111 | ForwardToParents((parent) => parent.OnEndDrag(eventData)); 112 | } 113 | } 114 | } -------------------------------------------------------------------------------- /Assets/Components/Pages/PageBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1362f66aa39c4c3ea3881c349d70c216 3 | timeCreated: 1549727729 -------------------------------------------------------------------------------- /Assets/Components/Pages/ParallaxScrollPage.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace Components.Pages { 4 | 5 | public class ParallaxScrollPage : PageBase { 6 | 7 | [SerializeField, Tooltip("The container which will may contain header image or some" + 8 | " texts, logos etc. and is scrolling slower than the rest of the page")] 9 | private RectTransform m_TopContainer; 10 | [Tooltip("The actual scroll container. Put all your page contents inside it")] 11 | [SerializeField] private RectTransform m_ScrollContainer; 12 | [Tooltip("The smaller this value is the slower will the parallax effect be")] 13 | [SerializeField] private float m_ParallaxCoef = .5f; 14 | private Vector2 m_InitialScrollPosition; 15 | private QuickScrollerVertical m_QuickScrollerVertical; 16 | 17 | 18 | private void Start() { 19 | OnValidate(); 20 | } 21 | 22 | 23 | private QuickScrollerVertical GetScroller() { 24 | if (m_QuickScrollerVertical == null) { 25 | m_QuickScrollerVertical = GetComponent(); 26 | } 27 | return m_QuickScrollerVertical; 28 | } 29 | 30 | protected override void OnValidate() { 31 | m_ParallaxCoef = Mathf.Clamp01(m_ParallaxCoef); 32 | m_InitialScrollPosition = m_ScrollContainer.anchoredPosition; 33 | CalculateParallax(); 34 | } 35 | 36 | private void FixedUpdate() { 37 | CalculateParallax(); 38 | if (NavigationDrawer != null) { 39 | // this can happen only if the page was added to a NavigationScroller's container 40 | GetScroller().IsEnabled = NavigationDrawer.IsScrollAllowed; 41 | } 42 | } 43 | 44 | private void CalculateParallax() { 45 | var pos = m_ScrollContainer.anchoredPosition; 46 | pos.y = Mathf.Clamp(pos.y, m_InitialScrollPosition.y, 0); 47 | var rect = m_TopContainer.rect; 48 | var parallaxAmount = (rect.height + pos.y) / rect.height; 49 | MoveTopContainer(parallaxAmount); 50 | } 51 | 52 | private void MoveTopContainer(float parallaxAmount) { 53 | var pos = m_TopContainer.anchoredPosition; 54 | pos.y = (parallaxAmount * m_ParallaxCoef) * m_TopContainer.rect.height; 55 | m_TopContainer.anchoredPosition = pos; 56 | } 57 | } 58 | } -------------------------------------------------------------------------------- /Assets/Components/Pages/ParallaxScrollPage.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 088e0bc010e34e3bb468116d13c8fbb4 3 | timeCreated: 1549729408 -------------------------------------------------------------------------------- /Assets/Components/Position.cs: -------------------------------------------------------------------------------- 1 | namespace Components { 2 | public enum Position { 3 | Top, 4 | Right, 5 | Bottom, 6 | Left 7 | } 8 | } -------------------------------------------------------------------------------- /Assets/Components/Position.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86315e1119f24de3bef6a89c377dfd0a 3 | timeCreated: 1551597369 -------------------------------------------------------------------------------- /Assets/Components/ProgressBar.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using UnityEngine; 4 | using UnityEngine.Events; 5 | using UnityEngine.UI; 6 | 7 | namespace Components { 8 | 9 | 10 | [ExecuteInEditMode] 11 | public class ProgressBar : ComponentBehaviour { 12 | 13 | [Tooltip("A suffix that will be appended to the progress value view")] 14 | [SerializeField] private string m_Suffix = "%"; 15 | [Tooltip("Whether or not to use suffix")] 16 | [SerializeField] private bool m_UseSuffix = true; 17 | [SerializeField] private Image m_ProgressImage; 18 | [SerializeField] private float m_MinValue = 0.0f; 19 | [SerializeField] private float m_MaxValue = 100.0f; 20 | [SerializeField] private float m_Value = 0.0f; 21 | [SerializeField] private int m_DecimalPoints = 0; 22 | [SerializeField] private Text m_ProgressText; 23 | [SerializeField] private Color m_StartColor; 24 | [SerializeField] private Color m_EndColor; 25 | [Tooltip("If true and DecimalPoints value is > 0, the progress text will use comma as mantissa separator else it will use dot")] 26 | [SerializeField] private bool m_UseCommaAsTextSeparator = false; 27 | [Tooltip("Converts long numbers to their short equivalents like 1500 => 1.5K")] 28 | [SerializeField] private bool m_ShortenLongValues = false; 29 | [Tooltip("Will lerp from one value to another on change if true")] 30 | [SerializeField] private bool m_AnimateValueChange = false; 31 | private Color m_CurrentColor; 32 | private RectTransform m_RectTransform; 33 | private RectTransform m_ProgressTransform; 34 | // used for lerping only 35 | private float m_CurFillAmount; 36 | private string m_CurrentSuffix; 37 | public event UnityAction ProgressUpdate; 38 | 39 | 40 | protected virtual void Start() { 41 | if (m_ChangeColor) { 42 | m_CurrentColor = m_StartColor; 43 | SetColors(); 44 | } 45 | OnValidate(); 46 | } 47 | protected override void SetColors() { 48 | if (!m_ChangeColor) return; 49 | if (m_ProgressText != null) { 50 | m_ProgressText.color = m_CurrentColor; 51 | } 52 | ProgressImage.color = m_CurrentColor; 53 | 54 | } 55 | 56 | protected override void OnValidate() { 57 | Value = Value; 58 | UseSuffix = m_UseSuffix; 59 | 60 | } 61 | 62 | private void FixedUpdate() { 63 | if (!m_AnimateValueChange) return; 64 | if (Math.Abs(m_CurFillAmount - Value) < .001f) return; 65 | m_CurFillAmount = Mathf.Lerp(m_CurFillAmount, Value, 15f * Time.deltaTime); 66 | ChangeView(m_CurFillAmount); 67 | } 68 | 69 | public float Value { 70 | set { 71 | value = Mathf.Clamp(value, m_MinValue, m_MaxValue); 72 | if (!m_AnimateValueChange) { 73 | m_CurFillAmount = value; 74 | ChangeView(value); 75 | } 76 | #if UNITY_EDITOR 77 | else { 78 | if (!Application.isPlaying) { 79 | m_CurFillAmount = value; 80 | ChangeView(value); 81 | } 82 | } 83 | #endif 84 | m_Value = value; 85 | ProgressUpdate?.Invoke(value); 86 | } 87 | get { return m_Value; } 88 | } 89 | 90 | public bool UseSuffix { 91 | get { return m_UseSuffix; } 92 | set { 93 | m_UseSuffix = value; 94 | m_CurrentSuffix = m_UseSuffix ? m_Suffix : string.Empty; 95 | } 96 | } 97 | 98 | protected RectTransform RectTransform { 99 | get { 100 | if (m_RectTransform == null) { 101 | m_RectTransform = GetComponent(); 102 | } 103 | return m_RectTransform; 104 | } 105 | } 106 | 107 | protected internal Image ProgressImage { 108 | get { return m_ProgressImage; } 109 | } 110 | protected RectTransform ProgressTransform { 111 | get { 112 | if (m_ProgressTransform == null) { 113 | m_ProgressTransform = m_ProgressImage.GetComponent(); 114 | } 115 | return m_ProgressTransform; 116 | } 117 | } 118 | 119 | /// 120 | /// Fills the progress image 121 | /// 122 | /// 123 | protected virtual void SetFillAmount(float amount) { 124 | ProgressImage.fillAmount = amount; 125 | } 126 | 127 | private void ChangeView(float value) { 128 | var fillAmount = value / m_MaxValue; 129 | 130 | SetFillAmount(fillAmount); 131 | if (m_ChangeColor) { 132 | m_CurrentColor = m_ChangeColor 133 | ? ComponentUtils.MixColorsByValue(m_StartColor, m_EndColor, fillAmount) 134 | : m_EndColor; 135 | SetColors(); 136 | } 137 | 138 | 139 | if (m_ProgressText == null) return; 140 | 141 | if (m_ShortenLongValues) { 142 | m_ProgressText.text = $"{Mathf.Round(value).ToShorterView()}{m_CurrentSuffix}"; 143 | } 144 | else { 145 | var decimalFormat = $"F{m_DecimalPoints}"; 146 | var culture = m_UseCommaAsTextSeparator ? CultureInfo.CurrentCulture : CultureInfo.InvariantCulture; 147 | m_ProgressText.text = $"{value.ToString(decimalFormat, culture)}{m_CurrentSuffix}"; 148 | } 149 | } 150 | 151 | private void Update() { 152 | Value = m_Value; 153 | } 154 | } 155 | 156 | } -------------------------------------------------------------------------------- /Assets/Components/ProgressBar.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a85a117603484111ac9534a019fb6bb0 3 | timeCreated: 1547316769 -------------------------------------------------------------------------------- /Assets/Components/QuickScrollerVertical.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b702ab33985242568a41e449f31a8433 3 | timeCreated: 1551587872 -------------------------------------------------------------------------------- /Assets/Components/Sprites.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e18b59b4bf295043bf6b778e9d0d325 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Components/Sprites/ProgressBars.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ef500128886e6e5479bedd62e78b410d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Components/Sprites/ProgressBars/inner_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/Components/Sprites/ProgressBars/inner_circle.png -------------------------------------------------------------------------------- /Assets/Components/Sprites/ProgressBars/inner_circle.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d20c0ad05f2ba234ab0f5236242b9871 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 4a5cad55439569f43a9f2de380b0fe67 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Assets/Components/Sprites/ProgressBars/linear_progress_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/Components/Sprites/ProgressBars/linear_progress_bar.png -------------------------------------------------------------------------------- /Assets/Components/Sprites/ProgressBars/linear_progress_bar.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6158cd69811134e4b8fee8429aac973e 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 4, y: 1, z: 4, w: 1} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 2048 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 2048 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | spriteSheet: 106 | serializedVersion: 2 107 | sprites: [] 108 | outline: [] 109 | physicsShape: [] 110 | bones: [] 111 | spriteID: 4467200cf13db32478c893ffe6271b57 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | spritePackingTag: ui 117 | pSDRemoveMatte: 0 118 | pSDShowRemoveMatteOption: 0 119 | userData: 120 | assetBundleName: 121 | assetBundleVariant: 122 | -------------------------------------------------------------------------------- /Assets/Components/Sprites/ProgressBars/outer_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/Components/Sprites/ProgressBars/outer_circle.png -------------------------------------------------------------------------------- /Assets/Components/Sprites/ProgressBars/outer_circle.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a6c29d8635efafb43b7442d497dd6ec7 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 630c9e6a16562a145844abf1044990ef 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Assets/Components/Sprites/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/Components/Sprites/background.png -------------------------------------------------------------------------------- /Assets/Components/Sprites/background.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7223595eb4b4fff4082e5afee127587b 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 2048 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 2048 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | spriteSheet: 106 | serializedVersion: 2 107 | sprites: [] 108 | outline: [] 109 | physicsShape: [] 110 | bones: [] 111 | spriteID: 3a41b1c9278cbf749b8ef776d5716bc8 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | spritePackingTag: ui 117 | pSDRemoveMatte: 0 118 | pSDShowRemoveMatteOption: 0 119 | userData: 120 | assetBundleName: 121 | assetBundleVariant: 122 | -------------------------------------------------------------------------------- /Assets/Components/Sprites/big_rounded_rect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/Components/Sprites/big_rounded_rect.png -------------------------------------------------------------------------------- /Assets/Components/Sprites/big_rounded_rect.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a997cda3d7c6a4468647d76ef442e56 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 42, y: 42, z: 42, w: 42} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 2048 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 2048 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | spriteSheet: 106 | serializedVersion: 2 107 | sprites: [] 108 | outline: [] 109 | physicsShape: [] 110 | bones: [] 111 | spriteID: 51b0f89e7df45904b87e0e71878379cc 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | spritePackingTag: ui 117 | pSDRemoveMatte: 0 118 | pSDShowRemoveMatteOption: 0 119 | userData: 120 | assetBundleName: 121 | assetBundleVariant: 122 | -------------------------------------------------------------------------------- /Assets/Components/Sprites/calendar_selector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/Components/Sprites/calendar_selector.png -------------------------------------------------------------------------------- /Assets/Components/Sprites/calendar_selector.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ea88fb4c85954664299ef89da64f353d 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 34, y: 0, z: 34, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 128 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 128 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 128 86 | resizeAlgorithm: 0 87 | textureFormat: 4 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 1 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 128 97 | resizeAlgorithm: 0 98 | textureFormat: 4 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 1 104 | androidETC2FallbackOverride: 0 105 | spriteSheet: 106 | serializedVersion: 2 107 | sprites: [] 108 | outline: [] 109 | physicsShape: [] 110 | bones: [] 111 | spriteID: dcb4dde2530650543a1e6a78ff30bd4e 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | spritePackingTag: ui 117 | pSDRemoveMatte: 0 118 | pSDShowRemoveMatteOption: 0 119 | userData: 120 | assetBundleName: 121 | assetBundleVariant: 122 | -------------------------------------------------------------------------------- /Assets/Components/Sprites/hamburger_menu_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/Components/Sprites/hamburger_menu_button.png -------------------------------------------------------------------------------- /Assets/Components/Sprites/hamburger_menu_button.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0f0cf1f47ac56d9468fcb10db0739874 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 2048 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 128 86 | resizeAlgorithm: 0 87 | textureFormat: 4 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 1 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 128 97 | resizeAlgorithm: 0 98 | textureFormat: 4 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 1 104 | androidETC2FallbackOverride: 0 105 | spriteSheet: 106 | serializedVersion: 2 107 | sprites: [] 108 | outline: [] 109 | physicsShape: [] 110 | bones: [] 111 | spriteID: 8062816941bcde34eb0e36bef0e5df81 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | spritePackingTag: ui 117 | pSDRemoveMatte: 0 118 | pSDShowRemoveMatteOption: 0 119 | userData: 120 | assetBundleName: 121 | assetBundleVariant: 122 | -------------------------------------------------------------------------------- /Assets/Components/Sprites/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/Components/Sprites/icon.png -------------------------------------------------------------------------------- /Assets/Components/Sprites/icon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: db00e84f38ec8974c82ffae9934fc89f 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 2048 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 2048 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | spriteSheet: 106 | serializedVersion: 2 107 | sprites: [] 108 | outline: [] 109 | physicsShape: [] 110 | bones: [] 111 | spriteID: ad9017211f519aa40a8aacf42f91ee36 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | spritePackingTag: ui 117 | pSDRemoveMatte: 0 118 | pSDShowRemoveMatteOption: 0 119 | userData: 120 | assetBundleName: 121 | assetBundleVariant: 122 | -------------------------------------------------------------------------------- /Assets/Components/Sprites/rounded_rect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/Components/Sprites/rounded_rect.png -------------------------------------------------------------------------------- /Assets/Components/Sprites/rounded_rect.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f084194ef6fce5d46af5a20b383c6bc7 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 25, y: 25, z: 25, w: 25} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 2048 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 2048 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | spriteSheet: 106 | serializedVersion: 2 107 | sprites: [] 108 | outline: [] 109 | physicsShape: [] 110 | bones: [] 111 | spriteID: be2b92fa1ddc6124f81367d0394fee4f 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | spritePackingTag: ui 117 | pSDRemoveMatte: 0 118 | pSDShowRemoveMatteOption: 0 119 | userData: 120 | assetBundleName: 121 | assetBundleVariant: 122 | -------------------------------------------------------------------------------- /Assets/Components/Sprites/small_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/Components/Sprites/small_arrow.png -------------------------------------------------------------------------------- /Assets/Components/Sprites/small_arrow.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 23ab5a7dc9ca4834fac0cbfa4c9fd72e 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 303638332880ebd4bab0a93616c81689 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Assets/Components/Sprites/toggle_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/Components/Sprites/toggle_base.png -------------------------------------------------------------------------------- /Assets/Components/Sprites/toggle_base.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 75b5d89391077ed42a92a163de1bbe4a 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 24, y: 25, z: 24, w: 25} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 2048 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 2048 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | spriteSheet: 106 | serializedVersion: 2 107 | sprites: [] 108 | outline: [] 109 | physicsShape: [] 110 | bones: [] 111 | spriteID: 3a6c68cfd6663464f9e672674739a96d 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | spritePackingTag: ui 117 | pSDRemoveMatte: 0 118 | pSDShowRemoveMatteOption: 0 119 | userData: 120 | assetBundleName: 121 | assetBundleVariant: 122 | -------------------------------------------------------------------------------- /Assets/Components/Sprites/toggle_knob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/Components/Sprites/toggle_knob.png -------------------------------------------------------------------------------- /Assets/Components/Sprites/toggle_knob.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ca77ab35dde7974fbfffcc2be15c864 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 2048 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 2048 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | spriteSheet: 106 | serializedVersion: 2 107 | sprites: [] 108 | outline: [] 109 | physicsShape: [] 110 | bones: [] 111 | spriteID: a342eb8f048a2ae4c9c477e1676e8b4f 112 | vertices: [] 113 | indices: 114 | edges: [] 115 | weights: [] 116 | spritePackingTag: ui 117 | pSDRemoveMatte: 0 118 | pSDShowRemoveMatteOption: 0 119 | userData: 120 | assetBundleName: 121 | assetBundleVariant: 122 | -------------------------------------------------------------------------------- /Assets/Components/Sprites/wallpaper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/Components/Sprites/wallpaper.png -------------------------------------------------------------------------------- /Assets/Components/Sprites/wallpaper.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e7d8350a6152ede4da5e23b83c1a24c3 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 22eb494e389f44f428c01c00370d3f04 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Assets/Components/Texts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f5fc431f2e9c48549a56fd2c9e52b2ef 3 | timeCreated: 1551806467 -------------------------------------------------------------------------------- /Assets/Components/Texts/CalendarDateCell.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine.UI; 2 | 3 | namespace Components.Texts { 4 | 5 | public enum MonthType { 6 | Previous, 7 | Current, 8 | Next, 9 | None 10 | } 11 | 12 | // this class is used internally by BigMonthView as a grid cell holder 13 | // you don't need to use it yourself 14 | public class CalendarDateCell : Text { 15 | private int m_Day; 16 | // to simplify marker position detection 17 | public int GridColumn { get; set; } 18 | public int GridRow { get; set; } 19 | public float CellWidth { get; set; } 20 | public float CellHeight { get; set; } 21 | 22 | public int Day { 23 | get { return m_Day; } 24 | set { 25 | m_Day = value; 26 | this.text = value.ToString(); 27 | } 28 | } 29 | 30 | public MonthType monthType { get; set; } = MonthType.None; 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/Components/Texts/CalendarDateCell.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 19c797345f0b40a7abf4610fb82c927e 3 | timeCreated: 1551806477 -------------------------------------------------------------------------------- /Assets/DOTween.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ca83b1b7f920b847b444a23d4b09734 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/DOTween/DOTween.XML.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b79358396afdcd04cad9abdc9bac958d 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/DOTween/DOTween.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/DOTween/DOTween.dll -------------------------------------------------------------------------------- /Assets/DOTween/DOTween.dll.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/DOTween/DOTween.dll.mdb -------------------------------------------------------------------------------- /Assets/DOTween/DOTween.dll.mdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fc1eecdfcb9737340bc0e910689546d9 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/DOTween/DOTween.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 56682e760622ee441b0acc0cb7425eda 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Any: 13 | second: 14 | enabled: 1 15 | settings: {} 16 | - first: 17 | Editor: Editor 18 | second: 19 | enabled: 0 20 | settings: 21 | DefaultValueInitialized: true 22 | - first: 23 | Windows Store Apps: WindowsStoreApps 24 | second: 25 | enabled: 0 26 | settings: 27 | CPU: AnyCPU 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Assets/DOTween/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4753658c95c743a4d858cb4cf10fb9c4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/DOTween/Editor/DOTweenEditor.XML: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DOTweenEditor 5 | 6 | 7 | 8 | 9 | Checks that the given editor texture use the correct import settings, 10 | and applies them if they're incorrect. 11 | 12 | 13 | 14 | 15 | Returns TRUE if setup is required 16 | 17 | 18 | 19 | 20 | Returns TRUE if the file/directory at the given path exists. 21 | 22 | Path, relative to Unity's project folder 23 | 24 | 25 | 26 | 27 | Converts the given project-relative path to a full path, 28 | with backward (\) slashes). 29 | 30 | 31 | 32 | 33 | Converts the given full path to a path usable with AssetDatabase methods 34 | (relative to Unity's project folder, and with the correct Unity forward (/) slashes). 35 | 36 | 37 | 38 | 39 | Connects to a asset. 40 | If the asset already exists at the given path, loads it and returns it. 41 | Otherwise, either returns NULL or automatically creates it before loading and returning it 42 | (depending on the given parameters). 43 | 44 | Asset type 45 | File path (relative to Unity's project folder) 46 | If TRUE and the requested asset doesn't exist, forces its creation 47 | 48 | 49 | 50 | Full path for the given loaded assembly, assembly file included 51 | 52 | 53 | 54 | 55 | Adds the given global define if it's not already present 56 | 57 | 58 | 59 | 60 | Removes the given global define if it's present 61 | 62 | 63 | 64 | 65 | Returns TRUE if the given global define is present in all the 66 | or only in the given , depending on passed parameters. 67 | 68 | 69 | to use. Leave NULL to check in all of them. 70 | 71 | 72 | 73 | Not used as menu item anymore, but as a utiity function 74 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /Assets/DOTween/Editor/DOTweenEditor.XML.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9c91a8e9096b8c94a9985bd026e1d54c 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/DOTween/Editor/DOTweenEditor.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/DOTween/Editor/DOTweenEditor.dll -------------------------------------------------------------------------------- /Assets/DOTween/Editor/DOTweenEditor.dll.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/DOTween/Editor/DOTweenEditor.dll.mdb -------------------------------------------------------------------------------- /Assets/DOTween/Editor/DOTweenEditor.dll.mdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1db9c4af7147e104cb794b781551579b 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/DOTween/Editor/DOTweenEditor.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 76e4f4529d581df4e96811ff8281dac8 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Any: 13 | second: 14 | enabled: 0 15 | settings: {} 16 | - first: 17 | Editor: Editor 18 | second: 19 | enabled: 1 20 | settings: 21 | DefaultValueInitialized: true 22 | - first: 23 | Windows Store Apps: WindowsStoreApps 24 | second: 25 | enabled: 0 26 | settings: 27 | CPU: AnyCPU 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Assets/DOTween/Editor/Imgs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d1a79936083309347a8b830c9c3107a9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/DOTween/Editor/Imgs/DOTweenIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/DOTween/Editor/Imgs/DOTweenIcon.png -------------------------------------------------------------------------------- /Assets/DOTween/Editor/Imgs/DOTweenIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d57e123f0e8b29848912894870f11930 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 5 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 0 27 | seamlessCubemap: 0 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | serializedVersion: 2 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapU: -1 36 | wrapV: -1 37 | wrapW: -1 38 | nPOTScale: 1 39 | lightmap: 0 40 | compressionQuality: 50 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spritePixelsToUnits: 100 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spriteGenerateFallbackPhysicsShape: 1 49 | alphaUsage: 1 50 | alphaIsTransparency: 0 51 | spriteTessellationDetail: -1 52 | textureType: 0 53 | textureShape: 1 54 | singleChannelComponent: 0 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - serializedVersion: 2 60 | buildTarget: DefaultTexturePlatform 61 | maxTextureSize: 2048 62 | resizeAlgorithm: 0 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | androidETC2FallbackOverride: 0 70 | spriteSheet: 71 | serializedVersion: 2 72 | sprites: [] 73 | outline: [] 74 | physicsShape: [] 75 | bones: [] 76 | spriteID: 77 | vertices: [] 78 | indices: 79 | edges: [] 80 | weights: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/DOTween/Editor/Imgs/Footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/DOTween/Editor/Imgs/Footer.png -------------------------------------------------------------------------------- /Assets/DOTween/Editor/Imgs/Footer.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d7997e1750b96384ebdca3253f12b9be 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 5 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 0 27 | seamlessCubemap: 0 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | serializedVersion: 2 32 | filterMode: 1 33 | aniso: 1 34 | mipBias: -1 35 | wrapU: 1 36 | wrapV: 1 37 | wrapW: 1 38 | nPOTScale: 0 39 | lightmap: 0 40 | compressionQuality: 50 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spritePixelsToUnits: 100 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spriteGenerateFallbackPhysicsShape: 1 49 | alphaUsage: 1 50 | alphaIsTransparency: 1 51 | spriteTessellationDetail: -1 52 | textureType: 2 53 | textureShape: 1 54 | singleChannelComponent: 0 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - serializedVersion: 2 60 | buildTarget: DefaultTexturePlatform 61 | maxTextureSize: 256 62 | resizeAlgorithm: 0 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | androidETC2FallbackOverride: 0 70 | spriteSheet: 71 | serializedVersion: 2 72 | sprites: [] 73 | outline: [] 74 | physicsShape: [] 75 | bones: [] 76 | spriteID: 77 | vertices: [] 78 | indices: 79 | edges: [] 80 | weights: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/DOTween/Editor/Imgs/Footer_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/DOTween/Editor/Imgs/Footer_dark.png -------------------------------------------------------------------------------- /Assets/DOTween/Editor/Imgs/Footer_dark.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 36c002a3c7a8c224f8b5584153b59e89 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 5 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 0 27 | seamlessCubemap: 0 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | serializedVersion: 2 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapU: -1 36 | wrapV: -1 37 | wrapW: -1 38 | nPOTScale: 1 39 | lightmap: 0 40 | compressionQuality: 50 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spritePixelsToUnits: 100 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spriteGenerateFallbackPhysicsShape: 1 49 | alphaUsage: 1 50 | alphaIsTransparency: 0 51 | spriteTessellationDetail: -1 52 | textureType: 0 53 | textureShape: 1 54 | singleChannelComponent: 0 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - serializedVersion: 2 60 | buildTarget: DefaultTexturePlatform 61 | maxTextureSize: 2048 62 | resizeAlgorithm: 0 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | androidETC2FallbackOverride: 0 70 | spriteSheet: 71 | serializedVersion: 2 72 | sprites: [] 73 | outline: [] 74 | physicsShape: [] 75 | bones: [] 76 | spriteID: 77 | vertices: [] 78 | indices: 79 | edges: [] 80 | weights: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/DOTween/Editor/Imgs/Header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/DOTween/Editor/Imgs/Header.jpg -------------------------------------------------------------------------------- /Assets/DOTween/Editor/Imgs/Header.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 32c9bcd9a2019534685d321d58116a61 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 5 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 0 27 | seamlessCubemap: 0 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | serializedVersion: 2 32 | filterMode: 1 33 | aniso: 1 34 | mipBias: -1 35 | wrapU: 1 36 | wrapV: 1 37 | wrapW: 1 38 | nPOTScale: 0 39 | lightmap: 0 40 | compressionQuality: 50 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spritePixelsToUnits: 100 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spriteGenerateFallbackPhysicsShape: 1 49 | alphaUsage: 1 50 | alphaIsTransparency: 1 51 | spriteTessellationDetail: -1 52 | textureType: 2 53 | textureShape: 1 54 | singleChannelComponent: 0 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - serializedVersion: 2 60 | buildTarget: DefaultTexturePlatform 61 | maxTextureSize: 512 62 | resizeAlgorithm: 0 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | androidETC2FallbackOverride: 0 70 | spriteSheet: 71 | serializedVersion: 2 72 | sprites: [] 73 | outline: [] 74 | physicsShape: [] 75 | bones: [] 76 | spriteID: 77 | vertices: [] 78 | indices: 79 | edges: [] 80 | weights: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/DOTween/Modules.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c90d6fffa65aa7544ab9d0dc8d7359d2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/DOTween/Modules/DOTweenModuleAudio.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 85ff4b2ca0e760c45bbb748cc5dc61fd 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/DOTween/Modules/DOTweenModulePhysics.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d237399ec2ed3af44a17f7f8c6bab66c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/DOTween/Modules/DOTweenModulePhysics2D.cs: -------------------------------------------------------------------------------- 1 | // Author: Daniele Giardini - http://www.demigiant.com 2 | // Created: 2018/07/13 3 | 4 | #if true && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER 5 | using System; 6 | using UnityEngine; 7 | 8 | #pragma warning disable 1591 9 | namespace DG.Tweening 10 | { 11 | public static class DOTweenModulePhysics2D 12 | { 13 | #region Shortcuts 14 | 15 | #region Rigidbody2D Shortcuts 16 | 17 | /// Tweens a Rigidbody2D's position to the given value. 18 | /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations 19 | /// The end value to reachThe duration of the tween 20 | /// If TRUE the tween will smoothly snap all values to integers 21 | public static Tweener DOMove(this Rigidbody2D target, Vector2 endValue, float duration, bool snapping = false) 22 | { 23 | return DOTween.To(() => target.position, target.MovePosition, endValue, duration) 24 | .SetOptions(snapping).SetTarget(target); 25 | } 26 | 27 | /// Tweens a Rigidbody2D's X position to the given value. 28 | /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations 29 | /// The end value to reachThe duration of the tween 30 | /// If TRUE the tween will smoothly snap all values to integers 31 | public static Tweener DOMoveX(this Rigidbody2D target, float endValue, float duration, bool snapping = false) 32 | { 33 | return DOTween.To(() => target.position, target.MovePosition, new Vector2(endValue, 0), duration) 34 | .SetOptions(AxisConstraint.X, snapping).SetTarget(target); 35 | } 36 | 37 | /// Tweens a Rigidbody2D's Y position to the given value. 38 | /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations 39 | /// The end value to reachThe duration of the tween 40 | /// If TRUE the tween will smoothly snap all values to integers 41 | public static Tweener DOMoveY(this Rigidbody2D target, float endValue, float duration, bool snapping = false) 42 | { 43 | return DOTween.To(() => target.position, target.MovePosition, new Vector2(0, endValue), duration) 44 | .SetOptions(AxisConstraint.Y, snapping).SetTarget(target); 45 | } 46 | 47 | /// Tweens a Rigidbody2D's rotation to the given value. 48 | /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations 49 | /// The end value to reachThe duration of the tween 50 | public static Tweener DORotate(this Rigidbody2D target, float endValue, float duration) 51 | { 52 | return DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration) 53 | .SetTarget(target); 54 | } 55 | 56 | #region Special 57 | 58 | /// Tweens a Rigidbody2D's position to the given value, while also applying a jump effect along the Y axis. 59 | /// Returns a Sequence instead of a Tweener. 60 | /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations. 61 | /// IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position 62 | /// The end value to reach 63 | /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) 64 | /// Total number of jumps 65 | /// The duration of the tween 66 | /// If TRUE the tween will smoothly snap all values to integers 67 | public static Sequence DOJump(this Rigidbody2D target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) 68 | { 69 | if (numJumps < 1) numJumps = 1; 70 | float startPosY = 0; 71 | float offsetY = -1; 72 | bool offsetYSet = false; 73 | Sequence s = DOTween.Sequence(); 74 | Tween yTween = DOTween.To(() => target.position, x => target.position = x, new Vector2(0, jumpPower), duration / (numJumps * 2)) 75 | .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() 76 | .SetLoops(numJumps * 2, LoopType.Yoyo) 77 | .OnStart(() => startPosY = target.position.y); 78 | s.Append(DOTween.To(() => target.position, x => target.position = x, new Vector2(endValue.x, 0), duration) 79 | .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) 80 | ).Join(yTween) 81 | .SetTarget(target).SetEase(DOTween.defaultEaseType); 82 | yTween.OnUpdate(() => { 83 | if (!offsetYSet) { 84 | offsetYSet = true; 85 | offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; 86 | } 87 | Vector3 pos = target.position; 88 | pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad); 89 | target.MovePosition(pos); 90 | }); 91 | return s; 92 | } 93 | 94 | #endregion 95 | 96 | #endregion 97 | 98 | #endregion 99 | } 100 | } 101 | #endif 102 | -------------------------------------------------------------------------------- /Assets/DOTween/Modules/DOTweenModulePhysics2D.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e8e292b0072bda043a3bfb387a8b1e74 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/DOTween/Modules/DOTweenModuleSprite.cs: -------------------------------------------------------------------------------- 1 | // Author: Daniele Giardini - http://www.demigiant.com 2 | // Created: 2018/07/13 3 | 4 | #if true && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER 5 | using System; 6 | using UnityEngine; 7 | using DG.Tweening.Core; 8 | 9 | #pragma warning disable 1591 10 | namespace DG.Tweening 11 | { 12 | public static class DOTweenModuleSprite 13 | { 14 | #region Shortcuts 15 | 16 | #region SpriteRenderer 17 | 18 | /// Tweens a SpriteRenderer's color to the given value. 19 | /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations 20 | /// The end value to reachThe duration of the tween 21 | public static Tweener DOColor(this SpriteRenderer target, Color endValue, float duration) 22 | { 23 | return DOTween.To(() => target.color, x => target.color = x, endValue, duration).SetTarget(target); 24 | } 25 | 26 | /// Tweens a Material's alpha color to the given value. 27 | /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations 28 | /// The end value to reachThe duration of the tween 29 | public static Tweener DOFade(this SpriteRenderer target, float endValue, float duration) 30 | { 31 | return DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration) 32 | .SetTarget(target); 33 | } 34 | 35 | /// Tweens a SpriteRenderer's color using the given gradient 36 | /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). 37 | /// Also stores the image as the tween's target so it can be used for filtered operations 38 | /// The gradient to useThe duration of the tween 39 | public static Sequence DOGradientColor(this SpriteRenderer target, Gradient gradient, float duration) 40 | { 41 | Sequence s = DOTween.Sequence(); 42 | GradientColorKey[] colors = gradient.colorKeys; 43 | int len = colors.Length; 44 | for (int i = 0; i < len; ++i) { 45 | GradientColorKey c = colors[i]; 46 | if (i == 0 && c.time <= 0) { 47 | target.color = c.color; 48 | continue; 49 | } 50 | float colorDuration = i == len - 1 51 | ? duration - s.Duration(false) // Verifies that total duration is correct 52 | : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); 53 | s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); 54 | } 55 | return s; 56 | } 57 | 58 | #endregion 59 | 60 | #region Blendables 61 | 62 | #region SpriteRenderer 63 | 64 | /// Tweens a SpriteRenderer's color to the given value, 65 | /// in a way that allows other DOBlendableColor tweens to work together on the same target, 66 | /// instead than fight each other as multiple DOColor would do. 67 | /// Also stores the SpriteRenderer as the tween's target so it can be used for filtered operations 68 | /// The value to tween toThe duration of the tween 69 | public static Tweener DOBlendableColor(this SpriteRenderer target, Color endValue, float duration) 70 | { 71 | endValue = endValue - target.color; 72 | Color to = new Color(0, 0, 0, 0); 73 | return DOTween.To(() => to, x => { 74 | Color diff = x - to; 75 | to = x; 76 | target.color += diff; 77 | }, endValue, duration) 78 | .Blendable().SetTarget(target); 79 | } 80 | 81 | #endregion 82 | 83 | #endregion 84 | 85 | #endregion 86 | } 87 | } 88 | #endif 89 | -------------------------------------------------------------------------------- /Assets/DOTween/Modules/DOTweenModuleSprite.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ae5e360c561ef14408879e996f6e9630 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/DOTween/Modules/DOTweenModuleUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f29db16b7fdf05e458e6ef50b61c3b16 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34db00abc2743024984395ff869addce 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/DOTween/Modules/DOTweenModuleUtils.cs: -------------------------------------------------------------------------------- 1 | // Author: Daniele Giardini - http://www.demigiant.com 2 | // Created: 2018/07/13 3 | 4 | using System; 5 | using UnityEngine; 6 | using DG.Tweening.Core; 7 | using DG.Tweening.Plugins.Core.PathCore; 8 | using DG.Tweening.Plugins.Options; 9 | 10 | #pragma warning disable 1591 11 | namespace DG.Tweening 12 | { 13 | /// 14 | /// Utility functions that deal with available Modules. 15 | /// Modules defines: 16 | /// - DOTAUDIO 17 | /// - DOTPHYSICS 18 | /// - DOTPHYSICS2D 19 | /// - DOTSPRITE 20 | /// - DOTUI 21 | /// Extra defines set and used for implementation of external assets: 22 | /// - DOTWEEN_TMP ► TextMesh Pro 23 | /// - DOTWEEN_TK2D ► 2D Toolkit 24 | /// 25 | public static class DOTweenModuleUtils 26 | { 27 | static bool _initialized; 28 | 29 | /// 30 | /// Called via Reflection by DOTweenComponent on Awake 31 | /// 32 | public static void Init() 33 | { 34 | if (_initialized) return; 35 | 36 | _initialized = true; 37 | DOTweenExternalCommand.SetOrientationOnPath += Physics.SetOrientationOnPath; 38 | } 39 | 40 | // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ 41 | // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████ 42 | // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ 43 | 44 | public static class Physics 45 | { 46 | // Called via DOTweenExternalCommand callback 47 | public static void SetOrientationOnPath(PathOptions options, Tween t, Quaternion newRot, Transform trans) 48 | { 49 | #if true // PHYSICS_MARKER 50 | if (options.isRigidbody) ((Rigidbody)t.target).rotation = newRot; 51 | else trans.rotation = newRot; 52 | #else 53 | trans.rotation = newRot; 54 | #endif 55 | } 56 | 57 | // Returns FALSE if the DOTween's Physics2D Module is disabled, or if there's no Rigidbody2D attached 58 | public static bool HasRigidbody2D(Component target) 59 | { 60 | #if true // PHYSICS2D_MARKER 61 | return target.GetComponent() != null; 62 | #else 63 | return false; 64 | #endif 65 | } 66 | 67 | #region Called via Reflection 68 | 69 | 70 | // Called via Reflection by DOTweenPathInspector 71 | // Returns FALSE if the DOTween's Physics Module is disabled, or if there's no rigidbody attached 72 | public static bool HasRigidbody(Component target) 73 | { 74 | #if true // PHYSICS_MARKER 75 | return target.GetComponent() != null; 76 | #else 77 | return false; 78 | #endif 79 | } 80 | 81 | // Called via Reflection by DOTweenPath 82 | public static TweenerCore CreateDOTweenPathTween( 83 | MonoBehaviour target, bool tweenRigidbody, bool isLocal, Path path, float duration, PathMode pathMode 84 | ){ 85 | TweenerCore t; 86 | #if true // PHYSICS_MARKER 87 | Rigidbody rBody = tweenRigidbody ? target.GetComponent() : null; 88 | if (tweenRigidbody && rBody != null) { 89 | t = isLocal 90 | ? rBody.DOLocalPath(path, duration, pathMode) 91 | : rBody.DOPath(path, duration, pathMode); 92 | } else { 93 | t = isLocal 94 | ? target.transform.DOLocalPath(path, duration, pathMode) 95 | : target.transform.DOPath(path, duration, pathMode); 96 | } 97 | #else 98 | t = isLocal 99 | ? target.transform.DOLocalPath(path, duration, pathMode) 100 | : target.transform.DOPath(path, duration, pathMode); 101 | #endif 102 | return t; 103 | } 104 | 105 | #endregion 106 | } 107 | } 108 | } 109 | -------------------------------------------------------------------------------- /Assets/DOTween/Modules/DOTweenModuleUtils.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 73f343d6d975a784e8d35abf56433b90 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/DOTween/readme.txt: -------------------------------------------------------------------------------- 1 | DOTween and DOTween Pro are copyright (c) 2014-2018 Daniele Giardini - Demigiant 2 | 3 | // IMPORTANT!!! ///////////////////////////////////////////// 4 | // Upgrading DOTween from versions older than 1.2.000 /////// 5 | // (or DOTween Pro older than 1.0.000) ////////////////////// 6 | ------------------------------------------------------------- 7 | 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. 8 | 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 9 | 2) Close and reopen Unity (and your project). This is fundamental: skipping this step will cause a bloodbath 10 | 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 11 | 4) From the Add/Remove Modules panel that opens, activate/deactivate Modules for Unity systems and for external assets (Pro version only) 12 | 13 | // GET STARTED ////////////////////////////////////////////// 14 | 15 | - 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. 16 | - In your code, add "using DG.Tweening" to each class where you want to use DOTween. 17 | - You're ready to tween. Check out the links below for full documentation and license info. 18 | 19 | 20 | // LINKS /////////////////////////////////////////////////////// 21 | 22 | DOTween website (documentation, examples, etc): http://dotween.demigiant.com 23 | DOTween license: http://dotween.demigiant.com/license.php 24 | DOTween repository (Google Code): https://code.google.com/p/dotween/ 25 | Demigiant website (documentation, examples, etc): http://www.demigiant.com 26 | 27 | // NOTES ////////////////////////////////////////////////////// 28 | 29 | - 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 -------------------------------------------------------------------------------- /Assets/DOTween/readme.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a3e3eb04fc3d51c4abba019879ffe7b6 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd931dd0d1c8cb148b07ad97493dca81 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Plugins/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c8dcf74eb66e7274daee0dd12324bfd4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Plugins/Editor/JetBrains.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6a4d3aa7ec7a03f44af6239e4d5f8c77 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Plugins/Editor/JetBrains/JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/Assets/Plugins/Editor/JetBrains/JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll -------------------------------------------------------------------------------- /Assets/Plugins/Editor/JetBrains/JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed56c307e7b9edf4e8cc75741c3aba5a 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Any: 13 | second: 14 | enabled: 0 15 | settings: {} 16 | - first: 17 | Editor: Editor 18 | second: 19 | enabled: 1 20 | settings: 21 | DefaultValueInitialized: true 22 | - first: 23 | Windows Store Apps: WindowsStoreApps 24 | second: 25 | enabled: 0 26 | settings: 27 | CPU: AnyCPU 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Assets/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b132dad98e20bac4888651f360afa28b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/DOTweenSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 16995157, guid: 56682e760622ee441b0acc0cb7425eda, type: 3} 13 | m_Name: DOTweenSettings 14 | m_EditorClassIdentifier: 15 | useSafeMode: 1 16 | timeScale: 1 17 | useSmoothDeltaTime: 0 18 | maxSmoothUnscaledTime: 0.15 19 | rewindCallbackMode: 0 20 | showUnityEditorReport: 0 21 | logBehaviour: 0 22 | drawGizmos: 1 23 | defaultRecyclable: 0 24 | defaultAutoPlay: 3 25 | defaultUpdateType: 0 26 | defaultTimeScaleIndependent: 0 27 | defaultEaseType: 6 28 | defaultEaseOvershootOrAmplitude: 1.70158 29 | defaultEasePeriod: 0 30 | defaultAutoKill: 1 31 | defaultLoopType: 0 32 | storeSettingsLocation: 0 33 | modules: 34 | showPanel: 0 35 | audioEnabled: 1 36 | physicsEnabled: 1 37 | physics2DEnabled: 1 38 | spriteEnabled: 1 39 | uiEnabled: 1 40 | textMeshProEnabled: 0 41 | tk2DEnabled: 0 42 | showPlayingTweens: 0 43 | showPausedTweens: 0 44 | -------------------------------------------------------------------------------- /Assets/Resources/DOTweenSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 112ceb151ce14b04ea3a4752d85b3903 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/NiceUIPrefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 78fcecf51330e114aa5272a626dfdd03 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/NiceUIPrefabs/ActionBar_pfb.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9f58be867e6f11c4ba7e747821261a4e 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources/NiceUIPrefabs/HamburgerMenuButton_pfb.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &7662821000482621518 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 7662821000482621519} 12 | - component: {fileID: 7662821000482621517} 13 | - component: {fileID: 7662821000482621516} 14 | - component: {fileID: 7662821000482621506} 15 | m_Layer: 5 16 | m_Name: HamburgerMenuButton_pfb 17 | m_TagString: Untagged 18 | m_Icon: {fileID: 0} 19 | m_NavMeshLayer: 0 20 | m_StaticEditorFlags: 0 21 | m_IsActive: 1 22 | --- !u!224 &7662821000482621519 23 | RectTransform: 24 | m_ObjectHideFlags: 0 25 | m_CorrespondingSourceObject: {fileID: 0} 26 | m_PrefabInstance: {fileID: 0} 27 | m_PrefabAsset: {fileID: 0} 28 | m_GameObject: {fileID: 7662821000482621518} 29 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 30 | m_LocalPosition: {x: 0, y: 0, z: 0} 31 | m_LocalScale: {x: 1, y: 1, z: 1} 32 | m_Children: 33 | - {fileID: 7662821000829900248} 34 | m_Father: {fileID: 0} 35 | m_RootOrder: 0 36 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 37 | m_AnchorMin: {x: 0, y: 1} 38 | m_AnchorMax: {x: 0, y: 1} 39 | m_AnchoredPosition: {x: 65, y: -60} 40 | m_SizeDelta: {x: 63, y: 63} 41 | m_Pivot: {x: 0.5, y: 0.5} 42 | --- !u!222 &7662821000482621517 43 | CanvasRenderer: 44 | m_ObjectHideFlags: 0 45 | m_CorrespondingSourceObject: {fileID: 0} 46 | m_PrefabInstance: {fileID: 0} 47 | m_PrefabAsset: {fileID: 0} 48 | m_GameObject: {fileID: 7662821000482621518} 49 | m_CullTransparentMesh: 0 50 | --- !u!114 &7662821000482621516 51 | MonoBehaviour: 52 | m_ObjectHideFlags: 0 53 | m_CorrespondingSourceObject: {fileID: 0} 54 | m_PrefabInstance: {fileID: 0} 55 | m_PrefabAsset: {fileID: 0} 56 | m_GameObject: {fileID: 7662821000482621518} 57 | m_Enabled: 1 58 | m_EditorHideFlags: 0 59 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 60 | m_Name: 61 | m_EditorClassIdentifier: 62 | m_Material: {fileID: 0} 63 | m_Color: {r: 1, g: 1, b: 1, a: 0} 64 | m_RaycastTarget: 1 65 | m_OnCullStateChanged: 66 | m_PersistentCalls: 67 | m_Calls: [] 68 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 69 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 70 | m_Sprite: {fileID: 0} 71 | m_Type: 0 72 | m_PreserveAspect: 0 73 | m_FillCenter: 1 74 | m_FillMethod: 4 75 | m_FillAmount: 1 76 | m_FillClockwise: 1 77 | m_FillOrigin: 0 78 | m_UseSpriteMesh: 0 79 | --- !u!114 &7662821000482621506 80 | MonoBehaviour: 81 | m_ObjectHideFlags: 0 82 | m_CorrespondingSourceObject: {fileID: 0} 83 | m_PrefabInstance: {fileID: 0} 84 | m_PrefabAsset: {fileID: 0} 85 | m_GameObject: {fileID: 7662821000482621518} 86 | m_Enabled: 1 87 | m_EditorHideFlags: 0 88 | m_Script: {fileID: 11500000, guid: d81032284bff43cf8594791880b79ab2, type: 3} 89 | m_Name: 90 | m_EditorClassIdentifier: 91 | UseGlobalThemeColors: 1 92 | m_ChangeColor: 1 93 | m_Background: {fileID: 0} 94 | m_Text: {fileID: 0} 95 | m_InnerIcon: {fileID: 7662821000829900249} 96 | m_IsDisabled: 0 97 | m_AnimateColoring: 1 98 | m_StartColor: {r: 1, g: 0.4666667, b: 0, a: 1} 99 | m_EndColor: {r: 0.9686275, g: 0.6627451, b: 0, a: 1} 100 | m_CurrentColor: {r: 1, g: 0.4666667, b: 0, a: 1} 101 | m_BackgroundColor: {r: 0.16862746, g: 0.16862746, b: 0.16862746, a: 1} 102 | m_DisabledColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 1} 103 | m_AnimationSpeed: 10 104 | m_RotateButtonOnDrawerOpen: 1 105 | m_MaxRotationAngle: -180 106 | --- !u!1 &7662821000829900251 107 | GameObject: 108 | m_ObjectHideFlags: 0 109 | m_CorrespondingSourceObject: {fileID: 0} 110 | m_PrefabInstance: {fileID: 0} 111 | m_PrefabAsset: {fileID: 0} 112 | serializedVersion: 6 113 | m_Component: 114 | - component: {fileID: 7662821000829900248} 115 | - component: {fileID: 7662821000829900254} 116 | - component: {fileID: 7662821000829900249} 117 | m_Layer: 5 118 | m_Name: Icon 119 | m_TagString: Untagged 120 | m_Icon: {fileID: 0} 121 | m_NavMeshLayer: 0 122 | m_StaticEditorFlags: 0 123 | m_IsActive: 1 124 | --- !u!224 &7662821000829900248 125 | RectTransform: 126 | m_ObjectHideFlags: 0 127 | m_CorrespondingSourceObject: {fileID: 0} 128 | m_PrefabInstance: {fileID: 0} 129 | m_PrefabAsset: {fileID: 0} 130 | m_GameObject: {fileID: 7662821000829900251} 131 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 132 | m_LocalPosition: {x: 0, y: 0, z: 0} 133 | m_LocalScale: {x: 1, y: 1, z: 1} 134 | m_Children: [] 135 | m_Father: {fileID: 7662821000482621519} 136 | m_RootOrder: 0 137 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 138 | m_AnchorMin: {x: 0, y: 0} 139 | m_AnchorMax: {x: 1, y: 1} 140 | m_AnchoredPosition: {x: 0, y: 0} 141 | m_SizeDelta: {x: -10, y: -10} 142 | m_Pivot: {x: 0.5, y: 0.5} 143 | --- !u!222 &7662821000829900254 144 | CanvasRenderer: 145 | m_ObjectHideFlags: 0 146 | m_CorrespondingSourceObject: {fileID: 0} 147 | m_PrefabInstance: {fileID: 0} 148 | m_PrefabAsset: {fileID: 0} 149 | m_GameObject: {fileID: 7662821000829900251} 150 | m_CullTransparentMesh: 0 151 | --- !u!114 &7662821000829900249 152 | MonoBehaviour: 153 | m_ObjectHideFlags: 0 154 | m_CorrespondingSourceObject: {fileID: 0} 155 | m_PrefabInstance: {fileID: 0} 156 | m_PrefabAsset: {fileID: 0} 157 | m_GameObject: {fileID: 7662821000829900251} 158 | m_Enabled: 1 159 | m_EditorHideFlags: 0 160 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 161 | m_Name: 162 | m_EditorClassIdentifier: 163 | m_Material: {fileID: 0} 164 | m_Color: {r: 1, g: 0.4666667, b: 0, a: 1} 165 | m_RaycastTarget: 1 166 | m_OnCullStateChanged: 167 | m_PersistentCalls: 168 | m_Calls: [] 169 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 170 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 171 | m_Sprite: {fileID: 21300000, guid: 0f0cf1f47ac56d9468fcb10db0739874, type: 3} 172 | m_Type: 0 173 | m_PreserveAspect: 0 174 | m_FillCenter: 1 175 | m_FillMethod: 4 176 | m_FillAmount: 1 177 | m_FillClockwise: 1 178 | m_FillOrigin: 0 179 | m_UseSpriteMesh: 0 180 | -------------------------------------------------------------------------------- /Assets/Resources/NiceUIPrefabs/HamburgerMenuButton_pfb.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7765b173cb93cfe4f93ef9d3d66df7aa 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources/NiceUIPrefabs/HorizontalProgressBar_pfb.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a49be31b8d8da42469619a282137cb3d 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources/NiceUIPrefabs/IntervalCalendar_pfb.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5fe7ea5a89384f74186e2450ed1b122f 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources/NiceUIPrefabs/NavigationDrawerPanel_pfb.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2aec42b39d47c1c4dacc56f539461a8d 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources/NiceUIPrefabs/ParallaxScrollPage_pfb.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e013083a06704e3479b9d646825e0349 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources/NiceUIPrefabs/RadialProgressBar_pfb.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: daffa94f490cba54885a44c2c58225c4 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources/NiceUIPrefabs/Toggle_pfb.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &368265851044346564 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 368265851044346565} 12 | - component: {fileID: 368265851044346563} 13 | - component: {fileID: 368265851044346562} 14 | m_Layer: 5 15 | m_Name: Knob 16 | m_TagString: Untagged 17 | m_Icon: {fileID: 0} 18 | m_NavMeshLayer: 0 19 | m_StaticEditorFlags: 0 20 | m_IsActive: 1 21 | --- !u!224 &368265851044346565 22 | RectTransform: 23 | m_ObjectHideFlags: 0 24 | m_CorrespondingSourceObject: {fileID: 0} 25 | m_PrefabInstance: {fileID: 0} 26 | m_PrefabAsset: {fileID: 0} 27 | m_GameObject: {fileID: 368265851044346564} 28 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 29 | m_LocalPosition: {x: 0, y: 0, z: 0} 30 | m_LocalScale: {x: 1, y: 1, z: 1} 31 | m_Children: [] 32 | m_Father: {fileID: 368265851132936728} 33 | m_RootOrder: 0 34 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 35 | m_AnchorMin: {x: 0.5, y: 0.5} 36 | m_AnchorMax: {x: 0.5, y: 0.5} 37 | m_AnchoredPosition: {x: 24, y: 0} 38 | m_SizeDelta: {x: 55, y: 55} 39 | m_Pivot: {x: 0.5, y: 0.5} 40 | --- !u!222 &368265851044346563 41 | CanvasRenderer: 42 | m_ObjectHideFlags: 0 43 | m_CorrespondingSourceObject: {fileID: 0} 44 | m_PrefabInstance: {fileID: 0} 45 | m_PrefabAsset: {fileID: 0} 46 | m_GameObject: {fileID: 368265851044346564} 47 | m_CullTransparentMesh: 0 48 | --- !u!114 &368265851044346562 49 | MonoBehaviour: 50 | m_ObjectHideFlags: 0 51 | m_CorrespondingSourceObject: {fileID: 0} 52 | m_PrefabInstance: {fileID: 0} 53 | m_PrefabAsset: {fileID: 0} 54 | m_GameObject: {fileID: 368265851044346564} 55 | m_Enabled: 1 56 | m_EditorHideFlags: 0 57 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 58 | m_Name: 59 | m_EditorClassIdentifier: 60 | m_Material: {fileID: 0} 61 | m_Color: {r: 1, g: 0.59520733, b: 0.24056602, a: 1} 62 | m_RaycastTarget: 0 63 | m_OnCullStateChanged: 64 | m_PersistentCalls: 65 | m_Calls: [] 66 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 67 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 68 | m_Sprite: {fileID: 21300000, guid: 0ca77ab35dde7974fbfffcc2be15c864, type: 3} 69 | m_Type: 0 70 | m_PreserveAspect: 0 71 | m_FillCenter: 1 72 | m_FillMethod: 4 73 | m_FillAmount: 1 74 | m_FillClockwise: 1 75 | m_FillOrigin: 0 76 | m_UseSpriteMesh: 0 77 | --- !u!1 &368265851132936731 78 | GameObject: 79 | m_ObjectHideFlags: 0 80 | m_CorrespondingSourceObject: {fileID: 0} 81 | m_PrefabInstance: {fileID: 0} 82 | m_PrefabAsset: {fileID: 0} 83 | serializedVersion: 6 84 | m_Component: 85 | - component: {fileID: 368265851132936728} 86 | - component: {fileID: 368265851132936806} 87 | - component: {fileID: 368265851132936729} 88 | - component: {fileID: 368265851132936807} 89 | m_Layer: 5 90 | m_Name: Toggle_pfb 91 | m_TagString: Untagged 92 | m_Icon: {fileID: 0} 93 | m_NavMeshLayer: 0 94 | m_StaticEditorFlags: 0 95 | m_IsActive: 1 96 | --- !u!224 &368265851132936728 97 | RectTransform: 98 | m_ObjectHideFlags: 0 99 | m_CorrespondingSourceObject: {fileID: 0} 100 | m_PrefabInstance: {fileID: 0} 101 | m_PrefabAsset: {fileID: 0} 102 | m_GameObject: {fileID: 368265851132936731} 103 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 104 | m_LocalPosition: {x: 0, y: 0, z: 0} 105 | m_LocalScale: {x: 1, y: 1, z: 1} 106 | m_Children: 107 | - {fileID: 368265851044346565} 108 | m_Father: {fileID: 0} 109 | m_RootOrder: 0 110 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 111 | m_AnchorMin: {x: 0, y: 1} 112 | m_AnchorMax: {x: 0, y: 1} 113 | m_AnchoredPosition: {x: 73, y: -180.26279} 114 | m_SizeDelta: {x: 79.43, y: 51} 115 | m_Pivot: {x: 0.5, y: 0.5} 116 | --- !u!222 &368265851132936806 117 | CanvasRenderer: 118 | m_ObjectHideFlags: 0 119 | m_CorrespondingSourceObject: {fileID: 0} 120 | m_PrefabInstance: {fileID: 0} 121 | m_PrefabAsset: {fileID: 0} 122 | m_GameObject: {fileID: 368265851132936731} 123 | m_CullTransparentMesh: 0 124 | --- !u!114 &368265851132936729 125 | MonoBehaviour: 126 | m_ObjectHideFlags: 0 127 | m_CorrespondingSourceObject: {fileID: 0} 128 | m_PrefabInstance: {fileID: 0} 129 | m_PrefabAsset: {fileID: 0} 130 | m_GameObject: {fileID: 368265851132936731} 131 | m_Enabled: 1 132 | m_EditorHideFlags: 0 133 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 134 | m_Name: 135 | m_EditorClassIdentifier: 136 | m_Material: {fileID: 0} 137 | m_Color: {r: 1, g: 0.51446545, b: 0.08962262, a: 1} 138 | m_RaycastTarget: 1 139 | m_OnCullStateChanged: 140 | m_PersistentCalls: 141 | m_Calls: [] 142 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 143 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 144 | m_Sprite: {fileID: 21300000, guid: 75b5d89391077ed42a92a163de1bbe4a, type: 3} 145 | m_Type: 1 146 | m_PreserveAspect: 0 147 | m_FillCenter: 1 148 | m_FillMethod: 4 149 | m_FillAmount: 1 150 | m_FillClockwise: 1 151 | m_FillOrigin: 0 152 | m_UseSpriteMesh: 0 153 | --- !u!114 &368265851132936807 154 | MonoBehaviour: 155 | m_ObjectHideFlags: 0 156 | m_CorrespondingSourceObject: {fileID: 0} 157 | m_PrefabInstance: {fileID: 0} 158 | m_PrefabAsset: {fileID: 0} 159 | m_GameObject: {fileID: 368265851132936731} 160 | m_Enabled: 1 161 | m_EditorHideFlags: 0 162 | m_Script: {fileID: 11500000, guid: fc95f80b0103468089637449ac7fe952, type: 3} 163 | m_Name: 164 | m_EditorClassIdentifier: 165 | UseGlobalThemeColors: 1 166 | m_ChangeColor: 0 167 | m_ChangeColorOnSwitch: 1 168 | m_Background: {fileID: 368265851132936729} 169 | m_Knob: {fileID: 368265851044346562} 170 | m_KnobOffColor: {r: 0.8784314, g: 0.4117647, b: 0, a: 1} 171 | m_KnobOnColor: {r: 1, g: 0.59520733, b: 0.24056602, a: 1} 172 | m_BackgroundOffColor: {r: 0.75686276, g: 0.3529412, b: 0, a: 1} 173 | m_BackgroundOnColor: {r: 1, g: 0.51446545, b: 0.08962262, a: 1} 174 | m_BackgroundDisabledColor: {r: 0.26415092, g: 0.26415092, b: 0.26415092, a: 1} 175 | m_KnobDisabledColor: {r: 0.38679248, g: 0.38679248, b: 0.38679248, a: 1} 176 | m_IsOn: 1 177 | m_IsDisabled: 0 178 | m_AnimateToggling: 1 179 | -------------------------------------------------------------------------------- /Assets/Resources/NiceUIPrefabs/Toggle_pfb.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b4a4a5b2bafbeb44b06a34bffdfca82 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources/NiceUIPrefabs/UIController_pfb.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9cbb6aa025ef7db438437feec9137476 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 131a6b21c8605f84396be9f6751fb6e3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/SampleScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2cda990e2423bbf4892e6590ba056729 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/UiController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Components; 3 | using Components.ActionBar; 4 | using Components.Drawer; 5 | using UnityEditor; 6 | using UnityEngine; 7 | 8 | 9 | //public class ComponentHolderComparer : IComparer { 10 | // 11 | // public int Compare(ComponentHolder x, ComponentHolder y) { 12 | // if (x == null || y == null || (x.m_ComponentPriority == y.m_ComponentPriority)) return 0; 13 | // if (x.m_ComponentPriority > y.m_ComponentPriority) return 1; 14 | // return -1; 15 | // } 16 | //} 17 | 18 | [ExecuteInEditMode] 19 | public class UiController : ComponentBehaviour { 20 | 21 | /// 22 | /// Класс является синглтоном. Вызывается через UIController.Instance 23 | /// этот компонент ДОЛЖЕН быть зацеплен к канвасу, в котором расположены все 24 | /// остальные компоненты системы, такие как ящики, навбары, экшнбары, окна и прочая хуета 25 | /// Контролирует глубину расположения других компонентов за счет их свойства ComponentPriority 26 | /// Так же с помощью объекта этого класса можно управлять некоторыми другими элементами UI 27 | /// например спрятать или показать ActionBar, показать попап и др. 28 | /// Если нужно управлять компонентами, не надо дописывать код сюда. Просто создавай свой класс и цепляй его 29 | /// к тому же канвасу, и там уже делай все, что угодно, товарищ :) 30 | /// 31 | 32 | 33 | private static UiController m_Instance; 34 | 35 | public static UiController Instance { 36 | get { return m_Instance; } 37 | } 38 | 39 | // all this stuff might be unavailable if not added via Editor Menu 40 | private ActionBar m_ActionBar; 41 | private NavigationDrawerPanel m_NavigationDrawerPanel; 42 | 43 | 44 | 45 | private void Start() { 46 | if (m_Instance != null) { 47 | Destroy(gameObject); 48 | return; 49 | } 50 | m_Instance = this; 51 | m_ActionBar = GetSingleComponent(); 52 | 53 | 54 | 55 | // Just to let all components initialize before sorting 56 | // DelayCall(Sort, .15f); 57 | } 58 | 59 | public NavigationDrawerPanel NavigationDrawerPanel { 60 | get { 61 | if (m_NavigationDrawerPanel != null) { 62 | return m_NavigationDrawerPanel; 63 | } 64 | m_NavigationDrawerPanel = GetComponentInChildren(true); 65 | return m_NavigationDrawerPanel; 66 | } 67 | } 68 | public ActionBar ActionBar { 69 | get { 70 | if (m_ActionBar != null) { 71 | return m_ActionBar; 72 | } 73 | m_ActionBar = GetComponentInChildren(true); 74 | return m_ActionBar; 75 | } 76 | } 77 | 78 | public void AddNavigationDrawerPanel() { 79 | #if UNITY_EDITOR 80 | if (NavigationDrawerPanel == null && !Application.isPlaying) { 81 | m_NavigationDrawerPanel = ComponentUtils.InstantiatePrefab("NavigationDrawerPanel_pfb")?.GetComponent(); 82 | if (m_NavigationDrawerPanel != null) { 83 | m_NavigationDrawerPanel.transform.SetParent(GetComponent(), false); 84 | } 85 | EditorUtility.DisplayDialog("Information", "Navigation Drawer panel has been successfully added!", "Ok"); 86 | return; 87 | } 88 | EditorUtility.DisplayDialog("Information", "You only need one drawer panel per application.\nAdding more is useless.", "Ok"); 89 | #endif 90 | } 91 | public void AddActionBar() { 92 | #if UNITY_EDITOR 93 | if (ActionBar == null && !Application.isPlaying) { 94 | m_ActionBar = ComponentUtils.InstantiatePrefab("ActionBar_pfb")?.GetComponent(); 95 | if (m_ActionBar != null) { 96 | m_ActionBar.transform.SetParent(GetComponent(), false); 97 | } 98 | EditorUtility.DisplayDialog("Information", "ActionBar has been successfully added!", "Ok"); 99 | return; 100 | } 101 | EditorUtility.DisplayDialog("Information", "You only need one action bar per application.\nAdding more is useless.", "Ok"); 102 | #endif 103 | } 104 | 105 | 106 | /// 107 | /// Must be called in edit mode from NiceUI Kit -> Remove Drawer Panel menu 108 | /// 109 | public void RemoveNavigationDrawerPanel() { 110 | #if UNITY_EDITOR 111 | if (NavigationDrawerPanel != null && !Application.isPlaying) { 112 | DestroyImmediate(NavigationDrawerPanel.gameObject); 113 | m_NavigationDrawerPanel = null; 114 | } 115 | #endif 116 | } 117 | public void RemoveActionBar() { 118 | #if UNITY_EDITOR 119 | if (ActionBar != null && !Application.isPlaying) { 120 | DestroyImmediate(ActionBar.gameObject); 121 | m_ActionBar = null; 122 | } 123 | #endif 124 | } 125 | 126 | private T GetSingleComponent() { 127 | var componentsInChildren = transform.GetComponentsInChildren(); 128 | if (componentsInChildren.Length > 1) { 129 | throw new Exception($"Компонентов с типом {typeof(T)} " + 130 | $"должно быть не больше 1. " + 131 | $"Найдено {componentsInChildren.Length}"); 132 | } 133 | return componentsInChildren.Length > 0 ? componentsInChildren[0] : default(T); 134 | } 135 | 136 | // private void Sort() { 137 | // IComparer comparer = new ComponentHolderComparer(); 138 | // var componentHolders = GetComponentsInChildren(true); 139 | // Array.Sort(componentHolders, comparer); 140 | // foreach (var componentHolder in componentHolders) { 141 | // if (componentHolder.transform.parent == transform) { 142 | // // нужно учитывать только прямых потомков канваса 143 | // componentHolder.transform.SetAsLastSibling(); 144 | // } 145 | // } 146 | // } 147 | 148 | public void ShowActionBar() { 149 | if (m_ActionBar != null) m_ActionBar.HideActionBar(); 150 | } 151 | 152 | public void HideActionBar() { 153 | if (m_ActionBar != null) m_ActionBar.HideActionBar(); 154 | } 155 | 156 | 157 | } 158 | -------------------------------------------------------------------------------- /Assets/UiController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd85f23bed20d5c4db129d924d32075f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ads": "2.0.8", 4 | "com.unity.analytics": "3.0.9", 5 | "com.unity.collab-proxy": "1.2.9", 6 | "com.unity.package-manager-ui": "2.0.1", 7 | "com.unity.purchasing": "2.0.1", 8 | "com.unity.textmeshpro": "1.3.0", 9 | "com.unity.modules.ai": "1.0.0", 10 | "com.unity.modules.animation": "1.0.0", 11 | "com.unity.modules.assetbundle": "1.0.0", 12 | "com.unity.modules.audio": "1.0.0", 13 | "com.unity.modules.cloth": "1.0.0", 14 | "com.unity.modules.director": "1.0.0", 15 | "com.unity.modules.imageconversion": "1.0.0", 16 | "com.unity.modules.imgui": "1.0.0", 17 | "com.unity.modules.jsonserialize": "1.0.0", 18 | "com.unity.modules.particlesystem": "1.0.0", 19 | "com.unity.modules.physics": "1.0.0", 20 | "com.unity.modules.physics2d": "1.0.0", 21 | "com.unity.modules.screencapture": "1.0.0", 22 | "com.unity.modules.terrain": "1.0.0", 23 | "com.unity.modules.terrainphysics": "1.0.0", 24 | "com.unity.modules.tilemap": "1.0.0", 25 | "com.unity.modules.ui": "1.0.0", 26 | "com.unity.modules.uielements": "1.0.0", 27 | "com.unity.modules.umbra": "1.0.0", 28 | "com.unity.modules.unityanalytics": "1.0.0", 29 | "com.unity.modules.unitywebrequest": "1.0.0", 30 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 31 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 32 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 33 | "com.unity.modules.unitywebrequestwww": "1.0.0", 34 | "com.unity.modules.vehicles": "1.0.0", 35 | "com.unity.modules.video": "1.0.0", 36 | "com.unity.modules.vr": "1.0.0", 37 | "com.unity.modules.wind": "1.0.0", 38 | "com.unity.modules.xr": "1.0.0" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 1024 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 1 23 | m_ClothInterCollisionSettingsToggle: 0 24 | m_ContactPairsMode: 0 25 | m_BroadphaseType: 0 26 | m_WorldBounds: 27 | m_Center: {x: 0, y: 0, z: 0} 28 | m_Extent: {x: 250, y: 250, z: 250} 29 | m_WorldSubdivisions: 8 30 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Scenes/SampleScene.unity 10 | guid: 2cda990e2423bbf4892e6590ba056729 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 1 11 | m_SpritePackerMode: 4 12 | m_SpritePackerPaddingPower: 1 13 | m_EtcTextureCompressorBehavior: 1 14 | m_EtcTextureFastCompressor: 1 15 | m_EtcTextureNormalCompressor: 2 16 | m_EtcTextureBestCompressor: 4 17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef 18 | m_ProjectGenerationRootNamespace: 19 | m_UserGeneratedProjectSuffix: 20 | m_CollabEditorSettings: 21 | inProgressEnabled: 1 22 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 16002, guid: 0000000000000000f000000000000000, type: 0} 37 | m_PreloadedShaders: [] 38 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 39 | type: 0} 40 | m_CustomRenderPipeline: {fileID: 0} 41 | m_TransparencySortMode: 0 42 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 43 | m_DefaultRenderingPath: 1 44 | m_DefaultMobileRenderingPath: 1 45 | m_TierSettings: [] 46 | m_LightmapStripping: 0 47 | m_FogStripping: 0 48 | m_InstancingStripping: 0 49 | m_LightmapKeepPlain: 1 50 | m_LightmapKeepDirCombined: 1 51 | m_LightmapKeepDynamicPlain: 1 52 | m_LightmapKeepDynamicDirCombined: 1 53 | m_LightmapKeepShadowMask: 1 54 | m_LightmapKeepSubtractive: 1 55 | m_FogKeepLinear: 1 56 | m_FogKeepExp: 1 57 | m_FogKeepExp2: 1 58 | m_AlbedoSwatchInfos: [] 59 | m_LightsUseLinearIntensity: 0 60 | m_LightsUseColorTemperature: 0 61 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_AutoSyncTransforms: 1 28 | m_AlwaysShowColliders: 0 29 | m_ShowColliderSleep: 1 30 | m_ShowColliderContacts: 0 31 | m_ShowColliderAABB: 0 32 | m_ContactArrowScale: 0.2 33 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 34 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 35 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 36 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 37 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 38 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: 7 | - type: 8 | m_NativeTypeID: 20 9 | m_ManagedTypePPtr: {fileID: 0} 10 | m_ManagedTypeFallback: 11 | defaultPresets: 12 | - m_Preset: {fileID: 2655988077585873504, guid: bfcfc320427f8224bbb7a96f3d3aebad, 13 | type: 2} 14 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2018.3.0b5 2 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 3 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | blendWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | particleRaycastBudget: 4 33 | asyncUploadTimeSlice: 2 34 | asyncUploadBufferSize: 4 35 | resolutionScalingFixedDPIFactor: 1 36 | excludedTargetPlatforms: [] 37 | - serializedVersion: 2 38 | name: Low 39 | pixelLightCount: 0 40 | shadows: 0 41 | shadowResolution: 0 42 | shadowProjection: 1 43 | shadowCascades: 1 44 | shadowDistance: 20 45 | shadowNearPlaneOffset: 3 46 | shadowCascade2Split: 0.33333334 47 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 48 | shadowmaskMode: 0 49 | blendWeights: 2 50 | textureQuality: 0 51 | anisotropicTextures: 0 52 | antiAliasing: 0 53 | softParticles: 0 54 | softVegetation: 0 55 | realtimeReflectionProbes: 0 56 | billboardsFaceCameraPosition: 0 57 | vSyncCount: 0 58 | lodBias: 0.4 59 | maximumLODLevel: 0 60 | particleRaycastBudget: 16 61 | asyncUploadTimeSlice: 2 62 | asyncUploadBufferSize: 4 63 | resolutionScalingFixedDPIFactor: 1 64 | excludedTargetPlatforms: [] 65 | - serializedVersion: 2 66 | name: Medium 67 | pixelLightCount: 1 68 | shadows: 0 69 | shadowResolution: 0 70 | shadowProjection: 1 71 | shadowCascades: 1 72 | shadowDistance: 20 73 | shadowNearPlaneOffset: 3 74 | shadowCascade2Split: 0.33333334 75 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 76 | shadowmaskMode: 0 77 | blendWeights: 2 78 | textureQuality: 0 79 | anisotropicTextures: 0 80 | antiAliasing: 0 81 | softParticles: 0 82 | softVegetation: 0 83 | realtimeReflectionProbes: 0 84 | billboardsFaceCameraPosition: 0 85 | vSyncCount: 1 86 | lodBias: 0.7 87 | maximumLODLevel: 0 88 | particleRaycastBudget: 64 89 | asyncUploadTimeSlice: 2 90 | asyncUploadBufferSize: 4 91 | resolutionScalingFixedDPIFactor: 1 92 | excludedTargetPlatforms: [] 93 | - serializedVersion: 2 94 | name: High 95 | pixelLightCount: 2 96 | shadows: 0 97 | shadowResolution: 1 98 | shadowProjection: 1 99 | shadowCascades: 2 100 | shadowDistance: 40 101 | shadowNearPlaneOffset: 3 102 | shadowCascade2Split: 0.33333334 103 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 104 | shadowmaskMode: 1 105 | blendWeights: 2 106 | textureQuality: 0 107 | anisotropicTextures: 0 108 | antiAliasing: 0 109 | softParticles: 0 110 | softVegetation: 1 111 | realtimeReflectionProbes: 0 112 | billboardsFaceCameraPosition: 0 113 | vSyncCount: 1 114 | lodBias: 1 115 | maximumLODLevel: 0 116 | particleRaycastBudget: 256 117 | asyncUploadTimeSlice: 2 118 | asyncUploadBufferSize: 4 119 | resolutionScalingFixedDPIFactor: 1 120 | excludedTargetPlatforms: [] 121 | - serializedVersion: 2 122 | name: Very High 123 | pixelLightCount: 3 124 | shadows: 0 125 | shadowResolution: 2 126 | shadowProjection: 1 127 | shadowCascades: 2 128 | shadowDistance: 70 129 | shadowNearPlaneOffset: 3 130 | shadowCascade2Split: 0.33333334 131 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 132 | shadowmaskMode: 1 133 | blendWeights: 4 134 | textureQuality: 0 135 | anisotropicTextures: 0 136 | antiAliasing: 0 137 | softParticles: 0 138 | softVegetation: 1 139 | realtimeReflectionProbes: 0 140 | billboardsFaceCameraPosition: 0 141 | vSyncCount: 1 142 | lodBias: 1.5 143 | maximumLODLevel: 0 144 | particleRaycastBudget: 1024 145 | asyncUploadTimeSlice: 2 146 | asyncUploadBufferSize: 4 147 | resolutionScalingFixedDPIFactor: 1 148 | excludedTargetPlatforms: [] 149 | - serializedVersion: 2 150 | name: Ultra 151 | pixelLightCount: 4 152 | shadows: 0 153 | shadowResolution: 0 154 | shadowProjection: 1 155 | shadowCascades: 4 156 | shadowDistance: 150 157 | shadowNearPlaneOffset: 3 158 | shadowCascade2Split: 0.33333334 159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 160 | shadowmaskMode: 1 161 | blendWeights: 4 162 | textureQuality: 0 163 | anisotropicTextures: 0 164 | antiAliasing: 0 165 | softParticles: 0 166 | softVegetation: 1 167 | realtimeReflectionProbes: 0 168 | billboardsFaceCameraPosition: 0 169 | vSyncCount: 1 170 | lodBias: 2 171 | maximumLODLevel: 0 172 | particleRaycastBudget: 4096 173 | asyncUploadTimeSlice: 2 174 | asyncUploadBufferSize: 4 175 | resolutionScalingFixedDPIFactor: 1 176 | excludedTargetPlatforms: [] 177 | m_PerPlatformDefaultQuality: 178 | Android: 2 179 | Nintendo 3DS: 5 180 | Nintendo Switch: 5 181 | PS4: 5 182 | PSM: 5 183 | PSP2: 2 184 | Standalone: 5 185 | Tizen: 2 186 | WebGL: 3 187 | WiiU: 5 188 | Windows Store Apps: 5 189 | XboxOne: 5 190 | iPhone: 2 191 | tvOS: 2 192 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.0167 7 | Maximum Allowed Timestep: 0.1 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 1 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 1 23 | m_TestMode: 0 24 | UnityAdsSettings: 25 | m_Enabled: 0 26 | m_InitializeOnStartup: 1 27 | m_TestMode: 0 28 | m_IosGameId: 29 | m_AndroidGameId: 30 | m_GameIds: {} 31 | m_GameId: 32 | PerformanceReportingSettings: 33 | m_Enabled: 0 34 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Unity GUI kit 2 | 3 | This project contains some parts of mobile app GUI for Unity 4 | the components that are included: 5 | - Drawers 6 | - Scroll Pane (quick scroll as an opposite to the slow built-in one) 7 | - Calendar with an ability to pick a range of dates 8 | - Progress bars (animated), including circular ones 9 | - Toggles (switches) 10 | 11 | Anyone who needs it may use or modify these components as he wants. 12 | Unfortunately I don't have time to support this project, so I'm putting it down as is 13 | 14 | ## Example 15 | 16 | The example scene is included 17 | 18 | 19 | ![alt watcher](https://github.com/caseyryan/images/blob/master/unity_gui.gif?raw=true) -------------------------------------------------------------------------------- /obj/Debug/Assembly-CSharp-Editor.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/obj/Debug/Assembly-CSharp-Editor.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /obj/Debug/Assembly-CSharp.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/caseyryan/unity_app_gui/1ead38b9429bb0ddcbbce0ae7c70fcd9038a7aa5/obj/Debug/Assembly-CSharp.csprojAssemblyReference.cache --------------------------------------------------------------------------------