8 [AddComponentMenu(
"UI/Extensions/RescalePanels/RescalePanel")]
9 public class RescalePanel : MonoBehaviour, IPointerDownHandler, IDragHandler
14 private RectTransform rectTransform;
15 private Transform goTransform;
16 private Vector2 currentPointerPosition;
17 private Vector2 previousPointerPosition;
19 private RectTransform thisRectTransform;
24 rectTransform = transform.parent.GetComponent<RectTransform>();
25 goTransform = transform.parent;
27 thisRectTransform = GetComponent<RectTransform>();
28 sizeDelta = thisRectTransform.sizeDelta;
33 rectTransform.SetAsLastSibling();
34 RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, data.position, data.pressEventCamera, out previousPointerPosition);
37 public void OnDrag(PointerEventData data)
39 if (rectTransform ==
null)
42 Vector3 scaleDelta = goTransform.localScale;
44 RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, data.position, data.pressEventCamera, out currentPointerPosition);
45 Vector2 resizeValue = currentPointerPosition - previousPointerPosition;
47 scaleDelta +=
new Vector3(-resizeValue.y * 0.001f, -resizeValue.y * 0.001f, 0f);
48 scaleDelta =
new Vector3(
54 goTransform.localScale = scaleDelta;
56 previousPointerPosition = currentPointerPosition;
57 float resizeDeltaValue = sizeDelta.x / goTransform.localScale.x;
58 Vector2 newSizeDelta =
new Vector2(resizeDeltaValue, resizeDeltaValue);
59 thisRectTransform.sizeDelta = newSizeDelta;
void OnPointerDown(PointerEventData data)
void OnDrag(PointerEventData data)
Credit Erdener Gonenc - @PixelEnvision.