static public bool IsClickUIBtn(string[] ignoreTags = null)
{
PointerEventData eventDataCurrentPosition = new PointerEventData(EventSystem.current);
eventDataCurrentPosition.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
List<RaycastResult> results = new List<RaycastResult>();
EventSystem.current.RaycastAll(eventDataCurrentPosition, results);
for (int i = results.Count - 1; i >= 0; i--)
{
if (!results[i].gameObject.GetComponent<UnityEngine.UI.Button>())
results.RemoveAt(i);
}
if (ignoreTags != null && results.Count > 0)
{
List<string> tag = new List<string>(ignoreTags);
for(int i = results.Count - 1; i >= 0; i--)
{
if (tag.Contains(results[i].gameObject.tag))
results.RemoveAt(i);
}
}
return results.Count > 0;
}
Unity判断是否点击到UI按钮
最新推荐文章于 2024-03-07 09:19:53 发布