UI事件处理接口

拖动接口

public class TestDrag : MonoBehaviour,IInitializePotentialDragHandler,
IBeginDragHandler,IDragHandler,IDropHandler,IEndDragHandler//开始之前(鼠标点击时)
    //开始拖动 拖动中 拖动放下 结束拖动(执行顺序也是如此)

其他四个接口都必须现在实现了拖动中接口(IDragHandler)前提下才能起作用

例子:鼠标拖动物体移动(类似于背包系统)

public class TestDrag : MonoBehaviour,IDragHandler
{
    public void OnDrag(PointerEventData eventData)
      {//法一:
        //RectTransform rect = transform.GetComponent<RectTransform>();
        //Vector3 newpos = Vector3.back;
        //RectTransformUtility.ScreenPointToWorldPointInRectangle(rect, eventData.position,
            //eventData.enterEventCamera, out newpos);
       //rect.position = newpos;
       //法二:
       var rect = transform.GetComponent<RectTransform>();
        rect.anchoredPosition +=eventData.delta;//鼠标2次移动的距离差
        //用锚点的位置改变物体位置,更好
        }
}

 鼠标接口:

public class TestDrag : MonoBehaviour,IPointerEnterHandler,IPointerExitHandler,
    IPointerDownHandler,IPointerUpHandler,IPointerClickHandler
    //鼠标进入 退出 按下 点击 抬起(执行顺序也如此)

Up与Click都是鼠标按下再抬起才执行,但Click必须保证抬起鼠标时鼠标位置也在物体上

选中接口: 

public class TestDrag : MonoBehaviour,ISelectHandler,IUpdateSelectedHandler,
IDeselectHandler//第一个只执行一次,第二个选中时一直执行(类似于Update)

必须在物体身上挂载Selectable组件

按键接口:

public class TestDrag : MonoBehaviour,IScrollHandler,ISubmitHandler,ICancelHandler,
IMoveHandler//滚轮 提交按钮 取消按钮 移动按钮

必须挂载Selectable组件,且物体处于选中转态,滚轮接口还要求鼠标停留在物体上

对应的按键在EventSystem面板查看(也就是自定义的虚拟按键)

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值