Manually trigger pointerEvent on a game object——用代码触发游戏物体上的Pointer Event事件
本文主要讨论的问题:
- 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
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13