Unity的射线判定问题 - chunlieater/chunlifeet GitHub Wiki
- 让UI遮挡摄像机的射线:如果射线可能经过UI,那么UI就应该遮挡射线,所以要先判断当前点击的位置上是否有UI判定,如果有,那么就不进行场景的射线投射,判定方式是利用EventData来获取当前Raycast对象的数组,根据数组是否为空,判断当前的点击坐标是否在UI界面上,如果是,则返回本次点击。具体方法如下:
- pairvate bool CheckGuiRaycastObject(){
- PointerEventData pEventData = new pointerEventData(_eventSystem);
- pEventData.pressPosition = Input.mousePosition;
- pEventData.position = Input.mousePosition;
- List list = new List();
- grahicRaycaster.Raycast(eventData,list);
- return list.Count > 0;
- }