From 115f77bda0246a00f6e17469685c67746bdbd29d Mon Sep 17 00:00:00 2001 From: nirav Date: Sat, 12 Dec 2020 07:18:36 +0000 Subject: Initial commit --- Assets/SampleUI/Scripts/ResizePanel.cs | 39 ++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 Assets/SampleUI/Scripts/ResizePanel.cs (limited to 'Assets/SampleUI/Scripts/ResizePanel.cs') diff --git a/Assets/SampleUI/Scripts/ResizePanel.cs b/Assets/SampleUI/Scripts/ResizePanel.cs new file mode 100755 index 0000000..0058bba --- /dev/null +++ b/Assets/SampleUI/Scripts/ResizePanel.cs @@ -0,0 +1,39 @@ +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; + +public class ResizePanel : MonoBehaviour, IPointerDownHandler, IDragHandler { + + public Vector2 minSize = new Vector2 (100, 100); + public Vector2 maxSize = new Vector2 (400, 400); + + private RectTransform panelRectTransform; + private Vector2 originalLocalPointerPosition; + private Vector2 originalSizeDelta; + + void Awake () { + panelRectTransform = transform.parent.GetComponent (); + } + + public void OnPointerDown (PointerEventData data) { + originalSizeDelta = panelRectTransform.sizeDelta; + RectTransformUtility.ScreenPointToLocalPointInRectangle (panelRectTransform, data.position, data.pressEventCamera, out originalLocalPointerPosition); + } + + public void OnDrag (PointerEventData data) { + if (panelRectTransform == null) + return; + + Vector2 localPointerPosition; + RectTransformUtility.ScreenPointToLocalPointInRectangle (panelRectTransform, data.position, data.pressEventCamera, out localPointerPosition); + Vector3 offsetToOriginal = localPointerPosition - originalLocalPointerPosition; + + Vector2 sizeDelta = originalSizeDelta + new Vector2 (offsetToOriginal.x, -offsetToOriginal.y); + sizeDelta = new Vector2 ( + Mathf.Clamp (sizeDelta.x, minSize.x, maxSize.x), + Mathf.Clamp (sizeDelta.y, minSize.y, maxSize.y) + ); + + panelRectTransform.sizeDelta = sizeDelta; + } +} \ No newline at end of file -- cgit v1.2.3