8 [AddComponentMenu(
"UI/Extensions/RescalePanels/ResizePanel")]
9 public class ResizePanel : MonoBehaviour, IPointerDownHandler, IDragHandler
14 private RectTransform rectTransform;
15 private Vector2 currentPointerPosition;
16 private Vector2 previousPointerPosition;
23 rectTransform = transform.parent.GetComponent<RectTransform>();
26 originalWidth = rectTransform.rect.width;
27 originalHeight = rectTransform.rect.height;
28 ratio = originalHeight / originalWidth;
29 minSize =
new Vector2(0.1f * originalWidth, 0.1f * originalHeight);
30 maxSize =
new Vector2(10f * originalWidth, 10f * originalHeight);
35 rectTransform.SetAsLastSibling();
36 RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, data.position, data.pressEventCamera, out previousPointerPosition);
39 public void OnDrag(PointerEventData data)
41 if (rectTransform ==
null)
44 Vector2 sizeDelta = rectTransform.sizeDelta;
46 RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, data.position, data.pressEventCamera, out currentPointerPosition);
47 Vector2 resizeValue = currentPointerPosition - previousPointerPosition;
49 sizeDelta +=
new Vector2(resizeValue.x, ratio * resizeValue.x);
50 sizeDelta =
new Vector2(
55 rectTransform.sizeDelta = sizeDelta;
57 previousPointerPosition = currentPointerPosition;
void OnDrag(PointerEventData data)
void OnPointerDown(PointerEventData data)
Credit Erdener Gonenc - @PixelEnvision.