Unity 手指检测屏幕点击区域
if (Input.GetMouseButtonDown(0) || (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)) { /* Ray ray = uiCamera.ScreenPointToRay(Input.mousePosition); var hitCount = Physics.RaycastNonAlloc(ray,m_hit,1000, m_layerMask); Debug.DrawRay(ray.origin,ray.direction*1000,Color.red,10); if (hitCount > 0) { Debug.Log("IsPickDown......"); Debug.DrawLine(ray.origin, m_hit[0].point, Color.green); GameObject hitObj = m_hit[0].collider.gameObject; if (hitObj.tag == "DispatchMap") { } }*/ /* RaycastHit2D hit = Physics2D.Raycast(uiCamera.ScreenToWorldPoint(Input.mousePosition), uiCamera.transform.forward, 1000); if (hit.collider != null) { print("按下3"); }*/ #if UNITY_ANDROID || UNITY_IPHONE if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)) #else if (EventSystem.current.IsPointerOverGameObject()) #endif { PointerEventData pe = new PointerEventData(EventSystem.current); pe.position = Input.mousePosition; EventSystem.current.RaycastAll(pe, m_hit); bool isClose = true; for (int i = 0; i < m_hit.Count; i++) { if (m_hit[i].gameObject.tag == "CommonTipBg") { isClose = false; break; } } if (isClose) { LuaManager.Instance.CSharpCallLuaLogic("CloseCommonTipsFunc"); } } }
用于可穿透点击:点击区域并且可以出现下面的点击事件