7 public static void setLayer(
this GameObject
self,
int layer,
bool includeChildren =
true)
12 Transform[] componentsInChildren =
self.transform.GetComponentsInChildren<Transform>(includeInactive:
true);
13 for (
int i = 0; i < componentsInChildren.Length; i++)
15 componentsInChildren[i].gameObject.layer = layer;
20 public static RectTransform
setFullSize(
this RectTransform
self)
22 self.sizeDelta =
new Vector2(0f, 0f);
23 self.anchorMin =
new Vector2(0f, 0f);
24 self.anchorMax =
new Vector2(1f, 1f);
25 self.pivot =
new Vector2(0.5f, 0.5f);
29 public static Vector2
getSize(
this RectTransform
self)
31 return self.rect.size;
34 public static void setSize(
this RectTransform
self, Vector2 newSize)
36 Vector2 pivot =
self.pivot;
37 Vector2 vector = newSize -
self.rect.size;
38 self.offsetMin -=
new Vector2(vector.x * pivot.x, vector.y * pivot.y);
39 self.offsetMax +=
new Vector2(vector.x * (1f - pivot.x), vector.y * (1f - pivot.y));
45 float width =
self.rect.width;
46 self.anchorMin =
new Vector2(0f, 0f);
47 self.anchorMax =
new Vector2(0f, 1f);
48 self.pivot =
new Vector2(0f, 1f);
49 self.sizeDelta =
new Vector2(width * rate, 0f);
56 float width =
self.rect.width;
57 self.anchorMin =
new Vector2(1f, 0f);
58 self.anchorMax =
new Vector2(1f, 1f);
59 self.pivot =
new Vector2(1f, 1f);
60 self.sizeDelta =
new Vector2(width * rate, 0f);
64 public static RectTransform
setSizeFromTop(
this RectTransform
self,
float rate)
67 float height =
self.rect.height;
68 self.anchorMin =
new Vector2(0f, 1f);
69 self.anchorMax =
new Vector2(1f, 1f);
70 self.pivot =
new Vector2(0f, 1f);
71 self.sizeDelta =
new Vector2(0f, height * rate);
78 float height =
self.rect.height;
79 self.anchorMin =
new Vector2(0f, 0f);
80 self.anchorMax =
new Vector2(1f, 0f);
81 self.pivot =
new Vector2(0f, 0f);
82 self.sizeDelta =
new Vector2(0f, height * rate);
86 public static void setOffset(
this RectTransform
self,
float left,
float top,
float right,
float bottom)
88 self.offsetMin =
new Vector2(
left, top);
89 self.offsetMax =
new Vector2(
right, bottom);
92 public static bool inScreenRect(
this RectTransform
self, Vector2 screenPos)
94 Canvas componentInParent =
self.GetComponentInParent<Canvas>();
95 switch (componentInParent.renderMode)
97 case RenderMode.ScreenSpaceCamera:
99 Camera worldCamera = componentInParent.worldCamera;
100 if (worldCamera !=
null)
102 return RectTransformUtility.RectangleContainsScreenPoint(
self, screenPos, worldCamera);
106 case RenderMode.ScreenSpaceOverlay:
107 return RectTransformUtility.RectangleContainsScreenPoint(
self, screenPos);
108 case RenderMode.WorldSpace:
109 return RectTransformUtility.RectangleContainsScreenPoint(
self, screenPos);
114 public static bool inScreenRect(
this RectTransform
self, RectTransform rectTransform)
116 Rect screenRect =
self.getScreenRect();
117 Rect screenRect2 = rectTransform.getScreenRect();
118 return screenRect.Overlaps(screenRect2);
123 Rect result =
default(Rect);
124 Camera worldCamera =
self.GetComponentInParent<Canvas>().worldCamera;
125 if (worldCamera !=
null)
127 Vector3[] array =
new Vector3[4];
128 self.GetWorldCorners(array);
129 result.min = worldCamera.WorldToScreenPoint(array[0]);
130 result.max = worldCamera.WorldToScreenPoint(array[2]);