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(); } }
public void RaycastInGrid() { if (m_Grid == null || m_Camera == null) { 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; } Vector3 hitPosition = hit.point; Vector3 difference = hitPosition - m_Offset; int x = (int)(difference.x / m_NodeSize); int y = (int)(difference.z / m_NodeSize); m_Grid.SelectCoordinate(new Vector2Int(x, y)); } else { m_Grid.UnselectNode(); } }
public void RaycastInGrid() { if (m_Grid == null || m_Camera == null) { 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(GetGridCoordinate(hit.point)); /*if (Input.GetMouseButtonDown(0)) * { * Node node = m_Grid.GetNode(x, y); * if (m_Grid.ChangeNodeOccupationStatus(new Vector2Int(x, y), !node.IsOccupied)) * { * m_Grid.UpdatePathfinding(); * } * }*/ } }
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; } Vector3 hitPosition = hit.point; Vector3 difference = hitPosition - m_Offset; int x = (int)(difference.x / m_NodeSize); int y = (int)(difference.z / m_NodeSize); /* * if (Input.GetMouseButtonDown(0)) * { * m_Grid.TryOccupyNode(new Vector2Int(x, y)); * } */ m_Grid.SelectCoordinate(new Vector2Int(x, y)); } else { m_Grid.UnselectNode(); } }
// Identical to the one we wrote on the lesson public void RaycastInGrid() { if (m_Grid == null || m_Camera == null) { 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; } Vector3 hitPosition = hit.point; Vector3 difference = hitPosition - m_Offset; int x = (int)(difference.x / m_NodeSize); int y = (int)(difference.z / m_NodeSize); //Debug.Log(x + " " + y); m_Grid.SelectCoordinate(new Vector2Int(x, y)); /*if (Input.GetMouseButtonDown(0)) * { * Node node = m_Grid.GetNode(x, y); * m_Grid.TryOccupyNode(new Vector2Int(x, y), !node.IsOccupied); * }*/ } else { m_Grid.UnselectNode(); } }