From 5eaf48d25681494ce3eae04d6703a97f55c7584a Mon Sep 17 00:00:00 2001
From: SimonDarksideJ <darkside@zenithmoon.com>
Date: Sun, 26 Nov 2023 09:52:36 +0000
Subject: [PATCH] Made deprecated components obsolete rather than just remove
 to reduce errors for upgrades

---
 .../Controls/ComboBox/AutoCompleteComboBox.cs |  1 -
 Runtime/Scripts/Effects/BestFitOutline.cs     | 13 ++++++++--
 Runtime/Scripts/Effects/CurvedText.cs         | 18 +++++++++----
 Runtime/Scripts/Effects/CylinderText.cs       | 20 ++++++++++----
 Runtime/Scripts/Effects/LetterSpacing.cs      | 26 ++++++++++++++-----
 Runtime/Scripts/Effects/MonoSpacing.cs        | 25 +++++++++++++-----
 Runtime/Scripts/Effects/NicerOutline.cs       | 23 ++++++++++++----
 7 files changed, 94 insertions(+), 32 deletions(-)

diff --git a/Runtime/Scripts/Controls/ComboBox/AutoCompleteComboBox.cs b/Runtime/Scripts/Controls/ComboBox/AutoCompleteComboBox.cs
index f329b97..3a7073d 100644
--- a/Runtime/Scripts/Controls/ComboBox/AutoCompleteComboBox.cs
+++ b/Runtime/Scripts/Controls/ComboBox/AutoCompleteComboBox.cs
@@ -1,7 +1,6 @@
 ///Credit perchik
 ///Sourced from - http://forum.unity3d.com/threads/receive-onclick-event-and-pass-it-on-to-lower-ui-elements.293642/
 
-using System;
 using System.Collections.Generic;
 using System.Linq;
 
diff --git a/Runtime/Scripts/Effects/BestFitOutline.cs b/Runtime/Scripts/Effects/BestFitOutline.cs
index ad1b530..1e5a6de 100644
--- a/Runtime/Scripts/Effects/BestFitOutline.cs
+++ b/Runtime/Scripts/Effects/BestFitOutline.cs
@@ -2,10 +2,19 @@
 /// Sourced from - http://forum.unity3d.com/members/melang.593409/
 /// NOT supported in Unity 2022
 
+using System;
 #if !UNITY_2022_1_OR_NEWER
 using System.Collections.Generic;
+#endif
+
 namespace UnityEngine.UI.Extensions
 {
+#if UNITY_2022_1_OR_NEWER
+	[Obsolete("BestFitOutline is not supported in Unity 2022.1 or newer. Use TMPro instead.")]
+	public class BestFitOutline : Shadow
+	{
+	}
+#else
     [AddComponentMenu("UI/Effects/Extensions/BestFit Outline")]
 	public class BestFitOutline : Shadow
 	{
@@ -61,5 +70,5 @@ namespace UnityEngine.UI.Extensions
             }
         }
 	}
-}
-#endif
\ No newline at end of file
+#endif
+    }
\ No newline at end of file
diff --git a/Runtime/Scripts/Effects/CurvedText.cs b/Runtime/Scripts/Effects/CurvedText.cs
index 1f69c7e..ef27a41 100644
--- a/Runtime/Scripts/Effects/CurvedText.cs
+++ b/Runtime/Scripts/Effects/CurvedText.cs
@@ -1,9 +1,17 @@
-/// Credit Breyer
-/// Sourced from - http://forum.unity3d.com/threads/scripts-useful-4-6-scripts-collection.264161/#post-1777407
-#if !UNITY_2022_1_OR_NEWER
+
+using System;
 
 namespace UnityEngine.UI.Extensions
 {
+#if UNITY_2022_1_OR_NEWER
+    [Obsolete("CurvedText is not supported in Unity 2022.1 or newer. Use TMPro instead.")]
+    public class CurvedText : BaseMeshEffect
+    {
+        public override void ModifyMesh(VertexHelper vh)
+        {
+        }
+    }
+#else
     [RequireComponent(typeof(Text))]
     [RequireComponent(typeof(RectTransform))]
     [AddComponentMenu("UI/Effects/Extensions/Curved Text")]
@@ -83,5 +91,5 @@ namespace UnityEngine.UI.Extensions
             }
         }
     }
-}
-#endif
\ No newline at end of file
+#endif
+}
\ No newline at end of file
diff --git a/Runtime/Scripts/Effects/CylinderText.cs b/Runtime/Scripts/Effects/CylinderText.cs
index 089721b..cdd592e 100644
--- a/Runtime/Scripts/Effects/CylinderText.cs
+++ b/Runtime/Scripts/Effects/CylinderText.cs
@@ -1,10 +1,20 @@
-/// adaption for cylindrical bending by herbst
+
+using System;
+
+/// adaption for cylindrical bending by herbst
 /// Credit Breyer
 /// Sourced from - http://forum.unity3d.com/threads/scripts-useful-4-6-scripts-collection.264161/#post-1777407
-#if !UNITY_2022_1_OR_NEWER
-
 namespace UnityEngine.UI.Extensions
 {
+#if UNITY_2022_1_OR_NEWER
+    [Obsolete("CylinderText is not supported in Unity 2022.1 or newer. Use TMPro instead.")]
+    public class CylinderText : BaseMeshEffect
+    {
+        public override void ModifyMesh(VertexHelper vh)
+        {
+        }
+    }
+#else
     [RequireComponent(typeof(Text))]
     [RequireComponent(typeof(RectTransform))]
     [AddComponentMenu("UI/Effects/Extensions/Cylinder Text")]
@@ -53,5 +63,5 @@ namespace UnityEngine.UI.Extensions
             }
         }
     }
-}
-#endif
\ No newline at end of file
+#endif
+}
\ No newline at end of file
diff --git a/Runtime/Scripts/Effects/LetterSpacing.cs b/Runtime/Scripts/Effects/LetterSpacing.cs
index 8b3b14e..ce5e2b2 100644
--- a/Runtime/Scripts/Effects/LetterSpacing.cs
+++ b/Runtime/Scripts/Effects/LetterSpacing.cs
@@ -1,6 +1,4 @@
-/// Credit Deeperbeige
-/// Sourced from - http://forum.unity3d.com/threads/adjustable-character-spacing-free-script.288277/
-/*
+/*
 
 Produces an simple tracking/letter-spacing effect on UI Text components.
 
@@ -42,9 +40,23 @@ break down entirely, but it doesn't really do what you'd want either.
 */
 #if !UNITY_2022_1_OR_NEWER
 using System.Collections.Generic;
+#endif
 
+using System;
+
+/// Credit Deeperbeige
+/// Sourced from - http://forum.unity3d.com/threads/adjustable-character-spacing-free-script.288277/
 namespace UnityEngine.UI.Extensions
 {
+#if UNITY_2022_1_OR_NEWER
+    [Obsolete("LetterSpacing is not supported in Unity 2022.1 or newer. Use TMPro instead.")]
+    public class LetterSpacing : BaseMeshEffect
+    {
+        public override void ModifyMesh(VertexHelper vh)
+        {
+        }
+    }
+#else
     [AddComponentMenu("UI/Effects/Extensions/Letter Spacing")]
     ///Summary
     /// Note, Vertex Count has changed in 5.2.1+, is now 6 (two tris) instead of 4 (tri strip).
@@ -55,13 +67,13 @@ namespace UnityEngine.UI.Extensions
 
 		protected LetterSpacing() { }
 		
-		#if UNITY_EDITOR
+#if UNITY_EDITOR
 		protected override void OnValidate()
 		{
 			spacing = m_spacing;
 			base.OnValidate();
 		}
-		#endif
+#endif
 		
 		public float spacing
 		{
@@ -171,5 +183,5 @@ namespace UnityEngine.UI.Extensions
             vh.AddUIVertexTriangleStream(verts);
         }
 	}
-}
-#endif
\ No newline at end of file
+#endif
+}
\ No newline at end of file
diff --git a/Runtime/Scripts/Effects/MonoSpacing.cs b/Runtime/Scripts/Effects/MonoSpacing.cs
index 66877dd..ab70127 100644
--- a/Runtime/Scripts/Effects/MonoSpacing.cs
+++ b/Runtime/Scripts/Effects/MonoSpacing.cs
@@ -1,5 +1,3 @@
-/// Credit herbst / derived from LetterSpacing by Deeperbeige
-/// Sourced from - http://forum.unity3d.com/threads/adjustable-character-spacing-free-script.288277/
 /*
 
 Produces an simple mono-spacing effect on UI Text components.
@@ -41,11 +39,24 @@ break down entirely, but it doesn't really do what you'd want either.
 
 */
 #if !UNITY_2022_1_OR_NEWER
-
 using System.Collections.Generic;
+#endif
 
+using System;
+
+/// Credit herbst / derived from LetterSpacing by Deeperbeige
+/// Sourced from - http://forum.unity3d.com/threads/adjustable-character-spacing-free-script.288277/
 namespace UnityEngine.UI.Extensions
 {
+#if UNITY_2022_1_OR_NEWER
+    [Obsolete("MonoSpacing is not supported in Unity 2022.1 or newer. Use TMPro instead.")]
+    public class MonoSpacing : BaseMeshEffect
+    {
+        public override void ModifyMesh(VertexHelper vh)
+        {
+        }
+    }
+#else
     [AddComponentMenu("UI/Effects/Extensions/Mono Spacing")]
     [RequireComponent(typeof(Text))]
     [RequireComponent(typeof(RectTransform))]
@@ -76,13 +87,13 @@ namespace UnityEngine.UI.Extensions
             rectTransform = text.GetComponent<RectTransform>();
         }
 
-        #if UNITY_EDITOR
+#if UNITY_EDITOR
         protected override void OnValidate()
 		{
 			Spacing = m_spacing;
 			base.OnValidate();
 		}
-		#endif
+#endif
 		
 		public float Spacing
 		{
@@ -190,5 +201,5 @@ namespace UnityEngine.UI.Extensions
             vh.AddUIVertexTriangleStream(verts);
         }
 	}
-}
-#endif
\ No newline at end of file
+#endif
+    }
\ No newline at end of file
diff --git a/Runtime/Scripts/Effects/NicerOutline.cs b/Runtime/Scripts/Effects/NicerOutline.cs
index 602e5ee..8c0d1c8 100644
--- a/Runtime/Scripts/Effects/NicerOutline.cs
+++ b/Runtime/Scripts/Effects/NicerOutline.cs
@@ -1,12 +1,25 @@
+
+#if !UNITY_2022_1_OR_NEWER
+using System.Collections.Generic;
+#endif
+
+using System;
+
 /// Credit Melang, Lee Hui
 /// Sourced from - http://forum.unity3d.com/members/melang.593409/
 /// GC Alloc fix - https://bitbucket.org/UnityUIExtensions/unity-ui-extensions/pull-requests/130
 /// NOT supported in Unity 2022
-
-#if !UNITY_2022_1_OR_NEWER
-using System.Collections.Generic;
 namespace UnityEngine.UI.Extensions
 {
+#if UNITY_2022_1_OR_NEWER
+	[Obsolete("BestFitOutline is not supported in Unity 2022.1 or newer. Use TMPro instead.")]
+	public class NicerOutline : BaseMeshEffect
+	{
+        public override void ModifyMesh(VertexHelper vh)
+        {
+        }
+    }
+#else
     //An outline that looks a bit nicer than the default one. It has less "holes" in the outline by drawing more copies of the effect
     [AddComponentMenu("UI/Effects/Extensions/Nicer Outline")]
 	public class NicerOutline : BaseMeshEffect
@@ -194,5 +207,5 @@ namespace UnityEngine.UI.Extensions
 		}
 #endif
 	}
-}
-#endif
\ No newline at end of file
+#endif
+    }
\ No newline at end of file