diff options
| author | Simon O'Shea <osheas1@wit.edu> | 2023-07-31 18:45:01 -0400 |
|---|---|---|
| committer | Simon O'Shea <osheas1@wit.edu> | 2023-07-31 18:45:01 -0400 |
| commit | 5f9e8f979deb94e9219113ed09b49142c040cb57 (patch) | |
| tree | a67bd606205f7fb28e48d351028b3478bc49145b /Pathfinding Visualizer/Assets/CodeMonkey/Utils/UI_Bar.cs | |
| parent | 4699ce72871eaa6ee27c01971383b9d1fced1946 (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_Bar.cs')
| -rw-r--r-- | Pathfinding Visualizer/Assets/CodeMonkey/Utils/UI_Bar.cs | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/Pathfinding Visualizer/Assets/CodeMonkey/Utils/UI_Bar.cs b/Pathfinding Visualizer/Assets/CodeMonkey/Utils/UI_Bar.cs new file mode 100644 index 0000000..3ae73a1 --- /dev/null +++ b/Pathfinding Visualizer/Assets/CodeMonkey/Utils/UI_Bar.cs @@ -0,0 +1,170 @@ +/* + ------------------- 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 { + + /* + * Bar in the UI with scaleable Bar and Background + * */ + public class UI_Bar { + + public GameObject gameObject; + private RectTransform rectTransform; + private RectTransform background; + private RectTransform bar; + private Vector2 size; + + /* + * Outline into for Bar + * */ + public class Outline { + public float size = 1f; + public Color color = Color.black; + public Outline(float size, Color color) { + this.size = size; + this.color = color; + } + } + + public UI_Bar(GameObject gameObject, RectTransform background, RectTransform bar) { + this.gameObject = gameObject; + rectTransform = gameObject.GetComponent<RectTransform>(); + this.background = background; + this.bar = bar; + size = background.GetComponent<RectTransform>().sizeDelta; + } + + public UI_Bar(GameObject gameObject, Transform background, Transform bar) { + this.gameObject = gameObject; + rectTransform = gameObject.GetComponent<RectTransform>(); + this.background = background.GetComponent<RectTransform>(); + this.bar = bar.GetComponent<RectTransform>(); + size = background.GetComponent<RectTransform>().sizeDelta; + } + + public UI_Bar(Transform parent, Vector2 anchoredPosition, Vector2 size, Color barColor, float sizeRatio) { + SetupParent(parent, anchoredPosition, size); + SetupBar(barColor); + SetSize(sizeRatio); + } + + public UI_Bar(Transform parent, Vector2 anchoredPosition, Vector2 size, Color barColor, float sizeRatio, Outline outline) { + SetupParent(parent, anchoredPosition, size); + if (outline != null) SetupOutline(outline, size); + SetupBar(barColor); + SetSize(sizeRatio); + } + + public UI_Bar(Transform parent, Vector2 anchoredPosition, Vector2 size, Color backgroundColor, Color barColor, float sizeRatio) { + SetupParent(parent, anchoredPosition, size); + SetupBackground(backgroundColor); + SetupBar(barColor); + SetSize(sizeRatio); + } + + public UI_Bar(Transform parent, Vector2 anchoredPosition, Vector2 size, Color backgroundColor, Color barColor, float sizeRatio, Outline outline) { + SetupParent(parent, anchoredPosition, size); + if (outline != null) SetupOutline(outline, size); + SetupBackground(backgroundColor); + SetupBar(barColor); + SetSize(sizeRatio); + } + + private void SetupParent(Transform parent, Vector2 anchoredPosition, Vector2 size) { + this.size = size; + gameObject = new GameObject("UI_Bar", typeof(RectTransform)); + rectTransform = gameObject.GetComponent<RectTransform>(); + rectTransform.SetParent(parent, false); + rectTransform.sizeDelta = size; + rectTransform.anchorMin = new Vector2(0, .5f); + rectTransform.anchorMax = new Vector2(0, .5f); + rectTransform.pivot = new Vector2(0, .5f); + rectTransform.anchoredPosition = anchoredPosition; + } + + private RectTransform SetupOutline(Outline outline, Vector2 size) { + return UtilsClass.DrawSprite(outline.color, gameObject.transform, Vector2.zero, size + new Vector2(outline.size, outline.size), "Outline"); + } + + private void SetupBackground(Color backgroundColor) { + background = UtilsClass.DrawSprite(backgroundColor, gameObject.transform, Vector2.zero, Vector2.zero, "Background"); + background.anchorMin = new Vector2(0,0); + background.anchorMax = new Vector2(1,1); + } + + private void SetupBar(Color barColor) { + bar = UtilsClass.DrawSprite(barColor, gameObject.transform, Vector2.zero, Vector2.zero, "Bar"); + bar.anchorMin = new Vector2(0,0); + bar.anchorMax = new Vector2(0,1f); + bar.pivot = new Vector2(0,.5f); + } + + public void SetSize(float sizeRatio) { + bar.sizeDelta = new Vector2(sizeRatio * size.x, 0f); + } + + public void SetColor(Color color) { + bar.GetComponent<Image>().color = color; + } + + public void SetActive(bool active) { + gameObject.SetActive(active); + } + + public Vector2 GetAnchoredPosition() { + return rectTransform.anchoredPosition; + } + + public Vector2 GetSize() { + return rectTransform.sizeDelta; + } + + public void AddOutline(Outline outline) { + RectTransform outlineRectTransform = SetupOutline(outline, size); + outlineRectTransform.transform.SetAsFirstSibling(); + } + + public void SetRaycastTarget(bool set) { + foreach (Transform trans in gameObject.transform) { + if (trans.GetComponent<Image>() != null) { + trans.GetComponent<Image>().raycastTarget = set; + } + } + } + + public void DestroySelf() { + UnityEngine.Object.Destroy(gameObject); + } + + public Button_UI AddButton() { + return AddButton(null, null, null); + } + + 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; + } + + } + + +} |
