diff options
Diffstat (limited to 'Pathfinding Visualizer/Assets/CodeMonkey/Utils/UI_Sprite.cs')
| -rw-r--r-- | Pathfinding Visualizer/Assets/CodeMonkey/Utils/UI_Sprite.cs | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/Pathfinding Visualizer/Assets/CodeMonkey/Utils/UI_Sprite.cs b/Pathfinding Visualizer/Assets/CodeMonkey/Utils/UI_Sprite.cs new file mode 100644 index 0000000..ef584bf --- /dev/null +++ b/Pathfinding Visualizer/Assets/CodeMonkey/Utils/UI_Sprite.cs @@ -0,0 +1,131 @@ +/* + ------------------- Code Monkey ------------------- + + Thank you for downloading the Code Monkey Utilities + I hope you find them useful in your projects + If you have any questions use the contact form + Cheers! + + unitycodemonkey.com + -------------------------------------------------- + */ + +using System; +using UnityEngine; +using UnityEngine.UI; + +namespace CodeMonkey.Utils { + + /* + * Sprite in the UI + * */ + public class UI_Sprite { + + private static Transform GetCanvasTransform() { + return UtilsClass.GetCanvasTransform(); + } + + public static UI_Sprite CreateDebugButton(Vector2 anchoredPosition, Vector2 size, Action ClickFunc) { + return CreateDebugButton(anchoredPosition, size, ClickFunc, Color.green); + } + + public static UI_Sprite CreateDebugButton(Vector2 anchoredPosition, Vector2 size, Action ClickFunc, Color color) { + UI_Sprite uiSprite = new UI_Sprite(GetCanvasTransform(), Assets.i.s_White, anchoredPosition, size, color); + uiSprite.AddButton(ClickFunc, null, null); + return uiSprite; + } + + public static UI_Sprite CreateDebugButton(Transform parent, Vector2 anchoredPosition, string text, Action ClickFunc) { + return CreateDebugButton(parent, anchoredPosition, text, ClickFunc, Color.green); + } + + public static UI_Sprite CreateDebugButton(Vector2 anchoredPosition, string text, Action ClickFunc) { + return CreateDebugButton(anchoredPosition, text, ClickFunc, Color.green); + } + + public static UI_Sprite CreateDebugButton(Transform parent, Vector2 anchoredPosition, string text, Action ClickFunc, Color color) { + return CreateDebugButton(parent, anchoredPosition, text, ClickFunc, color, new Vector2(30, 20)); + } + + public static UI_Sprite CreateDebugButton(Vector2 anchoredPosition, string text, Action ClickFunc, Color color) { + return CreateDebugButton(GetCanvasTransform(), anchoredPosition, text, ClickFunc, color, new Vector2(30, 20)); + } + + public static UI_Sprite CreateDebugButton(Transform parent, Vector2 anchoredPosition, string text, Action ClickFunc, Color color, Vector2 padding) { + UI_TextComplex uiTextComplex; + UI_Sprite uiSprite = CreateDebugButton(parent, anchoredPosition, Vector2.zero, ClickFunc, color, text, out uiTextComplex); + uiSprite.SetSize(new Vector2(uiTextComplex.GetTotalWidth(), uiTextComplex.GetTotalHeight()) + padding); + return uiSprite; + } + + public static UI_Sprite CreateDebugButton(Vector2 anchoredPosition, Vector2 size, Action ClickFunc, Color color, string text) { + UI_TextComplex uiTextComplex; + return CreateDebugButton(anchoredPosition, size, ClickFunc, color, text, out uiTextComplex); + } + + public static UI_Sprite CreateDebugButton(Vector2 anchoredPosition, Vector2 size, Action ClickFunc, Color color, string text, out UI_TextComplex uiTextComplex) { + return CreateDebugButton(GetCanvasTransform(), anchoredPosition, size, ClickFunc, color, text, out uiTextComplex); + } + + public static UI_Sprite CreateDebugButton(Transform parent, Vector2 anchoredPosition, Vector2 size, Action ClickFunc, Color color, string text, out UI_TextComplex uiTextComplex) { + if (color.r >= 1f) color.r = .9f; + if (color.g >= 1f) color.g = .9f; + if (color.b >= 1f) color.b = .9f; + Color colorOver = color * 1.1f; // button over color lighter + UI_Sprite uiSprite = new UI_Sprite(parent, Assets.i.s_White, anchoredPosition, size, color); + uiSprite.AddButton(ClickFunc, () => uiSprite.SetColor(colorOver), () => uiSprite.SetColor(color)); + uiTextComplex = new UI_TextComplex(uiSprite.gameObject.transform, Vector2.zero, 12, '#', text, null, null); + uiTextComplex.SetTextColor(Color.black); + uiTextComplex.SetAnchorMiddle(); + uiTextComplex.CenterOnPosition(Vector2.zero); + return uiSprite; + } + + + + public GameObject gameObject; + public Image image; + public RectTransform rectTransform; + + + public UI_Sprite(Transform parent, Sprite sprite, Vector2 anchoredPosition, Vector2 size, Color color) { + rectTransform = UtilsClass.DrawSprite(sprite, parent, anchoredPosition, size, "UI_Sprite"); + gameObject = rectTransform.gameObject; + image = gameObject.GetComponent<Image>(); + image.color = color; + } + + public void SetColor(Color color) { + image.color = color; + } + + public void SetSprite(Sprite sprite) { + image.sprite = sprite; + } + + public void SetSize(Vector2 size) { + rectTransform.sizeDelta = size; + } + + public void SetAnchoredPosition(Vector2 anchoredPosition) { + rectTransform.anchoredPosition = anchoredPosition; + } + + public Button_UI AddButton(Action ClickFunc, Action MouseOverOnceFunc, Action MouseOutOnceFunc) { + Button_UI buttonUI = gameObject.AddComponent<Button_UI>(); + if (ClickFunc != null) + buttonUI.ClickFunc = ClickFunc; + if (MouseOverOnceFunc != null) + buttonUI.MouseOverOnceFunc = MouseOverOnceFunc; + if (MouseOutOnceFunc != null) + buttonUI.MouseOutOnceFunc = MouseOutOnceFunc; + return buttonUI; + } + + public void DestroySelf() { + UnityEngine.Object.Destroy(gameObject); + } + + } + +}
\ No newline at end of file |
