我是半路进入项目的,项目的一些3D功能已经写好了,3D的射线监测用的时
Ray ray = cam.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
Physics.Raycast(ray, out hit);
解决办法:
if (Input.GetMouseButtonDown(0))
{
if (PublicClass.IsUIStopRay)
{
if (EventSystem.current.IsPointerOverGameObject())
return;
}
switch (cameraType)
{
case CameraType.playerA:
GetHit(opratorCam[0], Input.mousePosition);
break;
case CameraType.playerB:
GetHit(opratorCam[1], Input.mousePosition);
break;
//case CameraType.playerAll:
// GetHit(opratorCam[0], Input.mousePosition);
// GetHit(opratorCam[1], Input.mousePosition);
// break;
}
}
PublicClass.IsUIStopRay 控制是否监测点击到UI
当点击到UI时,EventSystem.current.IsPointerOverGameObject()会返回true
但是缺点是,所有的UI都会监测到,无论是不是透明,在Canvas上也会监测到