From 576b0d8482d438df5009e40563ef13ebf8731fea Mon Sep 17 00:00:00 2001 From: Starpelly Date: Wed, 5 Jan 2022 19:11:33 -0500 Subject: [PATCH] Editor stuff --- Assets/Plugins/com.unity.uiextensions.meta | 8 + .../com.unity.uiextensions/CHANGELOG.md | 78 + .../com.unity.uiextensions/CHANGELOG.md.meta | 7 + .../com.unity.uiextensions/Editor.meta | 9 + .../Editor/AccordionElementEditor.cs | 24 + .../Editor/AccordionElementEditor.cs.meta | 8 + .../Editor/BezierLineRendererEditor.cs | 77 + .../Editor/BezierLineRendererEditor.cs.meta | 12 + .../Editor/BoxSliderEditor.cs | 67 + .../Editor/BoxSliderEditor.cs.meta | 12 + .../Editor/CUIBezierCurveEditor.cs | 59 + .../Editor/CUIBezierCurveEditor.cs.meta | 12 + .../Editor/CUIGraphicEditor.cs | 187 ++ .../Editor/CUIGraphicEditor.cs.meta | 12 + .../Editor/CUIImageEditor.cs | 88 + .../Editor/CUIImageEditor.cs.meta | 12 + .../Editor/CUITextEditor.cs | 10 + .../Editor/CUITextEditor.cs.meta | 12 + .../Editor/CanvasGroupActivator.cs | 116 + .../Editor/CanvasGroupActivator.cs.meta | 8 + .../Editor/ColorPickerPresetsEditor.cs | 28 + .../Editor/ColorPickerPresetsEditor.cs.meta | 13 + .../Editor/FancyScrollView.meta | 8 + .../Editor/FancyScrollView/ScrollerEditor.cs | 158 ++ .../FancyScrollView/ScrollerEditor.cs.meta | 11 + .../Editor/NonDrawingGraphicEditor.cs | 21 + .../Editor/NonDrawingGraphicEditor.cs.meta | 12 + .../Editor/RangeSliderEditor.cs | 123 + .../Editor/RangeSliderEditor.cs.meta | 11 + .../Editor/ReadOnlyDrawer.cs | 19 + .../Editor/ReadOnlyDrawer.cs.meta | 12 + .../Editor/ScrollPositionControllerEditor.cs | 85 + .../ScrollPositionControllerEditor.cs.meta | 13 + .../Editor/TextPicEditor.cs | 38 + .../Editor/TextPicEditor.cs.meta | 12 + .../Editor/TextPicIconEditor.cs | 130 + .../Editor/TextPicIconEditor.cs.meta | 13 + .../Editor/TextPicIconListCopier.cs | 140 + .../Editor/TextPicIconListCopier.cs.meta | 13 + .../Editor/TextPicRenameEditor.cs | 161 ++ .../Editor/TextPicRenameEditor.cs.meta | 13 + .../Editor/UIExtensionsMenuOptions.cs | 2211 ++++++++++++++++ .../Editor/UIExtensionsMenuOptions.cs.meta | 8 + .../Editor/uGUITools.cs | 135 + .../Editor/uGUITools.cs.meta | 8 + .../Plugins/com.unity.uiextensions/LICENSE.md | 22 + .../com.unity.uiextensions/LICENSE.md.meta | 7 + .../Plugins/com.unity.uiextensions/README.md | 229 ++ .../com.unity.uiextensions/README.md.meta | 7 + .../com.unity.uiextensions/Runtime.meta | 8 + .../Runtime/Resources.meta | 10 + .../Runtime/Resources/Shaders.meta | 5 + .../Resources/Shaders/SoftMaskShader.shader | 150 ++ .../Shaders/SoftMaskShader.shader.meta | 9 + .../Resources/Shaders/UI Particle Add.shader | 105 + .../Shaders/UI Particle Add.shader.meta | 9 + .../Shaders/UI Particle AddMultiply.shader | 109 + .../UI Particle AddMultiply.shader.meta | 9 + .../Shaders/UI Particle AddSmooth.shader | 105 + .../Shaders/UI Particle AddSmooth.shader.meta | 9 + .../Shaders/UI Particle Alpha Blend.shader | 105 + .../UI Particle Alpha Blend.shader.meta | 9 + .../Shaders/UI Particle Blend.shader | 104 + .../Shaders/UI Particle Blend.shader.meta | 9 + .../Shaders/UI Particle Multiply.shader | 104 + .../Shaders/UI Particle Multiply.shader.meta | 9 + .../Shaders/UI Particle MultiplyDouble.shader | 108 + .../UI Particle MultiplyDouble.shader.meta | 9 + .../UI Particle Premultiply Blend.shader | 105 + .../UI Particle Premultiply Blend.shader.meta | 9 + .../UI Particle VertexLit Blended.shader | 42 + .../UI Particle VertexLit Blended.shader.meta | 9 + .../Resources/Shaders/UIAdditive.shader | 94 + .../Resources/Shaders/UIAdditive.shader.meta | 9 + .../Resources/Shaders/UIImageCrop.shader | 69 + .../Resources/Shaders/UIImageCrop.shader.meta | 5 + .../Resources/Shaders/UILinearDodge.shader | 95 + .../Shaders/UILinearDodge.shader.meta | 9 + .../Resources/Shaders/UIMultiply.shader | 93 + .../Resources/Shaders/UIMultiply.shader.meta | 9 + .../Resources/Shaders/UIParticleHidden.shader | 38 + .../Shaders/UIParticleHidden.shader.meta | 9 + .../Runtime/Resources/Shaders/UIScreen.shader | 95 + .../Resources/Shaders/UIScreen.shader.meta | 9 + .../Resources/Shaders/UISoftAdditive.shader | 94 + .../Shaders/UISoftAdditive.shader.meta | 9 + .../Runtime/Scripts.meta | 9 + .../Runtime/Scripts/Controls.meta | 9 + .../Runtime/Scripts/Controls/Accordion.meta | 5 + .../Scripts/Controls/Accordion/Accordion.cs | 61 + .../Controls/Accordion/Accordion.cs.meta | 8 + .../Controls/Accordion/AccordionElement.cs | 218 ++ .../Accordion/AccordionElement.cs.meta | 8 + .../Scripts/Controls/Accordion/Tweening.meta | 5 + .../Controls/Accordion/Tweening/FloatTween.cs | 120 + .../Accordion/Tweening/FloatTween.cs.meta | 8 + .../Accordion/Tweening/ITweenValue.cs | 15 + .../Accordion/Tweening/ITweenValue.cs.meta | 8 + .../Accordion/Tweening/TweenRunner.cs | 63 + .../Accordion/Tweening/TweenRunner.cs.meta | 8 + .../Runtime/Scripts/Controls/BoxSlider.cs | 371 +++ .../Scripts/Controls/BoxSlider.cs.meta | 12 + .../Runtime/Scripts/Controls/ColorPicker.meta | 9 + .../Controls/ColorPicker/ColorImage.cs | 30 + .../Controls/ColorPicker/ColorImage.cs.meta | 12 + .../Controls/ColorPicker/ColorLabel.cs | 87 + .../Controls/ColorPicker/ColorLabel.cs.meta | 12 + .../ColorPicker/ColorPickerControl.cs | 303 +++ .../ColorPicker/ColorPickerControl.cs.meta | 12 + .../ColorPicker/ColorPickerPresets.cs | 194 ++ .../ColorPicker/ColorPickerPresets.cs.meta | 12 + .../Controls/ColorPicker/ColorPickerTester.cs | 24 + .../ColorPicker/ColorPickerTester.cs.meta | 8 + .../Controls/ColorPicker/ColorSampler.cs | 95 + .../Controls/ColorPicker/ColorSampler.cs.meta | 13 + .../Controls/ColorPicker/ColorSlider.cs | 93 + .../Controls/ColorPicker/ColorSlider.cs.meta | 12 + .../Controls/ColorPicker/ColorSliderImage.cs | 231 ++ .../ColorPicker/ColorSliderImage.cs.meta | 12 + .../Controls/ColorPicker/ColorValues.cs | 17 + .../Controls/ColorPicker/ColorValues.cs.meta | 12 + .../Scripts/Controls/ColorPicker/Events.meta | 9 + .../ColorPicker/Events/ColorChangedEvent.cs | 9 + .../Events/ColorChangedEvent.cs.meta | 8 + .../ColorPicker/Events/HSVChangedEvent.cs | 6 + .../Events/HSVChangedEvent.cs.meta | 12 + .../Scripts/Controls/ColorPicker/HSVUtil.cs | 206 ++ .../Controls/ColorPicker/HSVUtil.cs.meta | 8 + .../Controls/ColorPicker/HexColorField.cs | 101 + .../ColorPicker/HexColorField.cs.meta | 12 + .../Controls/ColorPicker/SVBoxSlider.cs | 122 + .../Controls/ColorPicker/SVBoxSlider.cs.meta | 12 + .../Controls/ColorPicker/TiltWindow.cs | 43 + .../Controls/ColorPicker/TiltWindow.cs.meta | 12 + .../Runtime/Scripts/Controls/ComboBox.meta | 5 + .../Controls/ComboBox/AutoCompleteComboBox.cs | 531 ++++ .../ComboBox/AutoCompleteComboBox.cs.meta | 12 + .../Scripts/Controls/ComboBox/ComboBox.cs | 348 +++ .../Controls/ComboBox/ComboBox.cs.meta | 8 + .../Scripts/Controls/ComboBox/DropDownList.cs | 389 +++ .../Controls/ComboBox/DropDownList.cs.meta | 12 + .../Controls/ComboBox/DropDownListButton.cs | 26 + .../ComboBox/DropDownListButton.cs.meta | 8 + .../Controls/ComboBox/DropDownListItem.cs | 100 + .../ComboBox/DropDownListItem.cs.meta | 8 + .../Scripts/Controls/CooldownButton.cs | 197 ++ .../Scripts/Controls/CooldownButton.cs.meta | 12 + .../Runtime/Scripts/Controls/InputFocus.cs | 83 + .../Scripts/Controls/InputFocus.cs.meta | 12 + .../Scripts/Controls/MultiTouchScrollRect.cs | 39 + .../Controls/MultiTouchScrollRect.cs.meta | 12 + .../Runtime/Scripts/Controls/RadialSlider.cs | 258 ++ .../Scripts/Controls/RadialSlider.cs.meta | 12 + .../Runtime/Scripts/Controls/RangeSlider.cs | 604 +++++ .../Scripts/Controls/RangeSlider.cs.meta | 11 + .../Scripts/Controls/ReorderableList.meta | 9 + .../ReorderableList/ReorderableList.cs | 155 ++ .../ReorderableList/ReorderableList.cs.meta | 12 + .../ReorderableList/ReorderableListContent.cs | 74 + .../ReorderableListContent.cs.meta | 12 + .../ReorderableList/ReorderableListDebug.cs | 29 + .../ReorderableListDebug.cs.meta | 12 + .../ReorderableList/ReorderableListElement.cs | 556 ++++ .../ReorderableListElement.cs.meta | 12 + .../Scripts/Controls/RescalingPanels.meta | 9 + .../RescalingPanels/RescaleDragPanel.cs | 64 + .../RescalingPanels/RescaleDragPanel.cs.meta | 12 + .../Controls/RescalingPanels/RescalePanel.cs | 62 + .../RescalingPanels/RescalePanel.cs.meta | 12 + .../Controls/RescalingPanels/ResizePanel.cs | 60 + .../RescalingPanels/ResizePanel.cs.meta | 12 + .../Runtime/Scripts/Controls/Segment.cs | 236 ++ .../Runtime/Scripts/Controls/Segment.cs.meta | 12 + .../Scripts/Controls/SegmentedControl.cs | 245 ++ .../Scripts/Controls/SegmentedControl.cs.meta | 12 + .../Scripts/Controls/SelectionBox.meta | 5 + .../SelectionBox/ExampleSelectable.cs | 93 + .../SelectionBox/ExampleSelectable.cs.meta | 8 + .../Controls/SelectionBox/IBoxSelectable.cs | 31 + .../SelectionBox/IBoxSelectable.cs.meta | 8 + .../Controls/SelectionBox/SelectionBox.cs | 440 ++++ .../SelectionBox/SelectionBox.cs.meta | 8 + .../Runtime/Scripts/Controls/Stepper.cs | 254 ++ .../Runtime/Scripts/Controls/Stepper.cs.meta | 12 + .../Runtime/Scripts/Controls/StepperSide.cs | 103 + .../Scripts/Controls/StepperSide.cs.meta | 12 + .../Runtime/Scripts/Controls/TextPic.cs | 735 ++++++ .../Runtime/Scripts/Controls/TextPic.cs.meta | 12 + .../Runtime/Scripts/Controls/UI_Knob.cs | 286 ++ .../Runtime/Scripts/Controls/UI_Knob.cs.meta | 12 + .../Runtime/Scripts/Effects.meta | 5 + .../Runtime/Scripts/Effects/BestFitOutline.cs | 62 + .../Scripts/Effects/BestFitOutline.cs.meta | 8 + .../Runtime/Scripts/Effects/CurlyUI.meta | 9 + .../Scripts/Effects/CurlyUI/CUIBezierCurve.cs | 116 + .../Effects/CurlyUI/CUIBezierCurve.cs.meta | 12 + .../Scripts/Effects/CurlyUI/CUIGraphic.cs | 617 +++++ .../Effects/CurlyUI/CUIGraphic.cs.meta | 12 + .../Scripts/Effects/CurlyUI/CUIImage.cs | 165 ++ .../Scripts/Effects/CurlyUI/CUIImage.cs.meta | 12 + .../Scripts/Effects/CurlyUI/CUIMisc.cs | 24 + .../Scripts/Effects/CurlyUI/CUIMisc.cs.meta | 12 + .../Scripts/Effects/CurlyUI/CUIText.cs | 19 + .../Scripts/Effects/CurlyUI/CUIText.cs.meta | 12 + .../Runtime/Scripts/Effects/CurvedText.cs | 84 + .../Scripts/Effects/CurvedText.cs.meta | 8 + .../Runtime/Scripts/Effects/CylinderText.cs | 54 + .../Scripts/Effects/CylinderText.cs.meta | 8 + .../Runtime/Scripts/Effects/Gradient.cs | 119 + .../Runtime/Scripts/Effects/Gradient.cs.meta | 8 + .../Runtime/Scripts/Effects/Gradient2.cs | 536 ++++ .../Runtime/Scripts/Effects/Gradient2.cs.meta | 12 + .../Runtime/Scripts/Effects/LetterSpacing.cs | 168 ++ .../Scripts/Effects/LetterSpacing.cs.meta | 8 + .../Runtime/Scripts/Effects/MonoSpacing.cs | 190 ++ .../Scripts/Effects/MonoSpacing.cs.meta | 12 + .../Runtime/Scripts/Effects/NicerOutline.cs | 190 ++ .../Scripts/Effects/NicerOutline.cs.meta | 8 + .../Runtime/Scripts/Effects/RaycastMask.cs | 125 + .../Scripts/Effects/RaycastMask.cs.meta | 8 + .../Scripts/Effects/ShaderEffects.meta | 9 + .../Effects/ShaderEffects/UIAdditiveEffect.cs | 41 + .../ShaderEffects/UIAdditiveEffect.cs.meta | 12 + .../Effects/ShaderEffects/UIImageCrop.cs | 70 + .../Effects/ShaderEffects/UIImageCrop.cs.meta | 8 + .../ShaderEffects/UILinearDodgeEffect.cs | 41 + .../ShaderEffects/UILinearDodgeEffect.cs.meta | 12 + .../Effects/ShaderEffects/UIMultiplyEffect.cs | 41 + .../ShaderEffects/UIMultiplyEffect.cs.meta | 12 + .../Effects/ShaderEffects/UIScreenEffect.cs | 41 + .../ShaderEffects/UIScreenEffect.cs.meta | 12 + .../ShaderEffects/UISoftAdditiveEffect.cs | 41 + .../UISoftAdditiveEffect.cs.meta | 12 + .../Runtime/Scripts/Effects/ShineEffect.cs | 95 + .../Scripts/Effects/ShineEffect.cs.meta | 12 + .../Runtime/Scripts/Effects/ShineEffector.cs | 115 + .../Scripts/Effects/ShineEffector.cs.meta | 12 + .../Runtime/Scripts/Effects/SoftMaskScript.cs | 112 + .../Scripts/Effects/SoftMaskScript.cs.meta | 12 + .../Runtime/Scripts/Effects/UIFlippable.cs | 78 + .../Scripts/Effects/UIFlippable.cs.meta | 8 + .../Scripts/Effects/UIParticleSystem.cs | 410 +++ .../Scripts/Effects/UIParticleSystem.cs.meta | 12 + .../Runtime/Scripts/Layout.meta | 5 + .../Runtime/Scripts/Layout/CardUI.meta | 8 + .../Scripts/Layout/CardUI/2D Cards.meta | 8 + .../Layout/CardUI/2D Cards/CardExpanding2D.cs | 125 + .../CardUI/2D Cards/CardExpanding2D.cs.meta | 11 + .../Layout/CardUI/2D Cards/CardPopup2D.cs | 82 + .../CardUI/2D Cards/CardPopup2D.cs.meta | 11 + .../Layout/CardUI/2D Cards/CardStack2D.cs | 123 + .../CardUI/2D Cards/CardStack2D.cs.meta | 11 + .../Scripts/Layout/CardUI/3D Cards.meta | 8 + .../Layout/CardUI/3D Cards/CardExpanding3D.cs | 222 ++ .../CardUI/3D Cards/CardExpanding3D.cs.meta | 11 + .../Layout/CardUI/Superellipse Creation.meta | 8 + .../Superellipse Creation/MeshCreator.cs | 44 + .../Superellipse Creation/MeshCreator.cs.meta | 11 + .../SuperellipsePoints.cs | 91 + .../SuperellipsePoints.cs.meta | 11 + .../Superellipse Creation/Triangulator.cs | 132 + .../Triangulator.cs.meta | 11 + .../Layout/ContentScrollSnapHorizontal.cs | 676 +++++ .../ContentScrollSnapHorizontal.cs.meta | 12 + .../Runtime/Scripts/Layout/CurvedLayout.cs | 93 + .../Scripts/Layout/CurvedLayout.cs.meta | 12 + .../Scripts/Layout/FancyScrollView.meta | 8 + .../Scripts/Layout/FancyScrollView/Core.meta | 8 + .../Layout/FancyScrollView/Core/FancyCell.cs | 72 + .../FancyScrollView/Core/FancyCell.cs.meta | 11 + .../FancyScrollView/Core/FancyScrollView.cs | 216 ++ .../Core/FancyScrollView.cs.meta | 11 + .../Layout/FancyScrollView/GridView.meta | 8 + .../GridView/FancyCellGroup.cs | 72 + .../GridView/FancyCellGroup.cs.meta | 11 + .../FancyScrollView/GridView/FancyGridView.cs | 181 ++ .../GridView/FancyGridView.cs.meta | 11 + .../GridView/FancyGridViewCell.cs | 42 + .../GridView/FancyGridViewCell.cs.meta | 11 + .../GridView/FancyGridViewContext.cs | 20 + .../GridView/FancyGridViewContext.cs.meta | 11 + .../GridView/IFancyCellGroupContext.cs | 16 + .../GridView/IFancyCellGroupContext.cs.meta | 11 + .../GridView/IFancyGridViewContext.cs | 16 + .../GridView/IFancyGridViewContext.cs.meta | 11 + .../Layout/FancyScrollView/ScrollRect.meta | 8 + .../ScrollRect/FancyScrollRect.cs | 303 +++ .../ScrollRect/FancyScrollRect.cs.meta | 11 + .../ScrollRect/FancyScrollRectCell.cs | 56 + .../ScrollRect/FancyScrollRectCell.cs.meta | 11 + .../ScrollRect/FancyScrollRectContext.cs | 16 + .../ScrollRect/FancyScrollRectContext.cs.meta | 11 + .../ScrollRect/IFancyScrollRectContext.cs | 16 + .../IFancyScrollRectContext.cs.meta | 11 + .../Layout/FancyScrollView/Scroller.meta | 8 + .../FancyScrollView/Scroller/EasingCore.cs | 194 ++ .../Scroller/EasingCore.cs.meta | 11 + .../Scroller/MovementDirection.cs | 13 + .../Scroller/MovementDirection.cs.meta | 11 + .../FancyScrollView/Scroller/MovementType.cs | 12 + .../Scroller/MovementType.cs.meta | 11 + .../Scroller/ScrollDirection.cs | 11 + .../Scroller/ScrollDirection.cs.meta | 11 + .../FancyScrollView/Scroller/Scroller.cs | 597 +++++ .../FancyScrollView/Scroller/Scroller.cs.meta | 12 + .../Runtime/Scripts/Layout/FlowLayoutGroup.cs | 428 +++ .../Scripts/Layout/FlowLayoutGroup.cs.meta | 8 + .../Scripts/Layout/HorizontalScrollSnap.cs | 323 +++ .../Layout/HorizontalScrollSnap.cs.meta | 8 + .../Runtime/Scripts/Layout/IScrollSnap.cs | 14 + .../Scripts/Layout/IScrollSnap.cs.meta | 12 + .../Runtime/Scripts/Layout/RadialLayout.cs | 101 + .../Scripts/Layout/RadialLayout.cs.meta | 8 + .../Layout/ScrollPositionController.cs | 383 +++ .../Layout/ScrollPositionController.cs.meta | 12 + .../Runtime/Scripts/Layout/ScrollSnap.cs | 572 ++++ .../Runtime/Scripts/Layout/ScrollSnap.cs.meta | 8 + .../Runtime/Scripts/Layout/ScrollSnapBase.cs | 650 +++++ .../Scripts/Layout/ScrollSnapBase.cs.meta | 12 + .../Layout/ScrollSnapScrollbarHelper.cs | 54 + .../Layout/ScrollSnapScrollbarHelper.cs.meta | 12 + .../Scripts/Layout/TableLayoutGroup.cs | 288 ++ .../Scripts/Layout/TableLayoutGroup.cs.meta | 12 + .../Runtime/Scripts/Layout/TileSizeFitter.cs | 106 + .../Scripts/Layout/TileSizeFitter.cs.meta | 8 + .../Scripts/Layout/UIVerticalScroller.cs | 254 ++ .../Scripts/Layout/UIVerticalScroller.cs.meta | 12 + .../Scripts/Layout/VerticalScrollSnap.cs | 318 +++ .../Scripts/Layout/VerticalScrollSnap.cs.meta | 12 + .../Runtime/Scripts/MenuSystem.meta | 9 + .../Runtime/Scripts/MenuSystem/Menu.cs | 65 + .../Runtime/Scripts/MenuSystem/Menu.cs.meta | 12 + .../Runtime/Scripts/MenuSystem/MenuManager.cs | 169 ++ .../Scripts/MenuSystem/MenuManager.cs.meta | 12 + .../Runtime/Scripts/MenuSystem/SimpleMenu.cs | 22 + .../Scripts/MenuSystem/SimpleMenu.cs.meta | 12 + .../Runtime/Scripts/Primitives.meta | 9 + .../Scripts/Primitives/DiamondGraph.cs | 66 + .../Scripts/Primitives/DiamondGraph.cs.meta | 12 + .../Runtime/Scripts/Primitives/UICircle.cs | 220 ++ .../Scripts/Primitives/UICircle.cs.meta | 8 + .../Runtime/Scripts/Primitives/UICornerCut.cs | 219 ++ .../Scripts/Primitives/UICornerCut.cs.meta | 12 + .../Scripts/Primitives/UIGridRenderer.cs | 141 + .../Scripts/Primitives/UIGridRenderer.cs.meta | 12 + .../Scripts/Primitives/UILineRenderer.cs | 475 ++++ .../Scripts/Primitives/UILineRenderer.cs.meta | 12 + .../Scripts/Primitives/UILineRendererList.cs | 394 +++ .../Primitives/UILineRendererList.cs.meta | 12 + .../Primitives/UILineTextureRenderer.cs | 159 ++ .../Primitives/UILineTextureRenderer.cs.meta | 12 + .../Runtime/Scripts/Primitives/UIPolygon.cs | 103 + .../Scripts/Primitives/UIPolygon.cs.meta | 12 + .../Scripts/Primitives/UIPrimitiveBase.cs | 362 +++ .../Primitives/UIPrimitiveBase.cs.meta | 12 + .../Runtime/Scripts/Primitives/UISquircle.cs | 141 + .../Scripts/Primitives/UISquircle.cs.meta | 11 + .../Runtime/Scripts/TabNavigationHelper.cs | 152 ++ .../Scripts/TabNavigationHelper.cs.meta | 8 + .../Runtime/Scripts/ToolTips.meta | 5 + .../Scripts/ToolTips/BoundTooltip.meta | 5 + .../ToolTips/BoundTooltip/BoundTooltipItem.cs | 56 + .../BoundTooltip/BoundTooltipItem.cs.meta | 8 + .../BoundTooltip/BoundTooltipTrigger.cs | 54 + .../BoundTooltip/BoundTooltipTrigger.cs.meta | 8 + .../Runtime/Scripts/ToolTips/HoverTooltip.cs | 331 +++ .../Scripts/ToolTips/HoverTooltip.cs.meta | 8 + .../Runtime/Scripts/ToolTips/ToolTip.cs | 320 +++ .../Runtime/Scripts/ToolTips/ToolTip.cs.meta | 8 + .../Scripts/ToolTips/TooltipTrigger.cs | 108 + .../Scripts/ToolTips/TooltipTrigger.cs.meta | 11 + .../Runtime/Scripts/UIWindowBase.cs | 122 + .../Runtime/Scripts/UIWindowBase.cs.meta | 8 + .../Runtime/Scripts/Utilities.meta | 5 + .../Runtime/Scripts/Utilities/BezierPath.cs | 350 +++ .../Scripts/Utilities/BezierPath.cs.meta | 12 + .../CLFZ2-CompressionHelper-ReadME.md | 25 + .../CLFZ2-CompressionHelper-ReadME.md.meta | 8 + .../Runtime/Scripts/Utilities/CLZF2.cs | 340 +++ .../Runtime/Scripts/Utilities/CLZF2.cs.meta | 12 + .../Runtime/Scripts/Utilities/CableCurve.cs | 233 ++ .../Scripts/Utilities/CableCurve.cs.meta | 12 + .../Runtime/Scripts/Utilities/Circle.cs | 82 + .../Runtime/Scripts/Utilities/Circle.cs.meta | 12 + .../Scripts/Utilities/DragCorrector.cs | 31 + .../Scripts/Utilities/DragCorrector.cs.meta | 12 + .../Scripts/Utilities/ExtensionsToggle.cs | 269 ++ .../Utilities/ExtensionsToggle.cs.meta | 12 + .../Utilities/ExtensionsToggleGroup.cs | 110 + .../Utilities/ExtensionsToggleGroup.cs.meta | 12 + .../Scripts/Utilities/ExtentionMethods.cs | 33 + .../Utilities/ExtentionMethods.cs.meta | 11 + .../Utilities/InputFieldEnterSubmit.cs | 42 + .../Utilities/InputFieldEnterSubmit.cs.meta | 8 + .../Scripts/Utilities/NonDrawingGraphic.cs | 21 + .../Utilities/NonDrawingGraphic.cs.meta | 12 + .../Runtime/Scripts/Utilities/PPIViewer.cs | 28 + .../Scripts/Utilities/PPIViewer.cs.meta | 12 + .../Scripts/Utilities/PaginationManager.cs | 139 + .../Utilities/PaginationManager.cs.meta | 12 + .../Scripts/Utilities/ReadOnlyAttribute.cs | 7 + .../Utilities/ReadOnlyAttribute.cs.meta | 12 + .../Utilities/ReturnKeyTriggersButton.cs | 36 + .../Utilities/ReturnKeyTriggersButton.cs.meta | 8 + .../Utilities/ScrollConflictManager.cs | 149 ++ .../Utilities/ScrollConflictManager.cs.meta | 12 + .../Runtime/Scripts/Utilities/ScrollRectEx.cs | 109 + .../Scripts/Utilities/ScrollRectEx.cs.meta | 12 + .../Scripts/Utilities/ScrollRectExtensions.cs | 17 + .../Utilities/ScrollRectExtensions.cs.meta | 12 + .../Scripts/Utilities/ScrollRectLinker.cs | 34 + .../Utilities/ScrollRectLinker.cs.meta | 12 + .../Scripts/Utilities/ScrollRectTweener.cs | 141 + .../Utilities/ScrollRectTweener.cs.meta | 12 + .../Scripts/Utilities/SelectableScaler.cs | 93 + .../Utilities/SelectableScaler.cs.meta | 12 + .../Scripts/Utilities/SetPropertyUtility.cs | 36 + .../Utilities/SetPropertyUtility.cs.meta | 12 + .../Scripts/Utilities/ShaderLibrary.cs | 27 + .../Scripts/Utilities/ShaderLibrary.cs.meta | 11 + .../Scripts/Utilities/TestCompression.cs | 14 + .../Scripts/Utilities/TestCompression.cs.meta | 12 + .../Scripts/Utilities/UIExtensionMethods.cs | 65 + .../Utilities/UIExtensionMethods.cs.meta | 12 + .../Utilities/UIExtensionsInputManager.cs | 296 +++ .../UIExtensionsInputManager.cs.meta | 11 + .../Scripts/Utilities/UIHighlightable.cs | 119 + .../Scripts/Utilities/UIHighlightable.cs.meta | 12 + .../Scripts/Utilities/UILineConnector.cs | 86 + .../Scripts/Utilities/UILineConnector.cs.meta | 12 + .../Scripts/Utilities/UIScrollToSelection.cs | 303 +++ .../Utilities/UIScrollToSelection.cs.meta | 12 + .../Utilities/UIScrollToSelectionXY.cs | 123 + .../Utilities/UIScrollToSelectionXY.cs.meta | 8 + .../Utilities/UISelectableExtension.cs | 119 + .../Utilities/UISelectableExtension.cs.meta | 8 + .../Scripts/Utilities/UI_InfiniteScroll.cs | 218 ++ .../Utilities/UI_InfiniteScroll.cs.meta | 12 + .../Utilities/UI_MagneticInfiniteScroll.cs | 200 ++ .../UI_MagneticInfiniteScroll.cs.meta | 11 + .../Utilities/UI_ScrollRectOcclusion.cs | 200 ++ .../Utilities/UI_ScrollRectOcclusion.cs.meta | 12 + .../Scripts/Utilities/UI_TweenScale.cs | 104 + .../Scripts/Utilities/UI_TweenScale.cs.meta | 12 + .../Utilities/switchToRectTransform.cs | 24 + .../Utilities/switchToRectTransform.cs.meta | 8 + .../com.unity.uiextensions/package.json | 33 + .../com.unity.uiextensions/package.json.meta | 4 + Assets/Scenes/Editor.unity | 2342 ++++++++++++++++- Assets/Scenes/Game.unity | 5 +- Assets/Scripts/Conductor.cs | 5 + Assets/Scripts/GameManager.cs | 4 +- Assets/Scripts/Initializer.cs | 15 + Assets/Scripts/LevelEditor/Editor.cs | 15 + Assets/Scripts/LevelEditor/Editor.cs.meta | 2 +- Assets/Scripts/LevelEditor/Timeline.cs | 121 + Assets/Scripts/LevelEditor/Timeline.cs.meta | 11 + Assets/remix6.json | 2 +- 458 files changed, 37611 insertions(+), 15 deletions(-) create mode 100644 Assets/Plugins/com.unity.uiextensions.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/CHANGELOG.md create mode 100644 Assets/Plugins/com.unity.uiextensions/CHANGELOG.md.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/AccordionElementEditor.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/AccordionElementEditor.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/BoxSliderEditor.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/BoxSliderEditor.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/CUIBezierCurveEditor.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/CUIBezierCurveEditor.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/CUIGraphicEditor.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/CUIGraphicEditor.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/CUIImageEditor.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/CUIImageEditor.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/CUITextEditor.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/CUITextEditor.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/CanvasGroupActivator.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/CanvasGroupActivator.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/ColorPickerPresetsEditor.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/ColorPickerPresetsEditor.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/FancyScrollView.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/FancyScrollView/ScrollerEditor.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/FancyScrollView/ScrollerEditor.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/NonDrawingGraphicEditor.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/NonDrawingGraphicEditor.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/RangeSliderEditor.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/RangeSliderEditor.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/ReadOnlyDrawer.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/ReadOnlyDrawer.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/ScrollPositionControllerEditor.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/ScrollPositionControllerEditor.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/TextPicEditor.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/TextPicEditor.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/TextPicIconEditor.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/TextPicIconEditor.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/TextPicIconListCopier.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/TextPicIconListCopier.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/TextPicRenameEditor.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/TextPicRenameEditor.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/UIExtensionsMenuOptions.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/UIExtensionsMenuOptions.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/uGUITools.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Editor/uGUITools.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/LICENSE.md create mode 100644 Assets/Plugins/com.unity.uiextensions/LICENSE.md.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/README.md create mode 100644 Assets/Plugins/com.unity.uiextensions/README.md.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/SoftMaskShader.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/SoftMaskShader.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Add.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Add.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddMultiply.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddMultiply.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddSmooth.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle AddSmooth.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Alpha Blend.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Alpha Blend.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Blend.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Blend.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Multiply.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Multiply.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle MultiplyDouble.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle MultiplyDouble.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Premultiply Blend.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle Premultiply Blend.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle VertexLit Blended.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UI Particle VertexLit Blended.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIAdditive.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIAdditive.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIImageCrop.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIImageCrop.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UILinearDodge.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UILinearDodge.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIMultiply.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIMultiply.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIParticleHidden.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIParticleHidden.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIScreen.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UIScreen.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UISoftAdditive.shader create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Resources/Shaders/UISoftAdditive.shader.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/Accordion.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/Accordion/Accordion.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/Accordion/Accordion.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/Accordion/AccordionElement.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/Accordion/AccordionElement.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/Accordion/Tweening.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/Accordion/Tweening/FloatTween.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/Accordion/Tweening/FloatTween.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/Accordion/Tweening/ITweenValue.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/Accordion/Tweening/ITweenValue.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/Accordion/Tweening/TweenRunner.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/Accordion/Tweening/TweenRunner.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/BoxSlider.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/BoxSlider.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorImage.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorImage.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorLabel.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorLabel.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorPickerControl.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorPickerControl.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorPickerPresets.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorPickerPresets.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorPickerTester.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorPickerTester.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorSampler.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorSampler.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorSlider.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorSlider.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorSliderImage.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorSliderImage.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorValues.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/ColorValues.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/Events.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/Events/ColorChangedEvent.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/Events/ColorChangedEvent.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/Events/HSVChangedEvent.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/Events/HSVChangedEvent.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/HSVUtil.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/HSVUtil.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/HexColorField.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/HexColorField.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/SVBoxSlider.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/SVBoxSlider.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/TiltWindow.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ColorPicker/TiltWindow.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ComboBox.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ComboBox/AutoCompleteComboBox.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ComboBox/AutoCompleteComboBox.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ComboBox/ComboBox.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ComboBox/ComboBox.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ComboBox/DropDownList.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ComboBox/DropDownList.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ComboBox/DropDownListButton.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ComboBox/DropDownListButton.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ComboBox/DropDownListItem.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ComboBox/DropDownListItem.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/CooldownButton.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/CooldownButton.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/InputFocus.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/InputFocus.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/MultiTouchScrollRect.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/MultiTouchScrollRect.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/RadialSlider.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/RadialSlider.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/RangeSlider.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/RangeSlider.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ReorderableList.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ReorderableList/ReorderableList.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ReorderableList/ReorderableList.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ReorderableList/ReorderableListContent.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ReorderableList/ReorderableListContent.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ReorderableList/ReorderableListDebug.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ReorderableList/ReorderableListDebug.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ReorderableList/ReorderableListElement.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/ReorderableList/ReorderableListElement.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/RescalingPanels.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/RescalingPanels/RescaleDragPanel.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/RescalingPanels/RescaleDragPanel.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/RescalingPanels/RescalePanel.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/RescalingPanels/RescalePanel.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/RescalingPanels/ResizePanel.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/RescalingPanels/ResizePanel.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/Segment.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/Segment.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/SegmentedControl.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/SegmentedControl.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/SelectionBox.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/SelectionBox/ExampleSelectable.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/SelectionBox/ExampleSelectable.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/SelectionBox/IBoxSelectable.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/SelectionBox/IBoxSelectable.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/SelectionBox/SelectionBox.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/SelectionBox/SelectionBox.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/Stepper.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/Stepper.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/StepperSide.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/StepperSide.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/TextPic.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/TextPic.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/UI_Knob.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Controls/UI_Knob.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/BestFitOutline.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/BestFitOutline.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/CurlyUI.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/CurlyUI/CUIBezierCurve.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/CurlyUI/CUIBezierCurve.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/CurlyUI/CUIGraphic.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/CurlyUI/CUIGraphic.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/CurlyUI/CUIImage.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/CurlyUI/CUIImage.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/CurlyUI/CUIMisc.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/CurlyUI/CUIMisc.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/CurlyUI/CUIText.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/CurlyUI/CUIText.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/CurvedText.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/CurvedText.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/CylinderText.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/CylinderText.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/Gradient.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/Gradient.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/Gradient2.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/Gradient2.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/LetterSpacing.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/LetterSpacing.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/MonoSpacing.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/MonoSpacing.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/NicerOutline.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/NicerOutline.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/RaycastMask.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/RaycastMask.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShaderEffects.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShaderEffects/UIAdditiveEffect.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShaderEffects/UIAdditiveEffect.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShaderEffects/UIImageCrop.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShaderEffects/UIImageCrop.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShaderEffects/UILinearDodgeEffect.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShaderEffects/UILinearDodgeEffect.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShaderEffects/UIMultiplyEffect.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShaderEffects/UIMultiplyEffect.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShaderEffects/UIScreenEffect.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShaderEffects/UIScreenEffect.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShaderEffects/UISoftAdditiveEffect.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShaderEffects/UISoftAdditiveEffect.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShineEffect.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShineEffect.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShineEffector.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShineEffector.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/SoftMaskScript.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/SoftMaskScript.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/UIFlippable.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/UIFlippable.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/UIParticleSystem.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/UIParticleSystem.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/2D Cards.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/2D Cards/CardExpanding2D.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/2D Cards/CardExpanding2D.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/2D Cards/CardPopup2D.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/2D Cards/CardPopup2D.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/2D Cards/CardStack2D.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/2D Cards/CardStack2D.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/3D Cards.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/3D Cards/CardExpanding3D.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/3D Cards/CardExpanding3D.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/Superellipse Creation.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/Superellipse Creation/MeshCreator.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/Superellipse Creation/MeshCreator.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/Superellipse Creation/SuperellipsePoints.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/Superellipse Creation/SuperellipsePoints.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/Superellipse Creation/Triangulator.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CardUI/Superellipse Creation/Triangulator.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/ContentScrollSnapHorizontal.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/ContentScrollSnapHorizontal.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CurvedLayout.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/CurvedLayout.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/Core.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/Core/FancyCell.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/Core/FancyCell.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/Core/FancyScrollView.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/Core/FancyScrollView.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/GridView.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/GridView/FancyCellGroup.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/GridView/FancyCellGroup.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/GridView/FancyGridView.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/GridView/FancyGridView.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/GridView/FancyGridViewCell.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/GridView/FancyGridViewCell.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/GridView/FancyGridViewContext.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/GridView/FancyGridViewContext.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/GridView/IFancyCellGroupContext.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/GridView/IFancyCellGroupContext.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/GridView/IFancyGridViewContext.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/GridView/IFancyGridViewContext.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/ScrollRect.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/ScrollRect/FancyScrollRect.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/ScrollRect/FancyScrollRect.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/ScrollRect/FancyScrollRectCell.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/ScrollRect/FancyScrollRectCell.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/ScrollRect/FancyScrollRectContext.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/ScrollRect/FancyScrollRectContext.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/ScrollRect/IFancyScrollRectContext.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/ScrollRect/IFancyScrollRectContext.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/Scroller.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/Scroller/EasingCore.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/Scroller/EasingCore.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/Scroller/MovementDirection.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/Scroller/MovementDirection.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/Scroller/MovementType.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/Scroller/MovementType.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/Scroller/ScrollDirection.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/Scroller/ScrollDirection.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/Scroller/Scroller.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FancyScrollView/Scroller/Scroller.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FlowLayoutGroup.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/FlowLayoutGroup.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/HorizontalScrollSnap.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/HorizontalScrollSnap.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/IScrollSnap.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/IScrollSnap.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/RadialLayout.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/RadialLayout.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/ScrollPositionController.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/ScrollPositionController.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/ScrollSnap.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/ScrollSnap.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/ScrollSnapBase.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/ScrollSnapBase.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/ScrollSnapScrollbarHelper.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/ScrollSnapScrollbarHelper.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/TableLayoutGroup.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/TableLayoutGroup.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/TileSizeFitter.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/TileSizeFitter.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/UIVerticalScroller.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/UIVerticalScroller.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/VerticalScrollSnap.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Layout/VerticalScrollSnap.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/MenuSystem.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/MenuSystem/Menu.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/MenuSystem/Menu.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/MenuSystem/MenuManager.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/MenuSystem/MenuManager.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/MenuSystem/SimpleMenu.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/MenuSystem/SimpleMenu.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/DiamondGraph.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/DiamondGraph.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UICircle.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UICircle.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UICornerCut.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UICornerCut.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UIGridRenderer.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UIGridRenderer.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRenderer.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRenderer.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRendererList.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineRendererList.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineTextureRenderer.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UILineTextureRenderer.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UIPolygon.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UIPolygon.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UIPrimitiveBase.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UIPrimitiveBase.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UISquircle.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Primitives/UISquircle.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/TabNavigationHelper.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/TabNavigationHelper.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/ToolTips.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/ToolTips/BoundTooltip.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/ToolTips/BoundTooltip/BoundTooltipItem.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/ToolTips/BoundTooltip/BoundTooltipItem.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/ToolTips/BoundTooltip/BoundTooltipTrigger.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/ToolTips/BoundTooltip/BoundTooltipTrigger.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/ToolTips/HoverTooltip.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/ToolTips/HoverTooltip.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/ToolTips/ToolTip.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/ToolTips/ToolTip.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/ToolTips/TooltipTrigger.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/ToolTips/TooltipTrigger.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/UIWindowBase.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/UIWindowBase.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/BezierPath.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/BezierPath.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/CLFZ2-CompressionHelper-ReadME.md create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/CLFZ2-CompressionHelper-ReadME.md.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/CLZF2.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/CLZF2.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/CableCurve.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/CableCurve.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/Circle.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/Circle.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/DragCorrector.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/DragCorrector.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ExtensionsToggle.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ExtensionsToggle.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ExtensionsToggleGroup.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ExtensionsToggleGroup.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ExtentionMethods.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ExtentionMethods.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/InputFieldEnterSubmit.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/InputFieldEnterSubmit.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/NonDrawingGraphic.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/NonDrawingGraphic.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/PPIViewer.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/PPIViewer.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/PaginationManager.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/PaginationManager.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ReadOnlyAttribute.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ReadOnlyAttribute.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ReturnKeyTriggersButton.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ReturnKeyTriggersButton.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ScrollConflictManager.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ScrollConflictManager.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ScrollRectEx.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ScrollRectEx.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ScrollRectExtensions.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ScrollRectExtensions.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ScrollRectLinker.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ScrollRectLinker.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ScrollRectTweener.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ScrollRectTweener.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/SelectableScaler.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/SelectableScaler.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/SetPropertyUtility.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/SetPropertyUtility.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ShaderLibrary.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/ShaderLibrary.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/TestCompression.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/TestCompression.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UIExtensionMethods.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UIExtensionMethods.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UIExtensionsInputManager.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UIExtensionsInputManager.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UIHighlightable.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UIHighlightable.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UILineConnector.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UILineConnector.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UIScrollToSelection.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UIScrollToSelection.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UIScrollToSelectionXY.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UIScrollToSelectionXY.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UISelectableExtension.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UISelectableExtension.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UI_InfiniteScroll.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UI_InfiniteScroll.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UI_MagneticInfiniteScroll.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UI_MagneticInfiniteScroll.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UI_ScrollRectOcclusion.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UI_ScrollRectOcclusion.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UI_TweenScale.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/UI_TweenScale.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/switchToRectTransform.cs create mode 100644 Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Utilities/switchToRectTransform.cs.meta create mode 100644 Assets/Plugins/com.unity.uiextensions/package.json create mode 100644 Assets/Plugins/com.unity.uiextensions/package.json.meta create mode 100644 Assets/Scripts/LevelEditor/Timeline.cs create mode 100644 Assets/Scripts/LevelEditor/Timeline.cs.meta diff --git a/Assets/Plugins/com.unity.uiextensions.meta b/Assets/Plugins/com.unity.uiextensions.meta new file mode 100644 index 000000000..7da59b41d --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 450fd99bb24cb1648938099cfa8efc00 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/CHANGELOG.md b/Assets/Plugins/com.unity.uiextensions/CHANGELOG.md new file mode 100644 index 000000000..4b1c09668 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/CHANGELOG.md @@ -0,0 +1,78 @@ +# Change Log + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](http://keepachangelog.com/). + +## 2019.6 - 2.5 - Bug squash - 2021/05/10 + +Its been a while since the last update and although Unity keeps changing, thankfully the parts underneath do not. THanks to some awesome work by our contributors and the test teams, we made a run on some underlying bugs and issues. If you spot anything else, please log it on the BitBucket site for resolution. + +> Be sure to logon to the new [Gitter Chat](https://gitter.im/Unity-UI-Extensions/Lobby) site for the UI Extensions project, if you have any questions, queries or suggestions +> +> Much easier that posting a question / issue on YouTube, Twitter or Facebook :D +> +> ## [UIExtensions Gitter Channel](https://gitter.im/Unity-UI-Extensions/Lobby) + + +### Added + +Nothing new this time, bugfix release. + +### Changed + +- Updated UI Line connector to use relative position instead of anchored position to verify if the Lines need updating. +- Allow menu prefabs to not have to have canvas components. This allows you to use any type of prefab as a "menu". Adam Kapos mentions the concept on the Unite talk, https://youtu.be/wbmjturGbAQ?t=1654 +- Updated segment line drawing for Line Lists. Seems Unity no longer needs UV's to be wrapped manually. +- Updated the AutoCompleteComboBox to display text as entered (instead of all lowercase) +- Updated the ComboBox to display text as entered (instead of all lowercase) +- Updated ComboBox Examples to include programmatic versions +- Further ComboBox improvements including: + * Upwards panel + * Start fixes + * Item Template resize + * Disabled sorting on combobox as it wasn't working + * Disabled Slider handle when not in use + * Updated Example +- Updated the new Input system switch and tested against 2021 + +### Deprecated + +None + +### Fixed + +- Reordering issue resolved with ScrollRectOcclusion. +- Fixed Sorting at min and max positions for ScrollRect +- Updated ScrollToSelect script provided by zero3growlithe, tested and vastly reduces the previous jitter. Still present but barely noticeable now. +- Fixed Issue # 363 Update Combobox control that takes multiple items programmatically, to only allow distinct items +- Fixed the issues where dragging outside the range slider handle causes the range to update. - Resolves #369 +- Resolves an issue with Unity putting the previous controls vertex array in an uninitialised control. +- Applied J.R. Mitchell's fix for the Accordion Controls/Accordion/AccordionElement.cs - resolves: #364 +- Resolved issue where the Content Scroll snap issue with only 1 child. Resolves #362 +- Updated the PaginationManager to override if the ScrollSnap is in motion. + +### Removed + +None + +### Additional Notes + +#### [Installation Instructions](https://bitbucket.org/UnityUIExtensions/unity-ui-extensions/wiki/GettingStarted) + +As of Unity 2019, there are now two paths for getting access to the Unity UI Extensions project: + +- Unity 2019 or higher +The recommended way to add the Unity UI Extensions project to your solution is to use the Unity package Manager. Simply use the Unity Package Manager to reference the project to install it + +Alternatively, you can also use the pre-compiled Unity packages if you wish, however, UPM offers full versioning support to allow you to switch versions as you wish. + +- Unity 2018 or lower +The pre-compiled Unity assets are the only solution for Unity 2018 or earlier due to the changes in the Unity UI framework in Unity made for 2019. +Either clone / download this repository to your machine and then copy the scripts in, or use the pre-packaged .UnityPackage for your version of Unity and import it as a custom package in to your project. + +#### Upgrade Notes + +Due to the restructure of the package to meet Unity's new package guidelines, we recommend **Deleting the current Unity UI Extensions** folder prior to importing the new package. + +For Unity 2019 users using the new UPM deployment, be sure to delete the existing folder in your assets folder before adding the new package to avoid conflict. diff --git a/Assets/Plugins/com.unity.uiextensions/CHANGELOG.md.meta b/Assets/Plugins/com.unity.uiextensions/CHANGELOG.md.meta new file mode 100644 index 000000000..25efa72d3 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/CHANGELOG.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 03470ebba317a0549a5582f18f4d2383 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor.meta b/Assets/Plugins/com.unity.uiextensions/Editor.meta new file mode 100644 index 000000000..5ffd2cb78 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b95396d565a2a7f478b12f8b9648ed8f +folderAsset: yes +timeCreated: 1467468503 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/AccordionElementEditor.cs b/Assets/Plugins/com.unity.uiextensions/Editor/AccordionElementEditor.cs new file mode 100644 index 000000000..866eeaf9d --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/AccordionElementEditor.cs @@ -0,0 +1,24 @@ +///Credit ChoMPHi +///Sourced from - http://forum.unity3d.com/threads/accordion-type-layout.271818/ + +using UnityEditor; +using UnityEditor.UI; + +namespace UnityEngine.UI.Extensions +{ + [CustomEditor(typeof(AccordionElement), true)] + public class AccordionElementEditor : ToggleEditor { + + public override void OnInspectorGUI() + { + this.serializedObject.Update(); + EditorGUILayout.PropertyField(this.serializedObject.FindProperty("m_MinHeight")); + this.serializedObject.ApplyModifiedProperties(); + + base.serializedObject.Update(); + EditorGUILayout.PropertyField(base.serializedObject.FindProperty("m_IsOn")); + EditorGUILayout.PropertyField(base.serializedObject.FindProperty("m_Interactable")); + base.serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/AccordionElementEditor.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/AccordionElementEditor.cs.meta new file mode 100644 index 000000000..57fbc44cd --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/AccordionElementEditor.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8882b502b0c65b24ba4623d6a383815b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs b/Assets/Plugins/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs new file mode 100644 index 000000000..eba06d172 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs @@ -0,0 +1,77 @@ +///Credit Jason Horsburgh +///Sourced from - https://bitbucket.org/UnityUIExtensions/unity-ui-extensions/issues/127/uilinerenderer-mesh-not-updating-in-editor + +using UnityEditor; + +namespace UnityEngine.UI.Extensions +{ + [CustomEditor(typeof(UILineRenderer))] + public class BezierLineRendererEditor : Editor + { + void OnSceneGUI() + { + UILineRenderer curveRenderer = target as UILineRenderer; + + if (!curveRenderer || curveRenderer.drivenExternally || curveRenderer.Points == null || curveRenderer.Points.Length < 2) + { + return; + } + + var oldMatrix = Handles.matrix; + var transform = curveRenderer.GetComponent(); + //Pivot must be 0,0 to edit + //transform.pivot = Vector2.zero; + Handles.matrix = transform.localToWorldMatrix; + + var sizeX = curveRenderer.rectTransform.rect.width; + var sizeY = curveRenderer.rectTransform.rect.height; + var offsetX = -curveRenderer.rectTransform.pivot.x * sizeX; + var offsetY = -curveRenderer.rectTransform.pivot.y * sizeY; + + Vector2[] points = new Vector2[curveRenderer.Points.Length]; + for (int i = 0; i < curveRenderer.Points.Length; i++) + { + points[i] = curveRenderer.Points[i]; + } + + //Need to transform points to worldspace! when set to Relative + if (curveRenderer.RelativeSize) + { + for (int i = 0; i < points.Length; i++) + { + points[i] = new Vector2(points[i].x * sizeX + offsetX, points[i].y * sizeY + offsetY); + } + } + + for (int i = 0; i < points.Length - 1; i += 2) + { + Handles.DrawLine(points[i], points[i + 1]); + } + + for (int i = 0; i < points.Length; ++i) + { + using (var check = new EditorGUI.ChangeCheckScope()) + { + var p = Handles.PositionHandle(points[i], Quaternion.identity); + + if (check.changed) + { + Undo.RecordObject(curveRenderer, "Changed Curve Position"); + if (curveRenderer.RelativeSize) + { + curveRenderer.Points[i] = new Vector2((p.x - offsetX) / sizeX, (p.y - offsetY) / sizeY); + } + else + { + curveRenderer.Points[i] = p; + } + curveRenderer.transform.gameObject.SetActive(false); + curveRenderer.transform.gameObject.SetActive(true); + } + } + } + + Handles.matrix = oldMatrix; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs.meta new file mode 100644 index 000000000..094231b49 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/BezierLineRendererEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4ef6a0d3c3259384982ae3974fe7e618 +timeCreated: 1492258093 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/BoxSliderEditor.cs b/Assets/Plugins/com.unity.uiextensions/Editor/BoxSliderEditor.cs new file mode 100644 index 000000000..6693b1b8f --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/BoxSliderEditor.cs @@ -0,0 +1,67 @@ +///Credit judah4 +///Sourced from - http://forum.unity3d.com/threads/color-picker.267043/ + +using UnityEditor; +using UnityEditor.UI; + +namespace UnityEngine.UI.Extensions +{ + [CustomEditor(typeof(BoxSlider), true)] + [CanEditMultipleObjects] + public class BoxSliderEditor : SelectableEditor + { + + SerializedProperty m_HandleRect; + SerializedProperty m_MinValue; + SerializedProperty m_MaxValue; + SerializedProperty m_WholeNumbers; + SerializedProperty m_ValueX; + SerializedProperty m_ValueY; + SerializedProperty m_OnValueChanged; + + protected override void OnEnable() + { + base.OnEnable(); + m_HandleRect = serializedObject.FindProperty("m_HandleRect"); + + m_MinValue = serializedObject.FindProperty("m_MinValue"); + m_MaxValue = serializedObject.FindProperty("m_MaxValue"); + m_WholeNumbers = serializedObject.FindProperty("m_WholeNumbers"); + m_ValueX = serializedObject.FindProperty("m_ValueX"); + m_ValueY = serializedObject.FindProperty("m_ValueY"); + m_OnValueChanged = serializedObject.FindProperty("m_OnValueChanged"); + } + + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + EditorGUILayout.Space(); + + serializedObject.Update(); + + EditorGUILayout.PropertyField(m_HandleRect); + + if (m_HandleRect.objectReferenceValue != null) + { + EditorGUI.BeginChangeCheck(); + + + EditorGUILayout.PropertyField(m_MinValue); + EditorGUILayout.PropertyField(m_MaxValue); + EditorGUILayout.PropertyField(m_WholeNumbers); + EditorGUILayout.Slider(m_ValueX, m_MinValue.floatValue, m_MaxValue.floatValue); + EditorGUILayout.Slider(m_ValueY, m_MinValue.floatValue, m_MaxValue.floatValue); + + // Draw the event notification options + EditorGUILayout.Space(); + EditorGUILayout.PropertyField(m_OnValueChanged); + } + else + { + EditorGUILayout.HelpBox("Specify a RectTransform for the slider fill or the slider handle or both. Each must have a parent RectTransform that it can slide within.", MessageType.Info); + } + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/BoxSliderEditor.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/BoxSliderEditor.cs.meta new file mode 100644 index 000000000..a2c5e7669 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/BoxSliderEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8701e045b26e51f4eb345f2ccb3c13f5 +timeCreated: 1426804458 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/CUIBezierCurveEditor.cs b/Assets/Plugins/com.unity.uiextensions/Editor/CUIBezierCurveEditor.cs new file mode 100644 index 000000000..c27595351 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/CUIBezierCurveEditor.cs @@ -0,0 +1,59 @@ +/// Credit Titinious (https://github.com/Titinious) +/// Sourced from - https://github.com/Titinious/CurlyUI + +using UnityEditor; + +namespace UnityEngine.UI.Extensions +{ + [CustomEditor(typeof(CUIBezierCurve))] + [CanEditMultipleObjects] + public class CUIBezierCurveEditor : Editor + { + public override void OnInspectorGUI() + { + DrawDefaultInspector(); + } + + protected void OnSceneGUI() + { + CUIBezierCurve script = (CUIBezierCurve)this.target; + + if (script.ControlPoints != null) + { + Vector3[] controlPoints = script.ControlPoints; + + Transform handleTransform = script.transform; + Quaternion handleRotation = script.transform.rotation; + + for (int p = 0; p < CUIBezierCurve.CubicBezierCurvePtNum; p++) + { + EditorGUI.BeginChangeCheck(); + Vector3 newPt = Handles.DoPositionHandle(handleTransform.TransformPoint(controlPoints[p]), handleRotation); + if (EditorGUI.EndChangeCheck()) + { + + Undo.RecordObject(script, "Move Point"); + EditorUtility.SetDirty(script); + controlPoints[p] = handleTransform.InverseTransformPoint(newPt); + script.Refresh(); + } + } + + Handles.color = Color.gray; + Handles.DrawLine(handleTransform.TransformPoint(controlPoints[0]), handleTransform.TransformPoint(controlPoints[1])); + Handles.DrawLine(handleTransform.TransformPoint(controlPoints[1]), handleTransform.TransformPoint(controlPoints[2])); + Handles.DrawLine(handleTransform.TransformPoint(controlPoints[2]), handleTransform.TransformPoint(controlPoints[3])); + + int sampleSize = 10; + + Handles.color = Color.white; + for (int s = 0; s < sampleSize; s++) + { + Handles.DrawLine(handleTransform.TransformPoint(script.GetPoint((float)s / sampleSize)), handleTransform.TransformPoint(script.GetPoint((float)(s + 1) / sampleSize))); + } + + script.EDITOR_ControlPoints = controlPoints; + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/CUIBezierCurveEditor.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/CUIBezierCurveEditor.cs.meta new file mode 100644 index 000000000..4c233819a --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/CUIBezierCurveEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 40e01e4fb1e006b46a0f127c8a9907b3 +timeCreated: 1485671367 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/CUIGraphicEditor.cs b/Assets/Plugins/com.unity.uiextensions/Editor/CUIGraphicEditor.cs new file mode 100644 index 000000000..075c7860b --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/CUIGraphicEditor.cs @@ -0,0 +1,187 @@ +/// Credit Titinious (https://github.com/Titinious) +/// Sourced from - https://github.com/Titinious/CurlyUI + +using UnityEditor; + +namespace UnityEngine.UI.Extensions +{ + [CustomEditor(typeof(CUIGraphic), true)] + public class CUIGraphicEditor : Editor { + + protected static bool isCurveGpFold = false; + + protected Vector3[] reuse_Vector3s = new Vector3[4]; + + public override void OnInspectorGUI() + { + CUIGraphic script = (CUIGraphic)this.target; + + EditorGUILayout.HelpBox("CurlyUI (CUI) should work with most of the Unity UI. For Image, use CUIImage; for Text, use CUIText; and for others (e.g. RawImage), use CUIGraphic", MessageType.Info); + + if (script.UIGraphic == null) + { + EditorGUILayout.HelpBox("CUI is an extension to Unity's UI. You must set Ui Graphic with a Unity Graphic component (e.g. Image, Text, RawImage)", MessageType.Error); + } + else + { + if (script.UIGraphic is Image && script.GetType() != typeof(CUIImage)) + { + EditorGUILayout.HelpBox("Although CUI components are generalized. It is recommended that for Image, use CUIImage", MessageType.Warning); + } + else if (script.UIGraphic is Text && script.GetType() != typeof(CUIText)) + { + EditorGUILayout.HelpBox("Although CUI components are generalized. It is recommended that for Text, use CUIText", MessageType.Warning); + } + + EditorGUILayout.HelpBox("Now that CUI is ready, change the control points of the top and bottom bezier curves to curve/morph the UI. Improve resolution when the UI seems to look poorly when curved/morphed should help.", MessageType.Info); + + } + + DrawDefaultInspector(); + + // draw the editor that shows the position ratio of all control points from the two bezier curves + isCurveGpFold = EditorGUILayout.Foldout(isCurveGpFold, "Curves Position Ratios"); + if (isCurveGpFold) + { + EditorGUI.indentLevel++; + EditorGUILayout.LabelField("Top Curve"); + EditorGUI.indentLevel++; + Vector3[] controlPoints = script.RefCurvesControlRatioPoints[1].array; + + EditorGUI.BeginChangeCheck(); + for (int p = 0; p < controlPoints.Length; p++) + { + reuse_Vector3s[p] = EditorGUILayout.Vector3Field(string.Format("Control Points {0}", p + 1), controlPoints[p]); + } + + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(script, "Change Ratio Points"); + EditorUtility.SetDirty(script); + + System.Array.Copy(reuse_Vector3s, script.RefCurvesControlRatioPoints[1].array, controlPoints.Length); + script.UpdateCurveControlPointPositions(); + } + EditorGUI.indentLevel--; + EditorGUILayout.LabelField("Bottom Curve"); + EditorGUI.indentLevel++; + controlPoints = script.RefCurvesControlRatioPoints[0].array; + + EditorGUI.BeginChangeCheck(); + for (int p = 0; p < controlPoints.Length; p++) + { + reuse_Vector3s[p] = EditorGUILayout.Vector3Field(string.Format("Control Points {0}", p + 1), controlPoints[p]); + } + + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(script, "Change Ratio Points"); + EditorUtility.SetDirty(script); + + System.Array.Copy(reuse_Vector3s, controlPoints, controlPoints.Length); + script.UpdateCurveControlPointPositions(); + } + EditorGUI.indentLevel--; + EditorGUI.indentLevel--; + } + + EditorGUILayout.Space(); + if (GUILayout.Button("Fit Bezier curves to rect transform")) + { + Undo.RecordObject(script, "Fit to Rect Transform"); + Undo.RecordObject(script.RefCurves[0], "Fit to Rect Transform"); + Undo.RecordObject(script.RefCurves[1], "Fit to Rect Transform"); + EditorUtility.SetDirty(script); + + script.FixTextToRectTrans(); + + script.Refresh(); + } + + EditorGUILayout.Space(); + + // disable group to prevent allowing the reference be used when there is no reference CUI + EditorGUI.BeginDisabledGroup(script.RefCUIGraphic == null); + + if (GUILayout.Button("Reference CUI component for curves")) + { + Undo.RecordObject(script, "Reference CUI"); + Undo.RecordObject(script.RefCurves[0], "Reference CUI"); + Undo.RecordObject(script.RefCurves[1], "Reference CUI"); + EditorUtility.SetDirty(script); + + script.ReferenceCUIForBCurves(); + + script.Refresh(); + } + + EditorGUILayout.HelpBox("Auto set the curves' control points by referencing another CUI. You need to set Ref CUI Graphic (e.g. CUIImage) first.", MessageType.Info); + + EditorGUI.EndDisabledGroup(); + } + + protected virtual void OnSceneGUI() + { + // for CUITextEditor, allow using scene UI to change the control points of the bezier curves + + CUIGraphic script = (CUIGraphic)this.target; + + script.ReportSet(); + + for (int c = 0; c < script.RefCurves.Length; c++) + { + + CUIBezierCurve curve = script.RefCurves[c]; + + if (curve.ControlPoints != null) + { + + Vector3[] controlPoints = curve.ControlPoints; + + Transform handleTransform = curve.transform; + Quaternion handleRotation = curve.transform.rotation; + + for (int p = 0; p < CUIBezierCurve.CubicBezierCurvePtNum; p++) + { + EditorGUI.BeginChangeCheck(); + Handles.Label(handleTransform.TransformPoint(controlPoints[p]), string.Format("Control Point {0}", p + 1)); + Vector3 newPt = Handles.DoPositionHandle(handleTransform.TransformPoint(controlPoints[p]), handleRotation); + if (EditorGUI.EndChangeCheck()) + { + + Undo.RecordObject(curve, "Move Point"); + Undo.RecordObject(script, "Move Point"); + EditorUtility.SetDirty(curve); + controlPoints[p] = handleTransform.InverseTransformPoint(newPt); + + } + } + + Handles.color = Color.gray; + Handles.DrawLine(handleTransform.TransformPoint(controlPoints[0]), handleTransform.TransformPoint(controlPoints[1])); + Handles.DrawLine(handleTransform.TransformPoint(controlPoints[1]), handleTransform.TransformPoint(controlPoints[2])); + Handles.DrawLine(handleTransform.TransformPoint(controlPoints[2]), handleTransform.TransformPoint(controlPoints[3])); + + int sampleSize = 10; + + Handles.color = Color.white; + for (int s = 0; s < sampleSize; s++) + { + Handles.DrawLine(handleTransform.TransformPoint(curve.GetPoint((float)s / sampleSize)), handleTransform.TransformPoint(curve.GetPoint((float)(s + 1) / sampleSize))); + } + + curve.EDITOR_ControlPoints = controlPoints; + } + } + + + if (script.RefCurves != null) + { + Handles.DrawLine(script.RefCurves[0].transform.TransformPoint(script.RefCurves[0].ControlPoints[0]), script.RefCurves[1].transform.TransformPoint(script.RefCurves[1].ControlPoints[0])); + Handles.DrawLine(script.RefCurves[0].transform.TransformPoint(script.RefCurves[0].ControlPoints[3]), script.RefCurves[1].transform.TransformPoint(script.RefCurves[1].ControlPoints[3])); + } + + script.Refresh(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/CUIGraphicEditor.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/CUIGraphicEditor.cs.meta new file mode 100644 index 000000000..93b718b99 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/CUIGraphicEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b7b84624f1ba7bd49b6cfc63b25f4b7c +timeCreated: 1485671367 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/CUIImageEditor.cs b/Assets/Plugins/com.unity.uiextensions/Editor/CUIImageEditor.cs new file mode 100644 index 000000000..c961d071c --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/CUIImageEditor.cs @@ -0,0 +1,88 @@ +/// Credit Titinious (https://github.com/Titinious) +/// Sourced from - https://github.com/Titinious/CurlyUI + +using UnityEditor; + +namespace UnityEngine.UI.Extensions +{ + [CustomEditor(typeof(CUIImage))] + public class CUIImageEditor : CUIGraphicEditor + { + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + + CUIImage script = (CUIImage)this.target; + + EditorGUILayout.Space(); + + EditorGUI.BeginChangeCheck(); + + EditorGUI.BeginDisabledGroup(!(script.UIImage.type == Image.Type.Sliced || script.UIImage.type == Image.Type.Tiled)); + Vector2 newCornerRatio = EditorGUILayout.Vector2Field("Corner Ratio", script.cornerPosRatio); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(script, "Change Corner Ratio"); + EditorUtility.SetDirty(script); + script.cornerPosRatio = newCornerRatio; + } + + if (GUILayout.Button("Use native corner ratio")) + { + Undo.RecordObject(script, "Change Corner Ratio"); + EditorUtility.SetDirty(script); + script.cornerPosRatio = script.OriCornerPosRatio; + } + + if (script.UIImage.type == Image.Type.Sliced || script.UIImage.type == Image.Type.Filled) + { + EditorGUILayout.HelpBox("With CUIImage, you can also adjust the size of the corners for filled or sliced Image. The grey sphere in the editor scene could also be moved to change the corner's size.", MessageType.Info); + } + else + { + EditorGUILayout.HelpBox("With CUIImage, you can also adjust the size of the corners for filled or sliced Image. You need to set Image to filled or sliced to use this feature.", MessageType.Info); + } + + EditorGUI.EndDisabledGroup(); + } + + protected override void OnSceneGUI() + { + base.OnSceneGUI(); + + CUIImage script = (CUIImage)this.target; + + if (script.UIImage.type == Image.Type.Sliced || script.UIImage.type == Image.Type.Tiled) + { + Vector3 cornerPos = Vector3.zero;// + + if (script.IsCurved) + { + cornerPos = script.GetBCurveSandwichSpacePoint(script.cornerPosRatio.x, script.cornerPosRatio.y); + } + else + { + cornerPos.x = script.cornerPosRatio.x * script.RectTrans.rect.width - script.RectTrans.pivot.x * script.RectTrans.rect.width; + cornerPos.y = script.cornerPosRatio.y * script.RectTrans.rect.height - script.RectTrans.pivot.y * script.RectTrans.rect.height; + } + + Handles.color = Color.gray; + EditorGUI.BeginChangeCheck(); + Vector3 newCornerPos = Handles.FreeMoveHandle(script.transform.TransformPoint(cornerPos), script.transform.rotation, HandleUtility.GetHandleSize(script.transform.TransformPoint(cornerPos)) / 7, Vector3.one, Handles.SphereHandleCap); + Handles.Label(newCornerPos, string.Format("Corner Mover")); + + newCornerPos = script.transform.InverseTransformPoint(newCornerPos); + + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(script, "Move Corner"); + EditorUtility.SetDirty(script); + + script.cornerPosRatio = new Vector2(newCornerPos.x, newCornerPos.y); + script.cornerPosRatio.x = (script.cornerPosRatio.x + script.RectTrans.pivot.x * script.RectTrans.rect.width) / script.RectTrans.rect.width; + script.cornerPosRatio.y = (script.cornerPosRatio.y + script.RectTrans.pivot.y * script.RectTrans.rect.height) / script.RectTrans.rect.height; + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/CUIImageEditor.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/CUIImageEditor.cs.meta new file mode 100644 index 000000000..5b4689585 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/CUIImageEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8445204f2ee16e0408274b8400deef53 +timeCreated: 1485929052 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/CUITextEditor.cs b/Assets/Plugins/com.unity.uiextensions/Editor/CUITextEditor.cs new file mode 100644 index 000000000..d5fa59900 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/CUITextEditor.cs @@ -0,0 +1,10 @@ +/// Credit Titinious (https://github.com/Titinious) +/// Sourced from - https://github.com/Titinious/CurlyUI + +using UnityEditor; + +namespace UnityEngine.UI.Extensions +{ + [CustomEditor(typeof(CUIText))] + public class CUITextEditor : CUIGraphicEditor { } +} \ No newline at end of file diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/CUITextEditor.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/CUITextEditor.cs.meta new file mode 100644 index 000000000..feb172b2c --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/CUITextEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 041976c43b8439747a030b45a4712b77 +timeCreated: 1485929052 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/CanvasGroupActivator.cs b/Assets/Plugins/com.unity.uiextensions/Editor/CanvasGroupActivator.cs new file mode 100644 index 000000000..8e25f28e5 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/CanvasGroupActivator.cs @@ -0,0 +1,116 @@ +/// Credit dakka +/// Sourced from - http://forum.unity3d.com/threads/scripts-useful-4-6-scripts-collection.264161/#post-1752415 +/// Notes - Mod from Yilmaz Kiymaz's editor scripts presentation at Unite 2013 +/// Updated simonDarksideJ - removed Linq use, not required. + +using UnityEditor; + +namespace UnityEngine.UI.Extensions +{ + public class CanvasGroupActivator : EditorWindow + { + [MenuItem("Window/UI/Extensions/Canvas Groups Activator")] + public static void InitWindow() + { + EditorWindow.GetWindow(); + } + + CanvasGroup[] canvasGroups; + + void OnEnable() + { + ObtainCanvasGroups(); + } + + void OnFocus() + { + ObtainCanvasGroups(); + } + + void ObtainCanvasGroups() + { + canvasGroups = GameObject.FindObjectsOfType(); + } + + void OnGUI() + { + if (canvasGroups == null) + { + return; + } + + GUILayout.Space(10f); + GUILayout.Label("Canvas Groups"); + + for (int i = 0; i < canvasGroups.Length; i++) + { + if (canvasGroups[i] == null) { continue; } + + bool initialActive = false; + if (canvasGroups[i].alpha == 1.0f) + initialActive = true; + + bool active = EditorGUILayout.Toggle(canvasGroups[i].name, initialActive); + if (active != initialActive) + { + //If deactivated and initially active + if (!active && initialActive) + { + //Deactivate this + canvasGroups[i].alpha = 0f; + canvasGroups[i].interactable = false; + canvasGroups[i].blocksRaycasts = false; + } + //If activated and initially deactivate + else if (active && !initialActive) + { + //Deactivate all others and activate this + HideAllGroups(); + + canvasGroups[i].alpha = 1.0f; + canvasGroups[i].interactable = true; + canvasGroups[i].blocksRaycasts = true; + } + } + } + + GUILayout.Space(5f); + + if (GUILayout.Button("Show All")) + { + ShowAllGroups(); + } + + if (GUILayout.Button("Hide All")) + { + HideAllGroups(); + } + } + + void ShowAllGroups() + { + foreach (var group in canvasGroups) + { + if (group != null) + { + group.alpha = 1.0f; + group.interactable = true; + group.blocksRaycasts = true; + } + } + } + + void HideAllGroups() + { + foreach (var group in canvasGroups) + { + if (group != null) + { + group.alpha = 0; + group.interactable = false; + group.blocksRaycasts = false; + } + } + } + } +} diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/CanvasGroupActivator.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/CanvasGroupActivator.cs.meta new file mode 100644 index 000000000..97588ca61 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/CanvasGroupActivator.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f60a419e63d329f43ba1bf57e98b34bf +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/ColorPickerPresetsEditor.cs b/Assets/Plugins/com.unity.uiextensions/Editor/ColorPickerPresetsEditor.cs new file mode 100644 index 000000000..342b1a35c --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/ColorPickerPresetsEditor.cs @@ -0,0 +1,28 @@ +using UnityEngine; +using UnityEditor; + +namespace UnityEngine.UI.Extensions.ColorPicker +{ + [CustomEditor(typeof(ColorPickerPresets))] + public class ColorPickerPresetsEditor : Editor + { + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + + var colorPickerPresets = (ColorPickerPresets)target; + if (colorPickerPresets.saveMode != ColorPickerPresets.SaveType.JsonFile) + return; + + string fileLocation = colorPickerPresets.JsonFilePath; + + if (!System.IO.File.Exists(fileLocation)) + return; + + if (GUILayout.Button("Open JSON file.")) + { + Application.OpenURL(fileLocation); + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/ColorPickerPresetsEditor.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/ColorPickerPresetsEditor.cs.meta new file mode 100644 index 000000000..3e4618f46 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/ColorPickerPresetsEditor.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 0dc729b738fb01043ac4c04b78575a98 +timeCreated: 1520733906 +licenseType: Pro +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/FancyScrollView.meta b/Assets/Plugins/com.unity.uiextensions/Editor/FancyScrollView.meta new file mode 100644 index 000000000..28ed9d7cd --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/FancyScrollView.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 77a80d348c62e93459753f8e704f474d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/FancyScrollView/ScrollerEditor.cs b/Assets/Plugins/com.unity.uiextensions/Editor/FancyScrollView/ScrollerEditor.cs new file mode 100644 index 000000000..2d4982f34 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/FancyScrollView/ScrollerEditor.cs @@ -0,0 +1,158 @@ +/// Credit setchi (https://github.com/setchi) +/// Sourced from - https://github.com/setchi/FancyScrollView + +using UnityEditor; +using UnityEditor.AnimatedValues; + +// For maintenance, every new [SerializeField] variable in Scroller must be declared here + +namespace UnityEngine.UI.Extensions +{ + [CustomEditor(typeof(Scroller))] + [CanEditMultipleObjects] + public class ScrollerEditor : Editor + { + SerializedProperty viewport; + SerializedProperty scrollDirection; + SerializedProperty movementType; + SerializedProperty elasticity; + SerializedProperty scrollSensitivity; + SerializedProperty inertia; + SerializedProperty decelerationRate; + SerializedProperty snap; + SerializedProperty snapEnable; + SerializedProperty snapVelocityThreshold; + SerializedProperty snapDuration; + SerializedProperty snapEasing; + SerializedProperty draggable; + SerializedProperty scrollbar; + + AnimBool showElasticity; + AnimBool showInertiaRelatedValues; + AnimBool showSnapEnableRelatedValues; + + void OnEnable() + { + viewport = serializedObject.FindProperty("viewport"); + scrollDirection = serializedObject.FindProperty("scrollDirection"); + movementType = serializedObject.FindProperty("movementType"); + elasticity = serializedObject.FindProperty("elasticity"); + scrollSensitivity = serializedObject.FindProperty("scrollSensitivity"); + inertia = serializedObject.FindProperty("inertia"); + decelerationRate = serializedObject.FindProperty("decelerationRate"); + snap = serializedObject.FindProperty("snap"); + snapEnable = serializedObject.FindProperty("snap.Enable"); + snapVelocityThreshold = serializedObject.FindProperty("snap.VelocityThreshold"); + snapDuration = serializedObject.FindProperty("snap.Duration"); + snapEasing = serializedObject.FindProperty("snap.Easing"); + draggable = serializedObject.FindProperty("draggable"); + scrollbar = serializedObject.FindProperty("scrollbar"); + + showElasticity = new AnimBool(Repaint); + showInertiaRelatedValues = new AnimBool(Repaint); + showSnapEnableRelatedValues = new AnimBool(Repaint); + SetAnimBools(true); + } + + void OnDisable() + { + showElasticity.valueChanged.RemoveListener(Repaint); + showInertiaRelatedValues.valueChanged.RemoveListener(Repaint); + showSnapEnableRelatedValues.valueChanged.RemoveListener(Repaint); + } + + void SetAnimBools(bool instant) + { + SetAnimBool(showElasticity, !movementType.hasMultipleDifferentValues && movementType.enumValueIndex == (int)MovementType.Elastic, instant); + SetAnimBool(showInertiaRelatedValues, !inertia.hasMultipleDifferentValues && inertia.boolValue, instant); + SetAnimBool(showSnapEnableRelatedValues, !snapEnable.hasMultipleDifferentValues && snapEnable.boolValue, instant); + } + + void SetAnimBool(AnimBool a, bool value, bool instant) + { + if (instant) + { + a.value = value; + } + else + { + a.target = value; + } + } + + public override void OnInspectorGUI() + { + SetAnimBools(false); + + serializedObject.Update(); + EditorGUILayout.PropertyField(viewport); + EditorGUILayout.PropertyField(scrollDirection); + EditorGUILayout.PropertyField(movementType); + DrawMovementTypeRelatedValue(); + EditorGUILayout.PropertyField(scrollSensitivity); + EditorGUILayout.PropertyField(inertia); + DrawInertiaRelatedValues(); + EditorGUILayout.PropertyField(draggable); + EditorGUILayout.PropertyField(scrollbar); + serializedObject.ApplyModifiedProperties(); + } + + void DrawMovementTypeRelatedValue() + { + using (var group = new EditorGUILayout.FadeGroupScope(showElasticity.faded)) + { + if (!group.visible) + { + return; + } + + using (new EditorGUI.IndentLevelScope()) + { + EditorGUILayout.PropertyField(elasticity); + } + } + } + + void DrawInertiaRelatedValues() + { + using (var group = new EditorGUILayout.FadeGroupScope(showInertiaRelatedValues.faded)) + { + if (!group.visible) + { + return; + } + + using (new EditorGUI.IndentLevelScope()) + { + EditorGUILayout.PropertyField(decelerationRate); + EditorGUILayout.PropertyField(snap); + + using (new EditorGUI.IndentLevelScope()) + { + DrawSnapRelatedValues(); + } + } + } + } + + void DrawSnapRelatedValues() + { + if (snap.isExpanded) + { + EditorGUILayout.PropertyField(snapEnable); + + using (var group = new EditorGUILayout.FadeGroupScope(showSnapEnableRelatedValues.faded)) + { + if (!group.visible) + { + return; + } + + EditorGUILayout.PropertyField(snapVelocityThreshold); + EditorGUILayout.PropertyField(snapDuration); + EditorGUILayout.PropertyField(snapEasing); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/FancyScrollView/ScrollerEditor.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/FancyScrollView/ScrollerEditor.cs.meta new file mode 100644 index 000000000..936aad49c --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/FancyScrollView/ScrollerEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e82bfdd42ec254849830933cbaf350fa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/NonDrawingGraphicEditor.cs b/Assets/Plugins/com.unity.uiextensions/Editor/NonDrawingGraphicEditor.cs new file mode 100644 index 000000000..dcb406420 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/NonDrawingGraphicEditor.cs @@ -0,0 +1,21 @@ +/// Credit Slipp Douglas Thompson +/// Sourced from - https://gist.github.com/capnslipp/349c18283f2fea316369 +/// +using UnityEditor; +using UnityEditor.UI; + +namespace UnityEngine.UI.Extensions +{ + [CanEditMultipleObjects, CustomEditor(typeof(NonDrawingGraphic), false)] + public class NonDrawingGraphicEditor : GraphicEditor + { + public override void OnInspectorGUI() + { + base.serializedObject.Update(); + EditorGUILayout.PropertyField(base.m_Script, new GUILayoutOption[0]); + // skipping AppearanceControlsGUI + base.RaycastControlsGUI(); + base.serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/NonDrawingGraphicEditor.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/NonDrawingGraphicEditor.cs.meta new file mode 100644 index 000000000..f9b612aaa --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/NonDrawingGraphicEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ee2802949feca4c4c934331b6a0dc379 +timeCreated: 1483566748 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/RangeSliderEditor.cs b/Assets/Plugins/com.unity.uiextensions/Editor/RangeSliderEditor.cs new file mode 100644 index 000000000..516d5aba3 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/RangeSliderEditor.cs @@ -0,0 +1,123 @@ +/// Credit Ben MacKinnon @Dover8 +/// Sourced from - https://github.com/Dover8/Unity-UI-Extensions/tree/range-slider +/// Usage: Extension of the standard slider. Two handles determine a low and high value between a Min and Max. +/// Raises a UnityEvent passing the low and high values + +using UnityEditor; +using UnityEditor.UI; + +namespace UnityEngine.UI.Extensions +{ + [CustomEditor(typeof(RangeSlider), true)] + [CanEditMultipleObjects] + public class RangeSliderEditor : SelectableEditor + { + SerializedProperty m_LowHandleRect; + SerializedProperty m_HighHandleRect; + SerializedProperty m_FillRect; + + SerializedProperty m_MinValue; + SerializedProperty m_MaxValue; + SerializedProperty m_WholeNumbers; + + SerializedProperty m_LowValue; + SerializedProperty m_HighValue; + + //need ref values for the editor MinMaxSlider + float low = 0; + float high = 1; + + SerializedProperty m_OnValueChanged; + + + protected override void OnEnable() + { + base.OnEnable(); + m_LowHandleRect = serializedObject.FindProperty("m_LowHandleRect"); + m_HighHandleRect = serializedObject.FindProperty("m_HighHandleRect"); + m_FillRect = serializedObject.FindProperty("m_FillRect"); + + m_MinValue = serializedObject.FindProperty("m_MinValue"); + m_MaxValue = serializedObject.FindProperty("m_MaxValue"); + m_WholeNumbers = serializedObject.FindProperty("m_WholeNumbers"); + + m_LowValue = serializedObject.FindProperty("m_LowValue"); + low = m_LowValue.floatValue; + m_HighValue = serializedObject.FindProperty("m_HighValue"); + high = m_HighValue.floatValue; + + m_OnValueChanged = serializedObject.FindProperty("m_OnValueChanged"); + } + + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + EditorGUILayout.Space(); + + serializedObject.Update(); + //grab the updated value affected by m_WholeNumbers + low = m_LowValue.floatValue; + high = m_HighValue.floatValue; + + EditorGUILayout.PropertyField(m_LowHandleRect); + EditorGUILayout.PropertyField(m_HighHandleRect); + EditorGUILayout.PropertyField(m_FillRect); + + if (m_LowHandleRect.objectReferenceValue != null && m_HighHandleRect.objectReferenceValue != null) + { + EditorGUI.BeginChangeCheck(); + + EditorGUILayout.PropertyField(m_MinValue); + EditorGUILayout.PropertyField(m_MaxValue); + EditorGUILayout.PropertyField(m_WholeNumbers); + + //We're going to do a fair bit of layout here + EditorGUILayout.BeginHorizontal(); + //Low Label and value + EditorGUILayout.BeginVertical(); + EditorGUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + GUILayout.Label("Low"); + GUILayout.FlexibleSpace(); + EditorGUILayout.EndHorizontal(); + low = EditorGUILayout.DelayedFloatField(low, GUILayout.MaxWidth(100)); + EditorGUILayout.EndVertical(); + + GUILayout.FlexibleSpace(); + + //Slider + EditorGUILayout.BeginVertical(); + GUILayout.FlexibleSpace(); + EditorGUILayout.MinMaxSlider(ref low, ref high, m_MinValue.floatValue, m_MaxValue.floatValue, GUILayout.ExpandWidth(true)); + EditorGUILayout.EndVertical(); + + GUILayout.FlexibleSpace(); + + //High label and value + EditorGUILayout.BeginVertical(); + EditorGUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + GUILayout.Label("High"); + GUILayout.FlexibleSpace(); + EditorGUILayout.EndHorizontal(); + high = EditorGUILayout.DelayedFloatField(high, GUILayout.MaxWidth(100)); + EditorGUILayout.EndVertical(); + EditorGUILayout.EndHorizontal(); + + m_LowValue.floatValue = low; + m_HighValue.floatValue = high; + + EditorGUILayout.Space(); + EditorGUILayout.PropertyField(m_OnValueChanged); + } + else + { + EditorGUILayout.HelpBox("Specify a RectTransform for the RangeSlider fill or the RangeSlider handles or both. Each must have a parent RectTransform that it can slide within.", MessageType.Info); + } + + serializedObject.ApplyModifiedProperties(); + } + } + +} + diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/RangeSliderEditor.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/RangeSliderEditor.cs.meta new file mode 100644 index 000000000..b4dd55114 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/RangeSliderEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ac33445ed95315743983e4b657921146 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/ReadOnlyDrawer.cs b/Assets/Plugins/com.unity.uiextensions/Editor/ReadOnlyDrawer.cs new file mode 100644 index 000000000..229619048 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/ReadOnlyDrawer.cs @@ -0,0 +1,19 @@ +/// Credit tanoshimi +/// Sourced from - https://forum.unity3d.com/threads/read-only-fields.68976/ +/// +using UnityEditor; + +namespace UnityEngine.UI.Extensions +{ + [CustomPropertyDrawer(typeof(ReadOnlyAttribute))] + public class ReadOnlyDrawer : PropertyDrawer + { + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + GUI.enabled = false; + EditorGUI.PropertyField(position, property, label, true); + GUI.enabled = true; + } + } +} diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/ReadOnlyDrawer.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/ReadOnlyDrawer.cs.meta new file mode 100644 index 000000000..852dd67b6 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/ReadOnlyDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 33c90f5149877a242981372f6cde9a35 +timeCreated: 1498392707 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/ScrollPositionControllerEditor.cs b/Assets/Plugins/com.unity.uiextensions/Editor/ScrollPositionControllerEditor.cs new file mode 100644 index 000000000..e4ae2cceb --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/ScrollPositionControllerEditor.cs @@ -0,0 +1,85 @@ +/// Credit setchi (https://github.com/setchi) +/// Sourced from - https://github.com/setchi/FancyScrollView + +// For maintenance, every new [SerializeField] variable in ScrollPositionController must be declared here + +using UnityEditor; + +namespace UnityEngine.UI.Extensions +{ + [CustomEditor(typeof(ScrollPositionController))] + [CanEditMultipleObjects] + public class ScrollPositionControllerEditor : Editor + { + SerializedProperty viewport; + SerializedProperty directionOfRecognize; + SerializedProperty movementType; + SerializedProperty elasticity; + SerializedProperty scrollSensitivity; + SerializedProperty inertia; + SerializedProperty decelerationRate; + SerializedProperty snap; + SerializedProperty snapEnable; + SerializedProperty snapVelocityThreshold; + SerializedProperty snapDuration; + SerializedProperty dataCount; + + void OnEnable() + { + viewport = serializedObject.FindProperty("viewport"); + directionOfRecognize = serializedObject.FindProperty("directionOfRecognize"); + movementType = serializedObject.FindProperty("movementType"); + elasticity = serializedObject.FindProperty("elasticity"); + scrollSensitivity = serializedObject.FindProperty("scrollSensitivity"); + inertia = serializedObject.FindProperty("inertia"); + decelerationRate = serializedObject.FindProperty("decelerationRate"); + snap = serializedObject.FindProperty("snap"); + snapEnable = serializedObject.FindProperty("snap.Enable"); + snapVelocityThreshold = serializedObject.FindProperty("snap.VelocityThreshold"); + snapDuration = serializedObject.FindProperty("snap.Duration"); + dataCount = serializedObject.FindProperty("dataCount"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + EditorGUILayout.PropertyField(viewport); + EditorGUILayout.PropertyField(directionOfRecognize); + EditorGUILayout.PropertyField(movementType); + EditorGUILayout.PropertyField(elasticity); + EditorGUILayout.PropertyField(scrollSensitivity); + EditorGUILayout.PropertyField(inertia); + DrawInertiaRelatedValues(); + EditorGUILayout.PropertyField(dataCount); + serializedObject.ApplyModifiedProperties(); + } + + void DrawInertiaRelatedValues() + { + if (inertia.boolValue) + { + EditorGUILayout.PropertyField(decelerationRate); + EditorGUILayout.PropertyField(snap); + + using (new EditorGUI.IndentLevelScope()) + { + DrawSnapRelatedValues(); + } + } + } + + void DrawSnapRelatedValues() + { + if (snap.isExpanded) + { + EditorGUILayout.PropertyField(snapEnable); + + if (snapEnable.boolValue) + { + EditorGUILayout.PropertyField(snapVelocityThreshold); + EditorGUILayout.PropertyField(snapDuration); + } + } + } + } +} diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/ScrollPositionControllerEditor.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/ScrollPositionControllerEditor.cs.meta new file mode 100644 index 000000000..2c85f9483 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/ScrollPositionControllerEditor.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 986fda6476737da458576709b7f59ea3 +timeCreated: 1508699683 +licenseType: Pro +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/TextPicEditor.cs b/Assets/Plugins/com.unity.uiextensions/Editor/TextPicEditor.cs new file mode 100644 index 000000000..f25a35d0b --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/TextPicEditor.cs @@ -0,0 +1,38 @@ +/// Credit drobina, w34edrtfg, playemgames +/// Sourced from - http://forum.unity3d.com/threads/sprite-icons-with-text-e-g-emoticons.265927/ + +using UnityEditor; + +namespace UnityEngine.UI.Extensions +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(TextPic))] + public class TextPicEditor : UnityEditor.UI.TextEditor + { + + private SerializedProperty ImageScalingFactorProp; + private SerializedProperty hyperlinkColorProp; + private SerializedProperty imageOffsetProp; + private SerializedProperty iconList; + + protected override void OnEnable() + { + base.OnEnable(); + ImageScalingFactorProp = serializedObject.FindProperty("ImageScalingFactor"); + hyperlinkColorProp = serializedObject.FindProperty("hyperlinkColor"); + imageOffsetProp = serializedObject.FindProperty("imageOffset"); + iconList = serializedObject.FindProperty("inspectorIconList"); + } + + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + serializedObject.Update(); + EditorGUILayout.PropertyField(imageOffsetProp, new GUIContent("Image Offset")); + EditorGUILayout.PropertyField(ImageScalingFactorProp, new GUIContent("Image Scaling Factor")); + EditorGUILayout.PropertyField(hyperlinkColorProp, new GUIContent("Hyperlink Color")); + EditorGUILayout.PropertyField(iconList, new GUIContent("Icon List"), true); + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/TextPicEditor.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/TextPicEditor.cs.meta new file mode 100644 index 000000000..1928f709f --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/TextPicEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5fe8e67609bbee14d8ad0805aac72799 +timeCreated: 1468515486 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/TextPicIconEditor.cs b/Assets/Plugins/com.unity.uiextensions/Editor/TextPicIconEditor.cs new file mode 100644 index 000000000..c99ad8ff1 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/TextPicIconEditor.cs @@ -0,0 +1,130 @@ +/* +The MIT License (MIT) + +Copyright (c) 2017 Play-Em + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif +using System; +using System.Collections; + +namespace UnityEngine.UI.Extensions +{ + + public class TextPicIconEditor : EditorWindow { + [MenuItem("Window/UI/Extensions/TextPic Edit Icons")] + protected static void ShowTextPicIconEditor() { + var wnd = GetWindow(); + wnd.titleContent.text = "Edit Icons in TextPic"; + wnd.Show(); + } + + private GameObject o; + + private static int columnWidth = 300; + + private string iconName; + private Sprite icon; + + public void Swap(GameObject o) { + #if UNITY_EDITOR + Debug.Log("Editing icons for " + o.name); + + + TextPic[] children = o.GetComponentsInChildren(true); + for(int i = 0; i < children.Length; i++) { + if (children[i] != null) { + for (int j = 0; j < children[i].inspectorIconList.Length; j++) { + if (!string.IsNullOrEmpty(iconName) + && children[i].inspectorIconList[j].name == iconName) { + children[i].inspectorIconList[j].sprite = icon; + Debug.Log("Swapped icon for " + children[i].inspectorIconList[j].name); + } + } + children[i].ResetIconList(); + + Debug.Log("Swapped icons for " + children[i].name); + } + } + #endif + } + + public void OnGUI() { + GUILayout.Label("Select a GameObject to edit TextPic icons", EditorStyles.boldLabel); + EditorGUILayout.Separator(); + GUILayout.Label("GameObject", EditorStyles.boldLabel); + + EditorGUI.BeginChangeCheck(); + + if (Selection.activeGameObject != null) { + o = Selection.activeGameObject; + } + EditorGUILayout.ObjectField(o, typeof(GameObject), true); + EditorGUI.EndChangeCheck(); + + if (o != null) { + EditorGUILayout.BeginHorizontal(); + + GUILayout.Label("Icon Name:", GUILayout.Width(columnWidth)); + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.BeginHorizontal(); + + iconName = EditorGUILayout.TextField(iconName, GUILayout.Width(columnWidth)); + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Separator(); + + EditorGUILayout.BeginHorizontal(); + + GUILayout.Label("New Sprite:", GUILayout.Width(columnWidth)); + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Separator(); + + EditorGUILayout.BeginHorizontal(); + + icon = (Sprite)EditorGUILayout.ObjectField(icon, typeof(Sprite), false, GUILayout.Width(columnWidth)); + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Separator(); + + EditorGUILayout.BeginHorizontal(); + if (GUILayout.Button("Edit Icons")) { + #if UNITY_EDITOR + Swap(o); + #endif + } + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Separator(); + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/TextPicIconEditor.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/TextPicIconEditor.cs.meta new file mode 100644 index 000000000..f40a80f67 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/TextPicIconEditor.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 0fdbc2ef7cc4e73418bc4e2d9cb1ad87 +timeCreated: 1516447031 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/TextPicIconListCopier.cs b/Assets/Plugins/com.unity.uiextensions/Editor/TextPicIconListCopier.cs new file mode 100644 index 000000000..72c1628d6 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/TextPicIconListCopier.cs @@ -0,0 +1,140 @@ +/* +The MIT License (MIT) + +Copyright (c) 2017 Play-Em + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif +using System; +using System.Collections; +using System.Collections.Generic; + +namespace UnityEngine.UI.Extensions +{ + + public class TextPicIconListCopier : EditorWindow { + [MenuItem("Window/UI/Extensions/TextPic Copy Icon Lists")] + protected static void ShowTextPicIconListCopier() { + var wnd = GetWindow(); + wnd.titleContent.text = "Copy Icons in TextPic"; + wnd.Show(); + } + + private List textPicList = new List(); + + #if UNITY_EDITOR + void OnSelectionChange() { + if (Selection.objects.Length > 1 ) + { + Debug.Log ("Length? " + Selection.objects.Length); + textPicList.Clear(); + + foreach ( Object o in Selection.objects ) { + if ( o is GameObject ) { + TextPic tp = ((GameObject)o).GetComponent(); + if (tp != null) { + textPicList.Add(tp); + } + } + } + } + else if (Selection.activeObject is GameObject) { + textPicList.Clear(); + TextPic tp = ((GameObject)Selection.activeObject).GetComponent(); + if (tp != null) { + textPicList.Add(tp); + } + } + else { + textPicList.Clear(); + } + + this.Repaint(); + } + #endif + + private static int columnWidth = 300; + + private TextPic textPic; + + public void Copy() { + #if UNITY_EDITOR + foreach(TextPic tp in textPicList) { + if (tp != null) { + tp.inspectorIconList = new TextPic.IconName[textPic.inspectorIconList.Length]; + textPic.inspectorIconList.CopyTo(tp.inspectorIconList, 0); + + tp.ResetIconList(); + + Debug.Log("Copied icons to " + tp.name); + } + } + #endif + } + + public void OnGUI() { + GUILayout.Label("TextPic to copy icons", EditorStyles.boldLabel); + EditorGUILayout.Separator(); + GUILayout.Label("TextPic", EditorStyles.boldLabel); + + EditorGUI.BeginChangeCheck(); + + textPic = EditorGUILayout.ObjectField(textPic, typeof(TextPic), true) as TextPic; + EditorGUI.EndChangeCheck(); + + if (textPicList.Count > 0) { + if ( textPicList.Count == 1 ) + { + textPicList[0] = ((TextPic)EditorGUILayout.ObjectField( + textPicList[0], + typeof(TextPic), + true, + GUILayout.Width(columnWidth)) + ); + } + else + { + GUILayout.Label("Multiple TextPic: " + textPicList.Count, GUILayout.Width(columnWidth)); + } + + if (textPic != null) { + + EditorGUILayout.BeginHorizontal(); + if (GUILayout.Button("Copy Icons")) { + #if UNITY_EDITOR + Copy(); + #endif + } + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Separator(); + } + } + else { + GUILayout.Label("Please select objects that have a TextPic component", EditorStyles.boldLabel); + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/TextPicIconListCopier.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/TextPicIconListCopier.cs.meta new file mode 100644 index 000000000..167978ac3 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/TextPicIconListCopier.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 2f19005a68a7c044fb9390ab44d42b41 +timeCreated: 1516447031 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/TextPicRenameEditor.cs b/Assets/Plugins/com.unity.uiextensions/Editor/TextPicRenameEditor.cs new file mode 100644 index 000000000..d723ee964 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/TextPicRenameEditor.cs @@ -0,0 +1,161 @@ +/* +The MIT License (MIT) + +Copyright (c) 2014 Play-Em + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif +using System; +using System.Collections; + +namespace UnityEngine.UI.Extensions +{ + + public class TextPicRenameEditor : EditorWindow { + [MenuItem("Window/UI/Extensions/TextPic Rename Icons and Text")] + protected static void ShowTextPicRenameEditor() { + var wnd = GetWindow(); + wnd.titleContent.text = "Rename Icon List"; + wnd.Show(); + } + + private GameObject o; + + private static int columnWidth = 300; + + private string prefix; + private string suffix; + private string originalText; + private string replacementText; + + public void Rename(GameObject o) { + #if UNITY_EDITOR + Debug.Log("Changing icons and text for " + o.name); + + + TextPic[] children = o.GetComponentsInChildren(true); + for(int i = 0; i < children.Length; i++) { + if (children[i] != null) { + for (int j = 0; j < children[i].inspectorIconList.Length; j++) { + if (!string.IsNullOrEmpty(originalText) + && children[i].inspectorIconList[j].name.Contains(originalText)) { + children[i].text.Replace(originalText, replacementText); + children[i].inspectorIconList[j].name = children[i].inspectorIconList[j].name.Replace(originalText, replacementText); + Debug.Log("Renamed icon for " + children[i].inspectorIconList[j].name); + } + + if (!string.IsNullOrEmpty(prefix) + && !string.IsNullOrEmpty(suffix) + && !children[i].inspectorIconList[j].name.StartsWith(prefix) + && !children[i].inspectorIconList[j].name.EndsWith(suffix)) { + children[i].text.Replace(children[i].inspectorIconList[j].name, prefix + children[i].inspectorIconList[j].name + suffix); + children[i].inspectorIconList[j].name = prefix + children[i].inspectorIconList[j].name + suffix; + Debug.Log("Renamed icon for " + children[i].inspectorIconList[j].name); + } + } + children[i].ResetIconList(); + + Debug.Log("Renamed icons for " + children[i].name); + } + } + #endif + } + + public void OnGUI() { + GUILayout.Label("Select a GameObject to rename TextPic icons and text", EditorStyles.boldLabel); + EditorGUILayout.Separator(); + GUILayout.Label("GameObject", EditorStyles.boldLabel); + + EditorGUI.BeginChangeCheck(); + + if (Selection.activeGameObject != null) { + o = Selection.activeGameObject; + } + EditorGUILayout.ObjectField(o, typeof(GameObject), true); + EditorGUI.EndChangeCheck(); + + if (o != null) { + + EditorGUILayout.BeginHorizontal(); + + GUILayout.Label("Prefix:", GUILayout.Width(columnWidth)); + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.BeginHorizontal(); + + prefix = EditorGUILayout.TextField(prefix, GUILayout.Width(columnWidth)); + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Separator(); + + EditorGUILayout.BeginHorizontal(); + + GUILayout.Label("Original Text:", GUILayout.Width(columnWidth)); + + GUILayout.Label("Replacement Text:", GUILayout.Width(columnWidth)); + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Separator(); + + EditorGUILayout.BeginHorizontal(); + + originalText = EditorGUILayout.TextField(originalText, GUILayout.Width(columnWidth)); + + replacementText = EditorGUILayout.TextField(replacementText, GUILayout.Width(columnWidth)); + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Separator(); + + EditorGUILayout.BeginHorizontal(); + GUILayout.Label("Suffix:", GUILayout.Width(columnWidth)); + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Separator(); + + EditorGUILayout.BeginHorizontal(); + suffix = EditorGUILayout.TextField(suffix, GUILayout.Width(columnWidth)); + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Separator(); + + EditorGUILayout.BeginHorizontal(); + if (GUILayout.Button("Rename Icons and Text")) { + #if UNITY_EDITOR + Rename(o); + #endif + } + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Separator(); + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/TextPicRenameEditor.cs.meta b/Assets/Plugins/com.unity.uiextensions/Editor/TextPicRenameEditor.cs.meta new file mode 100644 index 000000000..00ae34da5 --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/TextPicRenameEditor.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 6d2906bebe2d6024ba79f17fb908387f +timeCreated: 1516447032 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/com.unity.uiextensions/Editor/UIExtensionsMenuOptions.cs b/Assets/Plugins/com.unity.uiextensions/Editor/UIExtensionsMenuOptions.cs new file mode 100644 index 000000000..5c3d873da --- /dev/null +++ b/Assets/Plugins/com.unity.uiextensions/Editor/UIExtensionsMenuOptions.cs @@ -0,0 +1,2211 @@ +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using UnityEngine.UI.Extensions; + +namespace UnityEditor.UI +{ + /// + /// This script adds the Extensions UI menu options to the Unity Editor. + /// + + static internal class ExtensionMenuOptions + { + #region Unity Builder section - Do not change unless UI Source (Editor\MenuOptions) changes + #region Unity Builder properties - Do not change unless UI Source (Editor\MenuOptions) changes + private const string kUILayerName = "UI"; + private const float kWidth = 160f; + private const float kThickHeight = 30f; + private const float kThinHeight = 20f; + private const string kStandardSpritePath = "UI/Skin/UISprite.psd"; + private const string kBackgroundSpriteResourcePath = "UI/Skin/Background.psd"; + private const string kInputFieldBackgroundPath = "UI/Skin/InputFieldBackground.psd"; + private const string kKnobPath = "UI/Skin/Knob.psd"; + private const string kCheckmarkPath = "UI/Skin/Checkmark.psd"; + + private static Vector2 s_ThickGUIElementSize = new Vector2(kWidth, kThickHeight); + private static Vector2 s_ThinGUIElementSize = new Vector2(kWidth, kThinHeight); + private static Vector2 s_ImageGUIElementSize = new Vector2(100f, 100f); + private static Color s_DefaultSelectableColor = new Color(1f, 1f, 1f, 1f); + private static Color s_TextColor = new Color(50f / 255f, 50f / 255f, 50f / 255f, 1f); + #endregion + #region Unity Builder methods - Do not change unless UI Source (Editor\MenuOptions) changes + private static void SetPositionVisibleinSceneView(RectTransform canvasRTransform, RectTransform itemTransform) + { + // Find the best scene view + SceneView sceneView = SceneView.lastActiveSceneView; + if (sceneView == null && SceneView.sceneViews.Count > 0) + sceneView = SceneView.sceneViews[0] as SceneView; + + // Couldn't find a SceneView. Don't set position. + if (sceneView == null || sceneView.camera == null) + return; + + // Create world space Plane from canvas position. + Vector2 localPlanePosition; + Camera camera = sceneView.camera; + Vector3 position = Vector3.zero; + if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRTransform, new Vector2(camera.pixelWidth / 2, camera.pixelHeight / 2), camera, out localPlanePosition)) + { + // Adjust for canvas pivot + localPlanePosition.x = localPlanePosition.x + canvasRTransform.sizeDelta.x * canvasRTransform.pivot.x; + localPlanePosition.y = localPlanePosition.y + canvasRTransform.sizeDelta.y * canvasRTransform.pivot.y; + + localPlanePosition.x = Mathf.Clamp(localPlanePosition.x, 0, canvasRTransform.sizeDelta.x); + localPlanePosition.y = Mathf.Clamp(localPlanePosition.y, 0, canvasRTransform.sizeDelta.y); + + // Adjust for anchoring + position.x = localPlanePosition.x - canvasRTransform.sizeDelta.x * itemTransform.anchorMin.x; + position.y = localPlanePosition.y - canvasRTransform.sizeDelta.y * itemTransform.anchorMin.y; + + Vector3 minLocalPosition; + minLocalPosition.x = canvasRTransform.sizeDelta.x * (0 - canvasRTransform.pivot.x) + itemTransform.sizeDelta.x * itemTransform.pivot.x; + minLocalPosition.y = canvasRTransform.sizeDelta.y * (0 - canvasRTransform.pivot.y) + itemTransform.sizeDelta.y * itemTransform.pivot.y; + + Vector3 maxLocalPosition; + maxLocalPosition.x = canvasRTransform.sizeDelta.x * (1 - canvasRTransform.pivot.x) - itemTransform.sizeDelta.x * itemTransform.pivot.x; + maxLocalPosition.y = canvasRTransform.sizeDelta.y * (1 - canvasRTransform.pivot.y) - itemTransform.sizeDelta.y * itemTransform.pivot.y; + + position.x = Mathf.Clamp(position.x, minLocalPosition.x, maxLocalPosition.x); + position.y = Mathf.Clamp(position.y, minLocalPosition.y, maxLocalPosition.y); + } + + itemTransform.anchoredPosition = position; + itemTransform.localRotation = Quaternion.identity; + itemTransform.localScale = Vector3.one; + } + + private static GameObject CreateUIElementRoot(string name, MenuCommand menuCommand, Vector2 size) + { + GameObject parent = menuCommand.context as GameObject; + if (parent == null || parent.GetComponentInParent() == null) + { + parent = GetOrCreateCanvasGameObject(); + } + GameObject child = new GameObject(name); + + Undo.RegisterCreatedObjectUndo(child, "Create " + name); + Undo.SetTransformParent(child.transform, parent.transform, "Parent " + child.name); + GameObjectUtility.SetParentAndAlign(child, parent); + + RectTransform rectTransform = child.AddComponent(); + rectTransform.sizeDelta = size; + if (parent != menuCommand.context) // not a context click, so center in sceneview + { + SetPositionVisibleinSceneView(parent.GetComponent(), rectTransform); + } + Selection.activeGameObject = child; + return child; + } + + static GameObject CreateUIObject(string name, GameObject parent) + { + GameObject go = new GameObject(name); + go.AddComponent(); + GameObjectUtility.SetParentAndAlign(go, parent); + return go; + } + + static public void AddCanvas(MenuCommand menuCommand) + { + var go = CreateNewUI(); + GameObjectUtility.SetParentAndAlign(go, menuCommand.context as GameObject); + if (go.transform.parent as RectTransform) + { + RectTransform rect = go.transform as RectTransform; + rect.anchorMin = Vector2.zero; + rect.anchorMax = Vector2.one; + rect.anchoredPosition = Vector2.zero; + rect.sizeDelta = Vector2.zero; + } + Selection.activeGameObject = go; + } + + static public GameObject CreateNewUI() + { + // Root for the UI + var root = new GameObject("Canvas"); + root.layer = LayerMask.NameToLayer(kUILayerName); + Canvas canvas = root.AddComponent(); + canvas.renderMode = RenderMode.ScreenSpaceOverlay; + root.AddComponent(); + root.AddComponent(); + Undo.RegisterCreatedObjectUndo(root, "Create " + root.name); + + // if there is no event system add one... + CreateEventSystem(false); + return root; + } + + public static void CreateEventSystem(MenuCommand menuCommand) + { + GameObject parent = menuCommand.context as GameObject; + CreateEventSystem(true, parent); + } + + private static void CreateEventSystem(bool select) + { + CreateEventSystem(select, null); + } + + private static void CreateEventSystem(bool select, GameObject parent) + { + var esys = Object.FindObjectOfType(); + if (esys == null) + { + var eventSystem = new GameObject("EventSystem"); + GameObjectUtility.SetParentAndAlign(eventSystem, parent); + esys = eventSystem.AddComponent(); + eventSystem.AddComponent(); + + Undo.RegisterCreatedObjectUndo(eventSystem, "Create " + eventSystem.name); + } + + if (select && esys != null) + { + Selection.activeGameObject = esys.gameObject; + } + } + + // Helper function that returns a Canvas GameObject; preferably a parent of the selection, or other existing Canvas. + static public GameObject GetOrCreateCanvasGameObject() + { + GameObject selectedGo = Selection.activeGameObject; + + // Try to find a gameobject that is the selected GO or one if its parents. + Canvas canvas = (selectedGo != null) ? selectedGo.GetComponentInParent() : null; + if (canvas != null && canvas.gameObject.activeInHierarchy) + return canvas.gameObject; + + // No canvas in selection or its parents? Then use just any canvas.. + canvas = Object.FindObjectOfType(typeof(Canvas)) as Canvas; + if (canvas != null && canvas.gameObject.activeInHierarchy) + return canvas.gameObject; + + // No canvas in the scene at all? Then create a new one. + return ExtensionMenuOptions.CreateNewUI(); + } + + private static void SetDefaultColorTransitionValues(Selectable slider) + { + ColorBlock colors = slider.colors; + colors.highlightedColor = new Color(0.882f, 0.882f, 0.882f); + colors.pressedColor = new Color(0.698f, 0.698f, 0.698f); + colors.disabledColor = new Color(0.521f, 0.521f, 0.521f); + } + + private static void SetDefaultTextValues(Text lbl) + { + // Set text values we want across UI elements in default controls. + // Don't set values which are the same as the default values for the Text component, + // since there's no point in that, and it's good to keep them as consistent as possible. + lbl.color = s_TextColor; + } + #endregion + #endregion + + #region UI Extensions "Create" Menu items + + #region Scroll Snap controls + [MenuItem("GameObject/UI/Extensions/Horizontal Scroll Snap", false)] + static public void AddHorizontalScrollSnap(MenuCommand menuCommand) + { + GameObject horizontalScrollSnapRoot = CreateUIElementRoot("Horizontal Scroll Snap", menuCommand, s_ThickGUIElementSize); + + GameObject childContent = CreateUIObject("Content", horizontalScrollSnapRoot); + + GameObject childPage01 = CreateUIObject("Page_01", childContent); + + GameObject childText = CreateUIObject("Text", childPage01); + + // Set RectTransform to stretch + RectTransform rectTransformScrollSnapRoot = horizontalScrollSnapRoot.GetComponent(); + rectTransformScrollSnapRoot.anchorMin = new Vector2(0.5f, 0.5f); + rectTransformScrollSnapRoot.anchorMax = new Vector2(0.5f, 0.5f); + rectTransformScrollSnapRoot.anchoredPosition = Vector2.zero; + rectTransformScrollSnapRoot.sizeDelta = new Vector2(300f, 150f); + + + Image image = horizontalScrollSnapRoot.AddComponent(); + image.sprite = AssetDatabase.GetBuiltinExtraResource(kBackgroundSpriteResourcePath); + image.type = Image.Type.Sliced; + image.color = new Color(1f, 1f, 1f, 0.392f); + + ScrollRect sr = horizontalScrollSnapRoot.AddComponent(); + sr.vertical = false; + sr.horizontal = true; + horizontalScrollSnapRoot.AddComponent(); + + //Setup Content container + RectTransform rectTransformContent = childContent.GetComponent(); + rectTransformContent.anchorMin = Vector2.zero; + rectTransformContent.anchorMax = new Vector2(1f, 1f); + rectTransformContent.sizeDelta = Vector2.zero; + + sr.content = rectTransformContent; + + //Setup 1st Child + Image pageImage = childPage01.AddComponent(); + pageImage.sprite = AssetDatabase.GetBuiltinExtraResource(kStandardSpritePath); + pageImage.type = Image.Type.Sliced; + pageImage.color = s_DefaultSelectableColor; + + RectTransform rectTransformPage01 = childPage01.GetComponent(); + rectTransformPage01.anchorMin = new Vector2(0f, 0.5f); + rectTransformPage01.anchorMax = new Vector2(0f, 0.5f); + rectTransformPage01.pivot = new Vector2(0f, 0.5f); + + //Setup Text on Page01 + Text text = childText.AddComponent(); + text.text = "Page_01"; + text.alignment = TextAnchor.MiddleCenter; + text.color = new Color(0.196f, 0.196f, 0.196f); + + //Setup Text 1st Child + RectTransform rectTransformPage01Text = childText.GetComponent(); + rectTransformPage01Text.anchorMin = new Vector2(0.5f, 0.5f); + rectTransformPage01Text.anchorMax = new Vector2(0.5f, 0.5f); + rectTransformPage01Text.pivot = new Vector2(0.5f, 0.5f); + + + //Need to add example child components like in the Asset (SJ) + Selection.activeGameObject = horizontalScrollSnapRoot; + } + + [MenuItem("GameObject/UI/Extensions/Vertical Scroll Snap", false)] + static public void AddVerticallScrollSnap(MenuCommand menuCommand) + { + GameObject verticalScrollSnapRoot = CreateUIElementRoot("Vertical Scroll Snap", menuCommand, s_ThickGUIElementSize); + + GameObject childContent = CreateUIObject("Content", verticalScrollSnapRoot); + + GameObject childPage01 = CreateUIObject("Page_01", childContent); + + GameObject childText = CreateUIObject("Text", childPage01); + + // Set RectTransform to stretch + RectTransform rectTransformScrollSnapRoot = verticalScrollSnapRoot.GetComponent(); + rectTransformScrollSnapRoot.anchorMin = new Vector2(0.5f, 0.5f); + rectTransformScrollSnapRoot.anchorMax = new Vector2(0.5f, 0.5f); + rectTransformScrollSnapRoot.anchoredPosition = Vector2.zero; + rectTransformScrollSnapRoot.sizeDelta = new Vector2(300f, 150f); + + + Image image = verticalScrollSnapRoot.AddComponent(); + image.sprite = AssetDatabase.GetBuiltinExtraResource(kBackgroundSpriteResourcePath); + image.type = Image.Type.Sliced; + image.color = new Color(1f, 1f, 1f, 0.392f); + + ScrollRect sr = verticalScrollSnapRoot.AddComponent(); + sr.vertical = true; + sr.horizontal = false; + verticalScrollSnapRoot.AddComponent(); + + //Setup Content container + RectTransform rectTransformContent = childContent.GetComponent(); + rectTransformContent.anchorMin = Vector2.zero; + rectTransformContent.anchorMax = new Vector2(1f, 1f); + //rectTransformContent.anchoredPosition = Vector2.zero; + rectTransformContent.sizeDelta = Vector2.zero; + + sr.content = rectTransformContent; + + //Setup 1st Child + Image pageImage = childPage01.AddComponent(); + pageImage.sprite = AssetDatabase.GetBuiltinExtraResource(kStandardSpritePath); + pageImage.type = Image.Type.Sliced; + pageImage.color = s_DefaultSelectableColor; + + RectTransform rectTransformPage01 = childPage01.GetComponent(); + rectTransformPage01.anchorMin = new Vector2(0.5f, 0f); + rectTransformPage01.anchorMax = new Vector2(0.5f, 0f); + rectTransformPage01.anchoredPosition = new Vector2(-rectTransformPage01.sizeDelta.x / 2, rectTransformPage01.sizeDelta.y / 2); + //rectTransformPage01.anchoredPosition = Vector2.zero; + //rectTransformPage01.sizeDelta = Vector2.zero; + rectTransformPage01.pivot = new Vector2(0.5f, 0f); + + //Setup Text on Page01 + Text text = childText.AddComponent(); + text.text = "Page_01"; + text.alignment = TextAnchor.MiddleCenter; + text.color = new Color(0.196f, 0.196f, 0.196f); + + //Setup Text 1st Child + RectTransform rectTransformPage01Text = childText.GetComponent(); + rectTransformPage01Text.anchorMin = new Vector2(0.5f, 0.5f); + rectTransformPage01Text.anchorMax = new Vector2(0.5f, 0.5f); + //rectTransformPage01Text.anchoredPosition = Vector2.zero; + //rectTransformPage01Text.sizeDelta = Vector2.zero; + rectTransformPage01Text.pivot = new Vector2(0.5f, 0.5f); + + + //Need to add example child components like in the Asset (SJ) + + Selection.activeGameObject = verticalScrollSnapRoot; + } + + #region New ScrollSnapCode + static public void FixedScrollSnapBase(MenuCommand menuCommand, string name, ScrollSnap.ScrollDirection direction, int itemVisible, int itemCount, Vector2 itemSize) + { + GameObject scrollSnapRoot = CreateUIElementRoot(name, menuCommand, s_ThickGUIElementSize); + GameObject itemList = CreateUIObject("List", scrollSnapRoot); + + // Set RectTransform to stretch + RectTransform rectTransformScrollSnapRoot = scrollSnapRoot.GetComponent(); + rectTransformScrollSnapRoot.anchorMin = new Vector2(0.5f, 0.5f); + rectTransformScrollSnapRoot.anchorMax = new Vector2(0.5f, 0.5f); + rectTransformScrollSnapRoot.anchoredPosition = Vector2.zero; + + if (direction == ScrollSnap.ScrollDirection.Horizontal) + { + rectTransformScrollSnapRoot.sizeDelta = new Vector2(itemVisible * itemSize.x, itemSize.y); + } + else + { + rectTransformScrollSnapRoot.sizeDelta = new Vector2(itemSize.x, itemVisible * itemSize.y); + } + + Image image = scrollSnapRoot.AddComponent(); + image.sprite = AssetDatabase.GetBuiltinExtraResource(kBackgroundSpriteResourcePath); + image.type = Image.Type.Sliced; + image.color = new Color(1f, 1f, 1f, 1f); + + Mask listMask = scrollSnapRoot.AddComponent(); + listMask.showMaskGraphic = false; + + ScrollRect scrollRect = scrollSnapRoot.AddComponent(); + scrollRect.vertical = direction == ScrollSnap.ScrollDirection.Vertical; + scrollRect.horizontal = direction == ScrollSnap.ScrollDirection.Horizontal; + + ScrollSnap scrollSnap = scrollSnapRoot.AddComponent(); + scrollSnap.direction = direction; + scrollSnap.ItemsVisibleAtOnce = itemVisible; + + //Setup Content container + RectTransform rectTransformContent = itemList.GetComponent(); + rectTransformContent.anchorMin = Vector2.zero; + rectTransformContent.anchorMax = new Vector2(1f, 1f); + rectTransformContent.sizeDelta = Vector2.zero; + scrollRect.content = rectTransformContent; + + //Setup Item list container + if (direction == ScrollSnap.ScrollDirection.Horizontal) + { + itemList.AddComponent(); + ContentSizeFitter sizeFitter = itemList.AddComponent(); + sizeFitter.horizontalFit = ContentSizeFitter.FitMode.MinSize; + } + else + { + itemList.AddComponent(); + ContentSizeFitter sizeFitter = itemList.AddComponent(); + sizeFitter.verticalFit = ContentSizeFitter.FitMode.MinSize; + } + + //Setup children + for (var i = 0; i < itemCount; i++) + { + GameObject item = CreateUIObject(string.Format("Item_{0:00}", i), itemList); + GameObject childText = CreateUIObject("Text", item); + + Image pageImage = item.AddComponent(); + pageImage.sprite = AssetDatabase.GetBuiltinExtraResource(kStandardSpritePath); + pageImage.type = Image.Type.Sliced; + pageImage.color = s_DefaultSelectableColor; + + LayoutElement elementLayout = item.AddComponent(); + if (direction == ScrollSnap.ScrollDirection.Horizontal) + { + elementLayout.minWidth = itemSize.x; + } + else + { + elementLayout.minHeight = itemSize.y; + } + + RectTransform rectTransformPage01 = item.GetComponent(); + rectTransformPage01.anchorMin = new Vector2(0f, 0.5f); + rectTransformPage01.anchorMax = new Vector2(0f, 0.5f); + rectTransformPage01.pivot = new Vector2(0f, 0.5f); + + //Setup Text on Page01 + Text text = childText.AddComponent(); + text.text = item.name; + text.alignment = TextAnchor.MiddleCenter; + text.color = new Color(0.196f, 0.196f, 0.196f); + + //Setup Text 1st Child + RectTransform rectTransformPage01Text = childText.GetComponent(); + rectTransformPage01Text.anchorMin = new Vector2(0.5f, 0.5f); + rectTransformPage01Text.anchorMax = new Vector2(0.5f, 0.5f); + rectTransformPage01Text.pivot = new Vector2(0.5f, 0.5f); + } + Selection.activeGameObject = scrollSnapRoot; + } + + [MenuItem("GameObject/UI/Extensions/Fixed Item Scroll/Snap Horizontal Single Item", false)] + static public void AddFixedItemScrollSnapHorizontalSingle(MenuCommand menuCommand) + { + FixedScrollSnapBase(menuCommand, "Scroll Snap Horizontal Single", ScrollSnap.ScrollDirection.Horizontal, 1, 3, new Vector2(100, 100)); + } + + [MenuItem("GameObject/UI/Extensions/Fixed Item Scroll/Snap Horizontal Multiple Items", false)] + static public void AddFixedItemScrollSnapHorizontalMultiple(MenuCommand menuCommand) + { + FixedScrollSnapBase(menuCommand, "Scroll Snap Horizontal Multiple", ScrollSnap.ScrollDirection.Horizontal, 3, 15, new Vector2(100, 100)); + } + + [MenuItem("GameObject/UI/Extensions/Fixed Item Scroll/Snap Vertical Single Item", false)] + static public void AddFixedItemScrollSnapVerticalSingle(MenuCommand menuCommand) + { + FixedScrollSnapBase(menuCommand, "Scroll Snap Vertical Multiple", ScrollSnap.ScrollDirection.Vertical, 1, 3, new Vector2(100, 100)); + } + + [MenuItem("GameObject/UI/Extensions/Fixed Item Scroll/Snap Vertical Multiple Items", false)] + static public void AddFixedItemScrollSnapVerticalMultiple(MenuCommand menuCommand) + { + FixedScrollSnapBase(menuCommand, "Scroll Snap Vertical Multiple", ScrollSnap.ScrollDirection.Vertical, 3, 15, new Vector2(100, 100)); + } + #endregion + + #region ContentScrollSnapHorizontal + [MenuItem("GameObject/UI/Extensions/Content Scroll Snap Horizontal", false)] + static public void AddContentScrollSnapHorizontal(MenuCommand menuCommand) + { + GameObject contentScrollSnapRoot = CreateUIElementRoot("Content Scroll Snap Horizontal", menuCommand, s_ThickGUIElementSize); + + GameObject childContent = CreateUIObject("Content", contentScrollSnapRoot); + + GameObject childPage01 = CreateUIObject("Position 1", childContent); + + GameObject childPage02 = CreateUIObject("Position 2", childContent); + + GameObject childPage03 = CreateUIObject("Position 3", childContent); + + GameObject childPage04 = CreateUIObject("Position 4", childContent); + + GameObject childPage05 = CreateUIObject("Position 5", childContent); + + //setup root + RectTransform contentScrollSnapRectTransform = ((RectTransform)contentScrollSnapRoot.transform); + contentScrollSnapRectTransform.anchorMin = new Vector2(0.5f, 0.5f); + contentScrollSnapRectTransform.anchorMax = new Vector2(0.5f, 0.5f); + contentScrollSnapRectTransform.anchoredPosition = Vector2.zero; + contentScrollSnapRectTransform.sizeDelta = new Vector2(100, 200); + + Image image = contentScrollSnapRoot.AddComponent(); + image.sprite = null; + image.color = new Color(1, 0, 0, .5f); + + ScrollRect sr = contentScrollSnapRoot.AddComponent(); + sr.vertical = false; + sr.horizontal = true; + + //setup content container + RectTransform contentTransform = ((RectTransform)childContent.transform); + contentTransform.anchorMin = new Vector2(.5f, .5f); + contentTransform.anchorMax = new Vector2(.5f, .5f); + contentTransform.pivot = new Vector2(.5f, .5f); + contentTransform.sizeDelta = new Vector2(200, 300); + + Image contentImage = childContent.AddComponent(); + contentImage.sprite = null; + contentImage.color = new Color(0, 0, 1, .5f); + + sr.content = contentTransform; + + //setup child 1 + RectTransform childPage01Transform = (RectTransform)childPage01.transform; + childPage01Transform.anchorMin = new Vector2(0, 1); + childPage01Transform.anchorMax = new Vector2(0, 1); + childPage01Transform.pivot = new Vector2(0, 1); + childPage01Transform.anchoredPosition = new Vector2(0, -125); + + Image childPage01Image = childPage01.AddComponent(); + childPage01Image.sprite = null; + childPage01Image.color = Color.white; + + //setup child 2 + RectTransform childPage02Transform = (RectTransform)childPage02.transform; + childPage02Transform.anchorMin = new Vector2(0, 1); + childPage02Transform.anchorMax = new Vector2(0, 1); + childPage02Transform.pivot = new Vector2(0, 1); + childPage02Transform.anchoredPosition = new Vector2(175, -150); + + Image childPage02Image = childPage02.AddComponent(); + childPage02Image.sprite = null; + childPage02Image.color = Color.white; + + //setup child 3 + RectTransform childPage03Transform = (RectTransform)childPage03.transform; + childPage03Transform.anchorMin = new Vector2(0, 1); + childPage03Transform.anchorMax = new Vector2(0, 1); + childPage03Transform.pivot = new Vector2(0, 1); + childPage03Transform.anchoredPosition = new Vector2(315, -125); + childPage03Transform.sizeDelta = new Vector2(50, 100); + + Image childPage03Image = childPage03.AddComponent(); + childPage03Image.sprite = null; + childPage03Image.color = Color.white; + + //setup child 4 + RectTransform childPage04Transform = (RectTransform)childPage04.transform; + childPage04Transform.anchorMin = new Vector2(0, 1); + childPage04Transform.anchorMax = new Vector2(0, 1); + childPage04Transform.pivot = new Vector2(0, 1); + childPage04Transform.anchoredPosition = new Vector2(490, -110); + + Image childPage04Image = childPage04.AddComponent(); + childPage04Image.sprite = null; + childPage04Image.color = Color.white; + + //setup child 5 + RectTransform childPage05Transform = (RectTransform)childPage05.transform; + childPage05Transform.anchorMin = new Vector2(0, 1); + childPage05Transform.anchorMax = new Vector2(0, 1); + childPage05Transform.pivot = new Vector2(0, 1); + childPage05Transform.anchoredPosition = new Vector2(630, -180); + + Image childPage05Image = childPage05.AddComponent(); + childPage05Image.sprite = null; + childPage05Image.color = Color.white; + + //add scroll snap after we've added the content & items + contentScrollSnapRoot.AddComponent(); + } + #endregion + + #endregion + + #region UIVertical Scroller + [MenuItem("GameObject/UI/Extensions/UI Vertical Scroller", false)] + static public void AddUIVerticallScroller(MenuCommand menuCommand) + { + GameObject uiVerticalScrollerRoot = CreateUIElementRoot("UI Vertical Scroller", menuCommand, s_ThickGUIElementSize); + + GameObject uiScrollerCenter = CreateUIObject("Center", uiVerticalScrollerRoot); + + GameObject childContent = CreateUIObject("Content", uiVerticalScrollerRoot); + + // Set RectTransform to stretch + RectTransform rectTransformScrollSnapRoot = uiVerticalScrollerRoot.GetComponent(); + rectTransformScrollSnapRoot.anchorMin = new Vector2(0.5f, 0.5f); + rectTransformScrollSnapRoot.anchorMax = new Vector2(0.5f, 0.5f); + rectTransformScrollSnapRoot.anchoredPosition = Vector2.zero; + rectTransformScrollSnapRoot.sizeDelta = new Vector2(500f, 150f); + + // Add required ScrollRect + ScrollRect sr = uiVerticalScrollerRoot.AddComponent(); + sr.vertical = true; + sr.horizontal = false; + sr.movementType = ScrollRect.MovementType.Unrestricted; + var uiscr = uiVerticalScrollerRoot.AddComponent(); + + //Setup container center point + RectTransform rectTransformCenter = uiScrollerCenter.GetComponent(); + rectTransformCenter.anchorMin = new Vector2(0f, 0.3f); + rectTransformCenter.anchorMax = new Vector2(1f, 0.6f); + rectTransformCenter.sizeDelta = Vector2.zero; + + uiscr.center = uiScrollerCenter.GetComponent(); + + //Setup Content container + RectTransform rectTransformContent = childContent.GetComponent(); + rectTransformContent.anchorMin = Vector2.zero; + rectTransformContent.anchorMax = new Vector2(1f, 1f); + rectTransformContent.sizeDelta = Vector2.zero; + + sr.content = rectTransformContent; + + // Add sample children + for (int i = 0; i < 10; i++) + { + GameObject childPage = CreateUIObject("Page_" + i, childContent); + + GameObject childText = CreateUIObject("Text", childPage); + + //Setup 1st Child + Image pageImage = childPage.AddComponent(); + pageImage.sprite = AssetDatabase.GetBuiltinExtraResource(kStandardSpritePath); + pageImage.type = Image.Type.Sliced; + pageImage.color = s_DefaultSelectableColor; + + RectTransform rectTransformPage = childPage.GetComponent(); + rectTransformPage.anchorMin = new Vector2(0f, 0.5f); + rectTransformPage.anchorMax = new Vector2(1f, 0.5f); + rectTransformPage.sizeDelta = new Vector2(0f, 80f); + rectTransformPage.pivot = new Vector2(0.5f, 0.5f); + rectTransformPage.localPosition = new Vector3(0, 80 * i, 0); + childPage.AddComponent