版权申明:
- 本文原创首发于以下网站:
- 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123
- 优梦创客的官方博客:https://91make.top
- 优梦创客的游戏讲堂:https://91make.ke.qq.com
- 『优梦创客』的微信公众号:umaketop
- 您可以自由转载,但必须加入完整的版权声明
窗口拖动限制在一个特定的区域
public class Scene : MonoBehaviour, IDragHandler, IPointerDownHandler { public RectTransform RtTransform; public RectTransform RTParent; Vector2 downpos; Vector2 newpos; public void OnPointerDown(PointerEventData eventData) { RectTransformUtility.ScreenPointToLocalPointInRectangle (RtTransform, eventData.position ,eventData.pressEventCamera, out downpos); //print(downpos); } public void OnDrag(PointerEventData eventData) { if (RectTransformUtility.ScreenPointToLocalPointInRectangle (RtTransform, eventData.position , eventData.pressEventCamera, out newpos)) { Vector2 offset = newpos - downpos; transform.parent.position = (Vector2)transform.parent.position + offset; downpos = newpos; } if (RTParent.position.x < 0) { Vector2 tmp = RTParent.position; tmp.x = 0; RTParent.position = tmp; } else if (RTParent.position.x > RtTransform.rect.width - RTParent.rect.width) { Vector2 tmp = RTParent.position; tmp.x = RtTransform.rect.width - RTParent.rect.width; RTParent.position = tmp; } if (RTParent.position.y < 0) { Vector2 tmp = RTParent.position; tmp.y = 0; RTParent.position = tmp; } else if (RTParent.position.y > RtTransform.rect.height - RTParent.rect.height) { Vector2 tmp = RTParent.position; tmp.y = RtTransform.rect.height - RTParent.rect.height; RTParent.position = tmp; } }
窗口缩放
public class Zoom : MonoBehaviour,IPointerDownHandler,IDragHandler { public RectTransform canvasWindow; public RectTransform parentWinfow; Vector2 downpos; Vector2 newpos; Vector2 origsize; public void OnPointerDown(PointerEventData eventData) { origsize = parentWinfow.sizeDelta; RectTransformUtility.ScreenPointToLocalPointInRectangle (canvasWindow, eventData.position, eventData.pressEventCamera, out downpos); } public void OnDrag(PointerEventData eventData) { if (RectTransformUtility.ScreenPointToLocalPointInRectangle (canvasWindow, eventData.position, eventData.pressEventCamera, out newpos)) { Vector2 offpos=newpos-downpos; // offpos.y *= -1; parentWinfow.sizeDelta =origsize + offpos; } } }
来源:https://www.cnblogs.com/raymondking123/p/11554875.html