穿透:
if (Input.GetMouseButton (0)) { Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition); RaycastHit hit; if (Physics.Raycast (ray, out hit)) { //需要执行的事件 } }
解决穿透:
if (Input.GetMouseButton (0)) { if(UICamera.hoveredObject == null) { Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition); RaycastHit hit; if (Physics.Raycast (ray, out hit)) { //需要执行的事件 } } }
添加 if(UICamera.hoveredObject == null) ,判断是否在ngui对象上,以此来进行拦截。