[Unity Touch Count忽略Ui输入

问题描述 投票:-1回答:2

我想问一个问题。我有一个简单的游戏,当用户触摸屏幕时,玩家会跳。我已经使用touchCount实现了这一点,因为当touchCount = 1时,玩家会跳转。但是问题在于屏幕上有一个按钮,因此当用户按下按钮时,touchCount会被验证并且播放器会跳转。因此,如何仅在用户触摸屏幕的非ui部分时启用播放器跳转。预先感谢。

c# unity3d game-development
2个回答
0
投票

这是给Android使用的吗?>

我建议使用内置的ui按钮来统一定义活动位置,我认为这应该自动适用于android。

或您可以对触摸的位置进行if陈述,因此,如果该位置低于或高于某个特定点,它将不会激活。


0
投票

您可以使用EventSystem.current.IsPointerOverGameObject添加检查UI上是否正在发生触摸>

API的用法示例:

EventSystem.current.IsPointerOverGameObject

然后,您可以使用// Check if there is a touch if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began) { // Check if finger is over a UI element if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)) { Debug.Log("Touched the UI"); } } 将此条件用作过滤器,以便仅考虑不使用UI通过UI进行的那些触摸。

Linq Where    
© www.soinside.com 2019 - 2024. All rights reserved.