美文网首页unity3D技术分享unityUnity教程合集
unity3d用按钮进行拖拽放大或缩小panel

unity3d用按钮进行拖拽放大或缩小panel

作者: 好怕怕 | 来源:发表于2017-04-27 19:36 被阅读461次

效果可以看下面的图,实现窗口的拖拽放大缩小


测试.gif

设置panel的瞄点为左上角,设置point值 X:0,Y:1,按钮的图右下角放置,瞄点为panel的右下角,按钮挂载当前脚本,赋值panel对象即可


设置.png
using UnityEngine;
using UnityEngine.EventSystems;

/// <summary>
/// unity实现窗口的放大缩小
/// </summary>
public class ResizePanel : MonoBehaviour, IPointerDownHandler, IDragHandler
{

    // 控制的面板
    public RectTransform panelRectTransform;
    // 最小缩放
    public Vector2 minSize = new Vector2(120, 120);
    // 最大缩放
    public Vector2 maxSize = new Vector2(800, 600);
    private Vector2 originalLocalPointerPosition;
    private Vector2 originalSizeDelta;


    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;
    }
}

相关文章

  • unity3d用按钮进行拖拽放大或缩小panel

    效果可以看下面的图,实现窗口的拖拽放大缩小 设置panel的瞄点为左上角,设置point值 X:0,Y:1,按钮的...

  • vue点击图片预览放大(鼠标滚轮)

    产品提出新的需求,针对图片,既可以按钮放大缩小,也可以鼠标滚轮进行放大缩小,同时旋转图片,为了配合产品需求,就进行...

  • 放大或缩小

    缩小与放大是两个不同的概念 对于网页来说,是有一个合适的阅读视角大小 当我们觉得屏幕字体小了 我们可以放大页面来观...

  • C#常用控件 2019-02-16

    单选按钮:RadioButton 控件布局属性: 固定控件与窗体边缘距离:Anchor 避免窗体放大或缩小变形 将...

  • 图像金字塔

    图像金字塔与图像尺寸变化(放大,缩小)是不同的.一般对图像进行放大或缩小,可以使用opencv resize 函数...

  • PS

    一、快捷键 【command】 + 【+/-】 放大或缩小画布 【[/]】 放大或缩小笔刷 【空格】 移动画布 【...

  • EXT.js学习(三)

    tree panel 拖拽 treeviewdragdrop

  • 如何调整Excel工作表的比例

    工作表中需要查看数据的时候,如果根据需要将界面进行放大或缩小,就可以更方便了。下面来介绍几种放大或缩小工作表界面的...

  • Android 求教 仿bilibili长视频详情页和微博视频

    视频随滚动放大或缩小

  • 在react项目中操作图片(放大缩小旋转拖拽)

    前言:昨天下午老大突然对我说有这样的一个需求可以对图片进行放大缩小旋转拖拽的效果让我进行修改,没有修改的时候是只有...

网友评论

    本文标题:unity3d用按钮进行拖拽放大或缩小panel

    本文链接:https://www.haomeiwen.com/subject/btynzttx.html