1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- using System.Collections.Generic;
- using UnityEngine;
- public static class RectTransformExtension
- {
- private static Dictionary<RectTransform, Vector2> originSizeDeltaDict = new Dictionary<RectTransform, Vector2>();
- private static void AddToOriginSizeDeltaDict(RectTransform rectTrans)
- {
- if (!originSizeDeltaDict.ContainsKey(rectTrans))
- {
- originSizeDeltaDict.Add(rectTrans, rectTrans.sizeDelta);
- }
- }
- public static void RecoverSizeDelta(this RectTransform rectTrans)
- {
- if (originSizeDeltaDict.ContainsKey(rectTrans))
- {
- rectTrans.sizeDelta = originSizeDeltaDict[rectTrans];
- }
- }
- public static void SetSizeDeltaXByRatio(this RectTransform rectTrans, float xRatio)
- {
- AddToOriginSizeDeltaDict(rectTrans);
- RecoverSizeDelta(rectTrans);
- Vector2 newSizeDelta = new Vector2();
- newSizeDelta.x = rectTrans.sizeDelta.x * xRatio;
- newSizeDelta.y = rectTrans.sizeDelta.y;
- rectTrans.sizeDelta = newSizeDelta;
- }
- public static void SetSizeDeltaYByRatio(this RectTransform rectTrans, float yRatio)
- {
- AddToOriginSizeDeltaDict(rectTrans);
- RecoverSizeDelta(rectTrans);
- Vector2 newSizeDelta = new Vector2();
- newSizeDelta.x = rectTrans.sizeDelta.x;
- newSizeDelta.y = rectTrans.sizeDelta.y * yRatio;
- rectTrans.sizeDelta = newSizeDelta;
- }
- public static void SetSizeDeltaByRatio(this RectTransform rectTrans, float xRatio, float yRatio)
- {
- AddToOriginSizeDeltaDict(rectTrans);
- RecoverSizeDelta(rectTrans);
- Vector2 newSizeDelta = new Vector2();
- newSizeDelta.x = rectTrans.sizeDelta.x*xRatio;
- newSizeDelta.y = rectTrans.sizeDelta.y*yRatio;
- rectTrans.sizeDelta = newSizeDelta;
- }
- public static void SetSizeDeltaX(this RectTransform rectTrans, float xSize)
- {
- AddToOriginSizeDeltaDict(rectTrans);
- RecoverSizeDelta(rectTrans);
- Vector2 newSizeDelta = new Vector2();
- newSizeDelta.x = xSize;
- newSizeDelta.y = rectTrans.sizeDelta.y;
- rectTrans.sizeDelta = newSizeDelta;
- }
- public static void SetSizeDeltaY(this RectTransform rectTrans, float ySize)
- {
- AddToOriginSizeDeltaDict(rectTrans);
- RecoverSizeDelta(rectTrans);
- Vector2 newSizeDelta = new Vector2();
- newSizeDelta.x = rectTrans.sizeDelta.x;
- newSizeDelta.y = ySize;
- rectTrans.sizeDelta = newSizeDelta;
- }
- public static void SetSizeDelta(this RectTransform rectTrans, float xSize, float ySize)
- {
- AddToOriginSizeDeltaDict(rectTrans);
- RecoverSizeDelta(rectTrans);
- Vector2 newSizeDelta = new Vector2();
- newSizeDelta.x = xSize;
- newSizeDelta.y = ySize;
- rectTrans.sizeDelta = newSizeDelta;
- }
- }
|