博客
关于我
[Unity踩坑记录] 在电脑上开发并调试触摸相关事件
阅读量:499 次
发布时间:2019-03-07

本文共 1186 字,大约阅读时间需要 3 分钟。

触摸操作在iPad上的开发及优化总结

在做iPad上的触摸操作开发过程中,我们遇到了一些在电脑上测试没有问题,但在实际运行中会出现的问题。经过查阅资料和经验总结,以下是问题分析及解决方案:

问题分析

在开发过程中,发现以下几点问题较为突出:

  • 触摸事件的输入API限制:Unity中使用Input.GetTouch来接收触摸事件的方式有其局限性,无法通过鼠标点击来触发该接口。

  • 触摸与鼠标事件的相互独立性:虽然在Unity中触摸事件可以触发鼠标相关的事件,但反之也是不成立的。这种双向不受控的特性在实际开发中带来了不少麻烦。

  • 触摸手指位置的误判问题:当手指脱离屏幕后,Input.GetAxis("Mouse X")Input.GetAxis("Mouse Y")会持续输出基于当前鼠标位置的坐标值。这种情况下,旋转屏幕或手指移动会导致不连续性,造成不预期的操作过渡效果。

  • 问题产生的主要原因

    结合上述问题,我们发现其主要原因是触摸手指与鼠标输入方式在逻辑上具有根本性差异。具体表现为:

  • 触摸手指的可脱离性:触摸操作的本质是手指可以在任何时候从屏幕上脱离,这与鼠标的按下按住的特性存在本质区别。

  • 坐标更新机制的不一致性:触摸手指的位置变化和鼠标的坐标更新存在差异。一旦手指脱离屏幕,下一次触摸会基于撤销上一次坐标的位置进行相对计算,这种算法容易导致不连贯的跳跃效果。

  • 解决方案

    针对上述问题,我们在开发过程中采取了以下几个策略:

  • 触摸事件优化:尽量减少使用Input.GetAxis("Mouse"),而是通过自定义触摸事件与手指坐标参数进行操作。这样可以避免因坐标误差或更新机制问题带来的意外效果。

  • 手指状态监控:在处理触摸时,监控手指的进入和退出屏幕状态。这可以通过检测触摸手指的位置相对于屏幕边缘的组合 COPYING),或者通过持续监测触摸手势的状态来实现。

  • 自定义触摸判断逻辑:根据具体应用需求,进行自定义判断逻辑。例如,在手指自然离开屏幕时,可以设置一个重置点或等待点,以避免不需要的触摸反馈。

  • 摇晃处理优化:针对旋转屏幕时的触摸问题,通过检测屏幕旋转角度,并根据设置进行适应性调整。通常可以通过调整触摸点的动态范围或启用防抖动算法来解决这一问题。

  • 实践经验

    经过上述优化教学和实际应用,效果明显:

  • 触摸事件的连贯性和准确性得到显著提升。

  • 在开发过程中的调试难度大幅降低,特别是在处理触摸动作时可以更加直观地预测操作效果。

  • 应用适配性更强,能够更好地应对不同设备和操作环境下的差异化需求。

  • 总结

    触摸操作的开发需要充分考虑其本质特性,不同于鼠标输入,其同时支持和支持脱离屏幕的特性决定了开发中的特殊难点。通过深入理解触摸事件机制的特点,并结合具体应用需求,有助于找到更适合的解决方案。这不仅有助于直接解决开发中的技术难点,也有助于提升应用的整体性能和用户体验。

    转载地址:http://wvacz.baihongyu.com/

    你可能感兴趣的文章
    Node-RED中使用JSON数据建立web网站
    查看>>
    Node-RED中使用json节点解析JSON数据
    查看>>
    Node-RED中使用node-random节点来实现随机数在折线图中显示
    查看>>
    Node-RED中使用node-red-browser-utils节点实现选择Windows操作系统中的文件并实现图片预览
    查看>>
    Node-RED中使用node-red-contrib-image-output节点实现图片预览
    查看>>
    Node-RED中使用node-red-node-ui-iframe节点实现内嵌iframe访问其他网站的效果
    查看>>
    Node-RED中使用Notification元件显示警告讯息框(温度过高提示)
    查看>>
    Node-RED中使用range范围节点实现从一个范围对应至另一个范围
    查看>>
    Node-RED中实现HTML表单提交和获取提交的内容
    查看>>
    Node-RED中将CSV数据写入txt文件并从文件中读取解析数据
    查看>>
    Node-RED中建立TCP服务端和客户端
    查看>>
    Node-RED中建立Websocket客户端连接
    查看>>
    Node-RED中建立静态网页和动态网页内容
    查看>>
    Node-RED中解析高德地图天气api的json数据显示天气仪表盘
    查看>>
    Node-RED中连接Mysql数据库并实现增删改查的操作
    查看>>
    Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
    查看>>
    Node-RED中配置周期性执行、指定时间阶段执行、指定时间执行事件
    查看>>
    Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
    查看>>
    Node-RED怎样导出导入流程为json文件
    查看>>
    Node-RED订阅MQTT主题并调试数据
    查看>>