EventTrigger和鼠标事件接口

EventTrigger将鼠标事件进行了一层封装,只要重写EventTrigger里面的对应的虚函数,就能实现鼠标对应的方法。

~

public class UIeventTrigger : EventTrigger
{

    public override void OnPointerEnter(PointerEventData eventData)//鼠标进入
    {
        base.OnPointerEnter(eventData);
        print("进入了");
    }
    public override void OnPointerExit(PointerEventData eventData)//鼠标移出
    {
        base.OnPointerExit(eventData);
        print("出来了");
    }
    Vector3 pos1;//开始的位置
    Vector3 pos2;//结束的位置
    float distance;//鼠标滑动的距离
    public override void OnBeginDrag(PointerEventData eventData)//开始拖拽
    {
        base.OnBeginDrag(eventData);
        print("开始拖拽时间:"+Time.time);
        pos1 = Input.mousePosition;
    }
    public  bool isdrage;
    public override void OnDrag(PointerEventData eventData)//鼠标拖拽
    {
        base.OnDrag(eventData);
        print("拖得动吗");
        isdrage = true;
        print("拖。。。"+Time.time);
    }
    public override void OnEndDrag(PointerEventData eventData)//鼠标结束拖拽
    {
        base.OnEndDrag(eventData);
        pos2 = Input.mousePosition;
        distance = Vector3.Distance(pos1,pos2);
        Vector3 op = pos2 - pos1;
        print("在x方向拖动距离:"+(pos2.x-pos1.x));
        print("在y方向的距离:" + (pos2.y - pos1.y));
        print("鼠标拖拽的距离1:"+distance);
        print("鼠标拖拽的距离2:" + op.magnitude);
        print("结束拖拽时间:"+Time.time);
    }

    public override void OnPointerUp(PointerEventData eventData)//鼠标抬起
    {
        base.OnPointerUp(eventData);
        isdrage = false;
    }
    public override void OnDrop(PointerEventData eventData)//?还不清楚有什么用处
    {
        base.OnDrop(eventData);     
    }
    public override void OnInitializePotentialDrag(PointerEventData eventData)//拖拽前的初始化
    {
        base.OnInitializePotentialDrag(eventData);
        print("初始化~~~拖拽" + Time.time);
    }
    public override void OnPointerClick(PointerEventData eventData)//鼠标点击
    {
        base.OnPointerClick(eventData);
    }

    public override void OnScroll(PointerEventData eventData)//鼠标滚轮
    {
        base.OnScroll(eventData);
        print("滚了么");
    }

    // Use this for initialization
    void Start () {

    }


    // Update is called once per frame
    void Update ()
    {
        if (isdrage==true)
        {
            this.transform.position = Input.mousePosition;        
        }
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值