EventSystem的事件触发和pointer类执行顺序

上一篇写了Event Trigger的触发事件方法。这篇写EventSystem的触发事件方法。这两个方法都可以用来触发3D和2D事件。而且场景中都必须存在EventSystem这个GameObject。


下面图片就是EventSystem的事件里的方法。而Event Trigger里没有下图中的input输入类。其他都一样。



下面讲EventSystems的触发事件方法

具体步骤如下(方法非常简单,只要将下列代码绑定到物体上就可以触发事件了):


1)首先把代码写上(如下):

注意:脚本TT必须继承这些类(如IPointerEnterHandler, IPointerExitHandler等等)。代码的log中已经说明了每个方法的意思。

using UnityEngine;
using UnityEngine.EventSystems;
public class TT : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler, IPointerUpHandler, IPointerDownHandler
{

    // Use this for initialization
    void Start()
    {
       
    }

    // Update is called once per frame
    void Update()
    {

    }
   

    public void OnPointerEnter(PointerEventData eventdata)
    {
        Debug.Log("4enter进入");
    }

    public void OnPointerExit(PointerEventData eventdata)
    {
        Debug.Log("5exit离开");
    }
    public void OnPointerClick(PointerEventData eventdata)
    {
        Debug.Log("6click点击");
    }

    public void OnPointerDown(PointerEventData eventdata)
    {
        Debug.Log("8down按下");
    }

    public void OnPointerUp(PointerEventData eventdata)
    {
        Debug.Log("7up抬起");
    }
}



2)将TT方法绑定到一个图片(图中图片为绿色)就可以执行方法了;

测试步骤是鼠标从外面进入图片、然后点击图片、之后离开图片区域。从log可以看出这些方法的执行顺序。

注意:点击事件在抬起事件之后执行



3)测试3D物体的方法与2D图片完全一样,把TT脚本绑定给cube,然后给相机加上physics raycaster这个组件就OK。

测试方法也同上,效果如下图:



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值