UGUI:窗口限制以及窗口缩放

匿名 (未验证) 提交于 2019-12-03 00:09:02
  • 本文原创首发于以下网站:
  1. 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123
  2. 优梦创客的官方博客:https://91make.top
  3. 优梦创客的游戏讲堂:https://91make.ke.qq.com
  4. 『优梦创客』的微信公众号: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;                 }     } }
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!