bool IsFointOnUI(int fingerIndex, Vector2 position)
{
if (Input.GetMouseButtonDown(0) || (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began))
{
//屏幕触摸触发
#if UNITY_EDITOR
if (EventSystem.current.IsPointerOverGameObject())
#else
if (EventSystem.current.IsPointerOverGameObject(fingerIndex))
#endif
{
return false;
}
return true;
}
return false;
}
FingerGestures.GlobalTouchFilter = IsFointOnUI;
也就是把判断函数,加入他的GlobalTouchFilter回调。
一般情况,判定鼠标是否在UGUI上是这么写
void Update()
{
// Check if the left mouse button was clicked
if (Input.GetMouseButtonDown(0))
{
// Check if the mouse was clicked over a UI element
if (EventSystem.current.IsPointerOverGameObject())
{
Debug.Log("Clicked on the UI");
}
}
}
判定触屏是否在UGUI上这么写
void Update()
{
// 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");
}
}
}