1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
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);
}
}
}
|