创建点击事件PointerEventData

//需要在命名空间声明:using UnityEngine.EventSystems;
//EventSystem.current:返回当前事件系统,current:就是一个EventSystem
PointerEventData data = new PointerEventData(EventSystem.current);

PointerEventData .button
触发此事件的按钮

PointerEventData.clickCount
计算按钮连击次数,间隔时间很短

public class ExampleClass : MonoBehaviour, IPointerDownHandler
{
public void OnPointerDown(PointerEventData eventData)
{
int i = eventData.clickCount;
Debug.Log(i);
}
}
1
2
3
4
5
6
7
8
PointerEventData .clickTime
上次发送点击事件的时间。这个时间不是每一次点击都是从新开始计算,会根据上一次的时间继续累加

PointerEventData.delta
自上次更新以来的指针坐标增量变化变化。
没有用到,不知道干嘛的

public class ExampleScript : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
private float timeCount;
private Vector2 deltaValue = Vector2.zero;

public void OnBeginDrag(PointerEventData data)
{
    deltaValue = Vector2.zero;
}

public void OnDrag(PointerEventData data)
{
    deltaValue += data.delta;
    if (data.dragging)
    {
        timeCount += Time.deltaTime;
        if (timeCount > 0.5f)
        {
            timeCount = 0.0f;
            Debug.Log("delta: " + deltaValue);
        }
    }
}

public void OnEndDrag(PointerEventData data)
{
    deltaValue = Vector2.zero;
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
PointerEventData .dragging
返回bool值,判断当前按钮是否在拖动

PointerEventData .enterEventCamera
与最后一个OnPointerEnter事件关联的摄像头。
这个主要用于多相机混合的时候判断当前按钮的事件是由哪个相机触发的.

PointerEventData .hovered
悬停堆栈中的对象列表。
目前发现只能触发该脚本物体上第一个射线检测到的子物体

public void OnPointerEnter (PointerEventData eventData)
{
    for (int i = 0; i < eventData.hovered.Count; i++)
    {
        Debug.Log(eventData.hovered[i].name);
    }
}

1
2
3
4
5
6
7
PointerEventData.lastPress
最后一次按下事件的物体,这个会记录上一次点击到的按钮信息,如果是第一打开面板,没有点击过按钮,这个会报空

PointerEventData.pointerCurrentRaycast
包含当前响应射线检测事件的信息,例如这个gameobject,ui层级等

PointerEventData .pointerDrag
当前触发 OnDrag事件的物体,设置为空的时候不再触发OnDrag和 OnEndDrag .

PointerEventData.pointerEnter
当前触发OnPointerEnter的对象,一般鼠标移动到ui上的时候会触发这个事件,对应的是OnPointerExit,鼠标移出的时候

PointerEventData .pointerId
鼠标点击时的id
-1,-2,-3分别对应鼠标左键,右键和中键,手机端触摸时也有相应的id

PointerEventData .pointerPress
接收OnPointerDown的游戏物体

PointerEventData .pointerPressRaycast
指针按下时响应射线检测的ui,在一次点击事件中不会改变,pointerCurrentRaycast这个会随着拖动等操作变化

PointerEventData .position
当前指针的位置,返回一个vector2向量,这个值是一个屏幕坐标,左下角为原点(0,0),右上角为(屏幕宽,屏幕高),这个屏幕是根据当前分辨率来的

PointerEventData .pressEventCamera
与最后一个OnPointerPress事件关联的摄像头,当没有接收OnPointerDown的游戏物体会报空

PointerEventData.pressPosition
按下的时候的指针位置,同样的一次点击事件只有一个

PointerEventData .rawPointerPress
当前执行事件中的物体,即使这个物体不在能够触发事件,例如关闭或者被销毁(没用过)

PointerEventData .scrollDelta
自上次更新以来的滚动量(没用过)

作者:qq_41056203
来源:CSDN
原文:https://blog.csdn.net/qq_41056203/article/details/84875282
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值