private RaycastResult RaycastAll(Vector2 ptInScreen) { Matrix4x4 matWorldClip = uiCamera.projectionMatrix * uiCamera.worldToCameraMatrix; if (previousResult != null && previousResult.raycastTarget && graphicContainsPoint(ptInScreen, previousResult, uiCamera, matWorldClip, screenScale, supportCanvasGroupsAndDragging)) { return(createRaycastResult(ptInScreen, previousResult)); } previousResult = null; fallbackElement = null; IList <Graphic> graphicsForCanvas = GraphicRegistry.GetGraphicsForCanvas(canvas); int count = graphicsForCanvas.Count; for (int i = 0; i < count; i++) { Graphic graphic = graphicsForCanvas[i]; if (graphic.raycastTarget && graphicContainsPoint(ptInScreen, graphic, uiCamera, matWorldClip, screenScale, supportCanvasGroupsAndDragging)) { EmptyGraphic emptyGraphic = graphic as EmptyGraphic; if (!(emptyGraphic != null) || !emptyGraphic.lowPriorityTarget) { previousResult = graphic; return(createRaycastResult(ptInScreen, graphic)); } fallbackElement = emptyGraphic; } } if (fallbackElement != null) { return(createRaycastResult(ptInScreen, fallbackElement)); } return(default(RaycastResult)); }
void OnEnable() { script = target as EmptyGraphic; }