如图点击面板会同时点击到人物。在人物控制器脚本中加入以下代码 绑定canvas的graphicRaycaster和场景的eventSystem
public graphicRaycaster
public eventSystem
void OnMouseDown()
{
if (CheckGuiRaycastObjects())//检测到的物体有多个不执行点击事件
{
return;
}
this.Interactive();
}
public bool CheckGuiRaycastObjects()
{
PointerEventData eventData = new PointerEventData(eventSystem);
eventData.pressPosition = Input.mousePosition;
eventData.position = Input.mousePosition;
List<RaycastResult> list = new List<RaycastResult>();
graphicRaycaster.Raycast(eventData,list);
return list.Count > 0;
}