From e198e57a527848294a520adf04f6cb0d1c234c0b Mon Sep 17 00:00:00 2001 From: "Simon (Darkside) Jackson" Date: Thu, 27 Nov 2025 10:18:07 +0000 Subject: [PATCH 01/11] Initial check-in for Unity 6 update - thank you Unity for continuing to support Unity UI --- Examples~ | 2 +- README.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Examples~ b/Examples~ index 1cfaa42b..97d0fad5 160000 --- a/Examples~ +++ b/Examples~ @@ -1 +1 @@ -Subproject commit 1cfaa42b3fcc454950009cc03a8280fd18e38197 +Subproject commit 97d0fad5a0f68c8497621cbefb143d22ec4b7d2a diff --git a/README.md b/README.md index 1647b4d0..e30d1fcf 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,10 @@ To get started with the project, here's a little guide: ## [Updates:](https://unity-ui-extensions.github.io/ReleaseNotes/RELEASENOTES) +## Release 2.4.0 - Unity supports Unity UI - 2025/11/20 + +Stay tuned as we begin work on a Unity 6 update, to verify Unity 6 support and possibly get some new controls in the mix. + ## Release 2.3.2 - Rejuvenation - 2023/11/26 2023 is certainly an interesting year to keep you on your toes, and finding time to keep managing all the requests and updates that come in are taking their toll, especially for a FREE project, but nonetheless, I still do it. From c7df19fd935fc9fdad40c0fba33007e7a29e7912 Mon Sep 17 00:00:00 2001 From: "Simon (Darkside) Jackson" Date: Tue, 2 Dec 2025 16:10:17 +0000 Subject: [PATCH 02/11] Update workflows from base update --- .github/workflows/development-buildandtestupmrelease.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/development-buildandtestupmrelease.yml b/.github/workflows/development-buildandtestupmrelease.yml index e2133b94..5d726a9f 100644 --- a/.github/workflows/development-buildandtestupmrelease.yml +++ b/.github/workflows/development-buildandtestupmrelease.yml @@ -32,10 +32,6 @@ jobs: matrix: os: [ubuntu-latest, windows-latest, macos-latest] unity-version: - - 2019 - - 2020 - - 2021 - - 2022 - 6000.0.x - 6000 include: From 37edee57aea0a1d4755f6e954ad22b975dee4166 Mon Sep 17 00:00:00 2001 From: "Simon (Darkside) Jackson" Date: Sat, 6 Dec 2025 11:16:41 +0000 Subject: [PATCH 03/11] Unity 6 script clean-up (remove legacy dependencies) --- Editor/CUIImageEditor.cs | 4 - Editor/CanvasGroupActivator.cs | 6 +- Editor/UIExtensionsMenuOptions.cs | 184 ++-- Examples~ | 2 +- .../Controls/ColorPicker/ColorLabel.cs | 12 - .../Controls/ComboBox/AutoCompleteComboBox.cs | 4 - Runtime/Scripts/Controls/ComboBox/ComboBox.cs | 6 +- .../Controls/ComboBox/DropDownListButton.cs | 8 - .../ReorderableList/ReorderableListDebug.cs | 8 - Runtime/Scripts/Controls/Segment.cs | 4 - .../SelectionBox/ExampleSelectable.cs | 8 - .../Controls/SelectionBox/SelectionBox.cs | 392 +++++---- Runtime/Scripts/Controls/Sliders/BoxSlider.cs | 7 +- Runtime/Scripts/Controls/TextPic.cs | 822 ++++++++++-------- Runtime/Scripts/Effects/BestFitOutline.cs | 59 +- Runtime/Scripts/Effects/CurlyUI/CUIText.cs | 8 - Runtime/Scripts/Effects/CurvedText.cs | 12 - Runtime/Scripts/Effects/CylinderText.cs | 16 +- Runtime/Scripts/Effects/Gradient2.cs | 46 +- Runtime/Scripts/Effects/LetterSpacing.cs | 117 ++- Runtime/Scripts/Effects/MonoSpacing.cs | 105 +-- Runtime/Scripts/Effects/NicerOutline.cs | 62 +- Runtime/Scripts/Effects/SoftMaskScript.cs | 4 - Runtime/Scripts/Effects/UIParticleSystem.cs | 12 +- .../Scripts/Layout/UIHorizontalScroller.cs | 10 +- Runtime/Scripts/Layout/UIVerticalScroller.cs | 10 +- .../ToolTips/BoundTooltip/BoundTooltipItem.cs | 8 +- Runtime/Scripts/ToolTips/HoverTooltip.cs | 4 - Runtime/Scripts/ToolTips/ToolTip.cs | 71 +- Runtime/Scripts/Utilities/ExtensionsToggle.cs | 5 - Runtime/Scripts/Utilities/PPIViewer.cs | 12 - .../Utilities/UIExtensionsInputManager.cs | 2 +- 32 files changed, 970 insertions(+), 1060 deletions(-) diff --git a/Editor/CUIImageEditor.cs b/Editor/CUIImageEditor.cs index a3eb6f1c..f3ac1839 100644 --- a/Editor/CUIImageEditor.cs +++ b/Editor/CUIImageEditor.cs @@ -68,11 +68,7 @@ protected override void OnSceneGUI() Handles.color = Color.gray; EditorGUI.BeginChangeCheck(); -#if UNITY_2022_1_OR_NEWER Vector3 newCornerPos = Handles.FreeMoveHandle(script.transform.TransformPoint(cornerPos), HandleUtility.GetHandleSize(script.transform.TransformPoint(cornerPos)) / 7, Vector3.one, Handles.SphereHandleCap); -#else - Vector3 newCornerPos = Handles.FreeMoveHandle(script.transform.TransformPoint(cornerPos), script.transform.rotation, HandleUtility.GetHandleSize(script.transform.TransformPoint(cornerPos)) / 7, Vector3.one, Handles.SphereHandleCap); -#endif Handles.Label(newCornerPos, string.Format("Corner Mover")); diff --git a/Editor/CanvasGroupActivator.cs b/Editor/CanvasGroupActivator.cs index cd716573..99cb48e0 100644 --- a/Editor/CanvasGroupActivator.cs +++ b/Editor/CanvasGroupActivator.cs @@ -29,11 +29,7 @@ void OnFocus() void ObtainCanvasGroups() { -#if UNITY_2023_1_OR_NEWER - canvasGroups = GameObject.FindObjectsByType(FindObjectsSortMode.None); -#else - canvasGroups = GameObject.FindObjectsOfType(); -#endif + canvasGroups = GameObject.FindObjectsByType(FindObjectsSortMode.None); } void OnGUI() diff --git a/Editor/UIExtensionsMenuOptions.cs b/Editor/UIExtensionsMenuOptions.cs index ac4bbe42..def2a80b 100644 --- a/Editor/UIExtensionsMenuOptions.cs +++ b/Editor/UIExtensionsMenuOptions.cs @@ -1,4 +1,4 @@ -#if UNITY_2019_1_OR_NEWER && !ENABLE_LEGACY_INPUT_MANAGER +#if !ENABLE_LEGACY_INPUT_MANAGER #define NEW_INPUT_SYSTEM #endif @@ -159,11 +159,7 @@ private static void CreateEventSystem(bool select) private static void CreateEventSystem(bool select, GameObject parent) { -#if UNITY_2023_1_OR_NEWER var esys = Object.FindFirstObjectByType(); -#else - var esys = Object.FindObjectOfType(); -#endif if (esys == null) { var eventSystem = new GameObject("EventSystem"); @@ -195,11 +191,7 @@ static public GameObject GetOrCreateCanvasGameObject() return canvas.gameObject; // No canvas in selection or its parents? Then use just any canvas.. -#if UNITY_2023_1_OR_NEWER canvas = Object.FindFirstObjectByType(); -#else - canvas = Object.FindObjectOfType(typeof(Canvas)) as Canvas; -#endif if (canvas != null && canvas.gameObject.activeInHierarchy) return canvas.gameObject; @@ -677,91 +669,91 @@ static public void AddUIVerticallScroller(MenuCommand menuCommand) Selection.activeGameObject = uiVerticalScrollerRoot; } - #endregion - - #region UIHorizontal Scroller - [MenuItem("GameObject/UI/Extensions/Layout/UI Horizontal Scroller", false)] - static public void AddUIHorizontalScroller(MenuCommand menuCommand) - { - GameObject uiHorizontalScrollerRoot = CreateUIElementRoot("UI Horizontal Scroller", menuCommand, s_ThickGUIElementSize); - - GameObject uiScrollerCenter = CreateUIObject("Center", uiHorizontalScrollerRoot); - - GameObject childContent = CreateUIObject("Content", uiHorizontalScrollerRoot); - - // Set RectTransform to stretch - RectTransform rectTransformScrollSnapRoot = uiHorizontalScrollerRoot.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 = uiHorizontalScrollerRoot.AddComponent(); - sr.vertical = false; - sr.horizontal = true; - sr.movementType = ScrollRect.MovementType.Unrestricted; - var uiscr = uiHorizontalScrollerRoot.AddComponent(); - - //Setup container center point - RectTransform rectTransformCenter = uiScrollerCenter.GetComponent(); - rectTransformCenter.anchorMin = new Vector2(0.3f,0f); - rectTransformCenter.anchorMax = new Vector2(0.6f,1f); - 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(0.5f, 0); - rectTransformPage.anchorMax = new Vector2(0.5f, 1f); - rectTransformPage.sizeDelta = new Vector2(80f, 0f); - rectTransformPage.pivot = new Vector2(0.5f, 0.5f); - rectTransformPage.localPosition = new Vector3(80 * i, 0, 0); - childPage.AddComponent