您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

【U3D】UGUI拖拽

public class EventDemo : MonoBehaviour, IPointerClickHandler, IDragHandler,IBeginDragHandler
{
    private Vector2 diffVector;
    public void OnBeginDrag(PointerEventData eventData)
    {
        Vector2 objVector = this.transform.position;
        diffVector = objVector - eventData.position;
    }

    public void OnDrag(PointerEventData eventData)
    {
        //仅适用画布overlay模式,且随鼠标点击位置移动
        this.transform.position = eventData.position + diffVector;

        //画布camera模式,且UI中心随鼠标移动
        //将屏幕坐标转换为物体的世界坐标
        //RectTransform parentRTF = this.transform.parent as RectTransform;
        //Vector3 worldPos;
        //RectTransformUtility.ScreenPointToWorldPointInRectangle(parentRTF, eventData.position, eventData.pressEventCamera, out worldPos);
        //this.transform.position = worldPos;
    }
}

上面示例中,简称画布overlay模式下的示例为A,camera模式下的示例为B(注释部分);其中OnBeginDrag方法是搭配示例A使用的。

示例A、B效果有所区别,可以互相参考并修改成同种效果。


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进