SW 중심대학 OSS GIT 서버 박건태, 이승준, 고기완, 이준호 새로운 배포
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
4.7 KiB

4 years ago
  1. /*
  2. ------------------- Code Monkey -------------------
  3. Thank you for downloading the Code Monkey Utilities
  4. I hope you find them useful in your projects
  5. If you have any questions use the contact form
  6. Cheers!
  7. unitycodemonkey.com
  8. --------------------------------------------------
  9. */
  10. using System;
  11. using UnityEngine;
  12. using UnityEngine.UI;
  13. namespace CodeMonkey.Utils {
  14. /*
  15. * Sprite in the UI
  16. * */
  17. public class UI_Sprite {
  18. private static Transform GetCanvasTransform() {
  19. return UtilsClass.GetCanvasTransform();
  20. }
  21. public static UI_Sprite CreateDebugButton(Vector2 anchoredPosition, Vector2 size, Action ClickFunc) {
  22. return CreateDebugButton(anchoredPosition, size, ClickFunc, Color.green);
  23. }
  24. public static UI_Sprite CreateDebugButton(Vector2 anchoredPosition, Vector2 size, Action ClickFunc, Color color) {
  25. UI_Sprite uiSprite = new UI_Sprite(GetCanvasTransform(), Assets.i.s_White, anchoredPosition, size, color);
  26. uiSprite.AddButton(ClickFunc, null, null);
  27. return uiSprite;
  28. }
  29. public static UI_Sprite CreateDebugButton(Vector2 anchoredPosition, string text, Action ClickFunc) {
  30. return CreateDebugButton(anchoredPosition, text, ClickFunc, Color.green);
  31. }
  32. public static UI_Sprite CreateDebugButton(Vector2 anchoredPosition, string text, Action ClickFunc, Color color) {
  33. return CreateDebugButton(anchoredPosition, text, ClickFunc, color, new Vector2(30, 20));
  34. }
  35. public static UI_Sprite CreateDebugButton(Vector2 anchoredPosition, string text, Action ClickFunc, Color color, Vector2 padding) {
  36. UI_TextComplex uiTextComplex;
  37. UI_Sprite uiSprite = CreateDebugButton(anchoredPosition, Vector2.zero, ClickFunc, color, text, out uiTextComplex);
  38. uiSprite.SetSize(new Vector2(uiTextComplex.GetTotalWidth(), uiTextComplex.GetTotalHeight()) + padding);
  39. return uiSprite;
  40. }
  41. public static UI_Sprite CreateDebugButton(Vector2 anchoredPosition, Vector2 size, Action ClickFunc, Color color, string text) {
  42. UI_TextComplex uiTextComplex;
  43. return CreateDebugButton(anchoredPosition, size, ClickFunc, color, text, out uiTextComplex);
  44. }
  45. public static UI_Sprite CreateDebugButton(Vector2 anchoredPosition, Vector2 size, Action ClickFunc, Color color, string text, out UI_TextComplex uiTextComplex) {
  46. if (color.r >= 1f) color.r = .9f;
  47. if (color.g >= 1f) color.g = .9f;
  48. if (color.b >= 1f) color.b = .9f;
  49. Color colorOver = color * 1.1f; // button over color lighter
  50. UI_Sprite uiSprite = new UI_Sprite(GetCanvasTransform(), Assets.i.s_White, anchoredPosition, size, color);
  51. uiSprite.AddButton(ClickFunc, () => uiSprite.SetColor(colorOver), () => uiSprite.SetColor(color));
  52. uiTextComplex = new UI_TextComplex(uiSprite.gameObject.transform, Vector2.zero, 12, '#', text, null, null);
  53. uiTextComplex.SetTextColor(Color.black);
  54. uiTextComplex.SetAnchorMiddle();
  55. uiTextComplex.CenterOnPosition(Vector2.zero);
  56. return uiSprite;
  57. }
  58. public GameObject gameObject;
  59. public Image image;
  60. public RectTransform rectTransform;
  61. public UI_Sprite(Transform parent, Sprite sprite, Vector2 anchoredPosition, Vector2 size, Color color) {
  62. rectTransform = UtilsClass.DrawSprite(sprite, parent, anchoredPosition, size, "UI_Sprite");
  63. gameObject = rectTransform.gameObject;
  64. image = gameObject.GetComponent<Image>();
  65. image.color = color;
  66. }
  67. public void SetColor(Color color) {
  68. image.color = color;
  69. }
  70. public void SetSprite(Sprite sprite) {
  71. image.sprite = sprite;
  72. }
  73. public void SetSize(Vector2 size) {
  74. rectTransform.sizeDelta = size;
  75. }
  76. public void SetAnchoredPosition(Vector2 anchoredPosition) {
  77. rectTransform.anchoredPosition = anchoredPosition;
  78. }
  79. public Button_UI AddButton(Action ClickFunc, Action MouseOverOnceFunc, Action MouseOutOnceFunc) {
  80. Button_UI buttonUI = gameObject.AddComponent<Button_UI>();
  81. if (ClickFunc != null)
  82. buttonUI.ClickFunc = ClickFunc;
  83. if (MouseOverOnceFunc != null)
  84. buttonUI.MouseOverOnceFunc = MouseOverOnceFunc;
  85. if (MouseOutOnceFunc != null)
  86. buttonUI.MouseOutOnceFunc = MouseOutOnceFunc;
  87. return buttonUI;
  88. }
  89. public void DestroySelf() {
  90. UnityEngine.Object.Destroy(gameObject);
  91. }
  92. }
  93. }