首页 新闻 会员 周边 捐助

Unity safearea外多指触控异常

0
悬赏园豆:100 [待解决问题]

求助大佬们,在我的2D Unity手游项目里,我已经把MultiTouchEnabled设为false了,并且有用SafeArea来做异形屏的适配。
当在SafeArea范围内的时候,手机点击下去且不松开,然后把该手指移出safearea 范围后,可以用另一个手指来点击,并且会记录并反映点击事件。(应该来说怎么样都不应该记录第二个手指点击)
游戏是一款合成游戏,棋盘上的棋子是用Input的touch的,而UI用的UGUI用的是EventSystem的点击事件来触发的。只要手指拖动一个棋子到safe area之外,就可以继续用另一根手机拖动其他棋子或者点击UI。
在SafeArea的范围之内一切正常。
并且目前只在刘海屏和灵动道的iOS设备上有发现该问题,在安卓设备上(不管是不是异形屏)都没有该问题。

请问各位大佬有什么想法吗?

ryanh16的主页 ryanh16 | 初学一级 | 园豆:102
提问于:2024-09-03 13:45
< >
分享
所有回答(1)
0

来自AI:

根据你的描述,问题似乎是由于异形屏的适配和触摸事件处理引起的。在 SafeArea 范围内,你已经成功地禁用了多点触摸,并且只有一个手指可以触发事件。然而,在 SafeArea 范围外,另一个手指仍然可以触发事件。
这个问题可能是由于 Unity 的输入系统和触摸事件处理的机制导致的。在某些情况下,即使设置了 MultiTouchEnabled 为 false,仍然可能允许多个手指触发事件。
在处理异形屏适配和触摸事件之前,我建议你尝试以下步骤来解决这个问题:

  1. 在代码中增加对触摸事件的过滤。当手指触摸点在 SafeArea 范围内时,才允许触发事件,否则忽略触摸事件。可以使用 RectTransformUtilityRectangleContainsScreenPoint 方法来判断触摸点是否在 SafeArea 范围内。
  2. 确保 Unity 和游戏引擎的版本是最新的。有时,Unity 在不同版本中可能会存在触摸事件处理的 bug,更新到最新版本可能会修复这些问题。
  3. 尝试使用不同的触摸事件处理方式,例如使用 Input.GetMouseButtonDownInput.GetMouseButton 来处理触摸事件,而不是使用 Input.touchCount 来判断触摸点的数量。
    如果以上方法都不起作用,你可能要考虑更深入地调试触摸事件处理的代码,或者与 Unity 的技术支持或开发者社区讨论该问题,以获取更具体的解决方案。
    希望这些建议能帮到你解决问题!如果你有任何其他问题,请随时提问。
Technologyforgood | 园豆:7775 (大侠五级) | 2024-09-04 07:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册