summaryrefslogtreecommitdiff
path: root/Pathfinding Visualizer/Assets/CodeMonkey/Utils/UI_Sprite.cs
diff options
context:
space:
mode:
authorSimon O'Shea <osheas1@wit.edu>2023-07-31 18:45:01 -0400
committerSimon O'Shea <osheas1@wit.edu>2023-07-31 18:45:01 -0400
commit5f9e8f979deb94e9219113ed09b49142c040cb57 (patch)
treea67bd606205f7fb28e48d351028b3478bc49145b /Pathfinding Visualizer/Assets/CodeMonkey/Utils/UI_Sprite.cs
parent4699ce72871eaa6ee27c01971383b9d1fced1946 (diff)
import successful, grid has visuals
cell values and grid lines are displayed. no interaction available yet.
Diffstat (limited to 'Pathfinding Visualizer/Assets/CodeMonkey/Utils/UI_Sprite.cs')
-rw-r--r--Pathfinding Visualizer/Assets/CodeMonkey/Utils/UI_Sprite.cs131
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