public void RaycastInGrid() { if (m_Grid == null || m_Camera == null) { return; } if (EventSystem.current != null && EventSystem.current.IsPointerOverGameObject()) { return; } Vector3 mousePosition = Input.mousePosition; Ray ray = m_Camera.ScreenPointToRay(mousePosition); if (Physics.Raycast(ray, out RaycastHit hit)) { if (hit.transform != transform) { m_Grid.UnselectNode(); return; } m_Grid.SelectCoordinate(m_Grid.GetNodeCoordinateAtPoint(hit.point)); } else { m_Grid.UnselectNode(); } }