unity 原生UI 拖拽跟随鼠标移动

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


第一个方法:在Update函数中执行

       if(Input.GetMouseButton(0))
        {
           
            follow.position =  Input.mousePosition;
        }

第二个方法:在Update函数中执行

        Vector3 V = Input.mousePosition;
         Vector3 V2 = new Vector3(V.x-Screen.width/2,V.y-Screen.height/2);
         follow.localPosition = V2;

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

第三个方法:结合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;
     
  }

这样就可以用鼠标拖动UI系统的panel了


版权声明:本文为tianyongheng原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。