• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Manually trigger pointerEvent on a game object——用代码触发游戏物体上的Pointer Event事件

武飞扬头像
dzj2021
帮助5

本文主要讨论的问题:

  • 1、事件的管理,事件触发,事件响应实现
  • 2、不同的平台(设备)操作内容,如何归并到统一的事件接口里
  • 3、 如何用EventSystems手动分发一个EventTrigger事件
  • 4、为OnPointerDown事件绑定一个实现的方法

一、事件的管理,事件触发,事件响应实现

  • 1、事件系统-EventSystems分发事件
  • 2、事件触发器-EventTrigger触发对应的事件
  • 3、注册到事件的函数-OnBeginDrag(PointerEventData data){…}完成具体的实现

大概是这个样子:

学新通

二、不同的平台(设备)操作内容,如何归并到统一的事件接口里

举例:在桌面模式,鼠标点物体的时候,我们激发OnPointerDown事件;同理,如果收一体机头盔,左右手柄的touch键或者trigger键点击到物体的时候,我们都指定响应OnPointerDown事件

平台 交互的内容 统一后的事件注册接口
PC桌面 鼠标任意键点击到GameObject OnPointerDown()
VR 头盔手柄 左右手柄【touch/trigger键】点击GameObject OnPointerDown()

学新通

框架搭建的好,那么一套逻辑多处使用!!!!

三、如何用EventSystems手动分发一个EventTrigger事件

举例:如何分发一个OnPointerDown事件

//分发事件:OnPointerDown()
PointerEventData eventData = new PointerEventData(EventSystem.current)
ExecuteEvents.Execute(myGameObject, eventData, ExecuteEvents.pointerDownHandler);//分发物体的Down事件

四、为OnPointerDown事件绑定一个实现的方法

此处用到一个扩展方法AddListener,请参考之前的博文:

如何用AddListener为PointerEvent增加事件绑定

//Down事件
myGameObject.GetComponent<EventTrigger>().AddListener(EventTriggerType.PointerDown, (PointerEventData eventData) =>
{
    Debug.Log($"{go.name} PointerDown()");
});

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfiacjb
系列文章
更多 icon
同类精品
更多 icon
继续加载