using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using UnityEngine.EventSystems; public class UI_BuildInfo : MonoBehaviour { public int buildId; public Action touchDownAC = null; public Action touchUpAC = null; /// /// 按下 /// private void OnMouseDown() { if (IsPointerOverUIObject()) { return; } if (touchDownAC != null) { touchDownAC(buildId); } } /// /// 抬起 /// private void OnMouseUp() { if (IsPointerOverUIObject()) { return; } if (touchUpAC != null) { touchUpAC(buildId); } } /// /// 是点否在UI上 /// /// 结果 private bool IsPointerOverUIObject() { PointerEventData eventDataCurrentPosition = new PointerEventData(EventSystem.current); eventDataCurrentPosition.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y); List results = new List(); EventSystem.current.RaycastAll(eventDataCurrentPosition, results); return results.Count > 0; } }