我想问一个问题。我有一个简单的游戏,当用户触摸屏幕时,玩家会跳。我已经使用touchCount实现了这一点,因为当touchCount = 1时,玩家会跳转。但是问题在于屏幕上有一个按钮,因此当用户按下按钮时,touchCount会被验证并且播放器会跳转。因此,如何仅在用户触摸屏幕的非ui部分时启用播放器跳转。预先感谢。
这是给Android使用的吗?>
我建议使用内置的ui按钮来统一定义活动位置,我认为这应该自动适用于android。
或您可以对触摸的位置进行if陈述,因此,如果该位置低于或高于某个特定点,它将不会激活。
您可以使用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