Unity UGUI 拖拽跟随实现

191 篇文章 9 订阅

unity 中拖拽某个UI移动时,例如是image类型的UI,要想实现图片跟随着鼠标移动需要以下操作:

首先我们要在鼠标按下时保存鼠标按下的位置,记录要移动物体的初始位置

 if(Input.GetMouseButtonDown(0))
        {


            vec3 = Input.mousePosition;
            pos = transform.GetComponent<RectTransform>().position;
     
        }

其次我们要在鼠标移动时求出鼠标的位移的偏移量是多少,这里用off来保存,ve3来刷新记录鼠标的移动位置

用pos加上每次帧鼠标的偏移量,最后在把pos获得的移动值赋值给要移动的物体
        if(Input.GetMouseButton(0))
        {
            Vector3 off = Input.mousePosition - vec3;
            vec3 = Input.mousePosition;
            pos = pos + off;
            transform.GetComponent<RectTransform>().position = pos;
        }

以上只是通过鼠标的状态来控制物体的移动。

我们还可以结合UI系统提供的事件来控制物体的移动

例如,我们给panel添加一个EventTrigger组件,分别添加Drag 和pointerDown两个事件

分别绑定触发的方法为MoveObject(),PointerDown();


public   void MoveObject()
    {
        Vector3 off = Input.mousePosition - vec3;
        vec3 = Input.mousePosition;
        pos = pos + off;
        transform.GetComponent<RectTransform>().position = pos;
 
    }
  public void PointerDown()
  {
      vec3 = Input.mousePosition;
      pos = transform.GetComponent<RectTransform>().position;
     
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诗远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值