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");
}
}
}
用于可穿透点击:点击区域并且可以出现下面的点击事件

浙公网安备 33010602011771号