void Update() { //Checks if left mouse button was pressed if (Input.GetMouseButtonDown(0)) { //Checks if mouse is currently over ui element if (!EventSystem.current.IsPointerOverGameObject()) { //Raycast to check for collider under mouse RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.down, 0.1f); int hitx = (int)hit.transform.position.x; int hity = (int)hit.transform.position.y; if (hit.collider != null) { if (TileGenerator.GetTileAt(hitx, hity).ActiveTower != null) { //Checks if object is already selected if (!SelectedObjects.ContainsKey(hit.collider.transform)) { //Checks if holding shift to select multiple if (!Input.GetKey(KeyCode.LeftShift) && !Input.GetKey(KeyCode.RightShift)) { if (SelectedTiles.Count > 0) { //Clears previous selection if shift was not held down ClearSelection(); } } //Add new selection AddSelection(hit.collider.transform); } //Object was already selected else { //Removes selection RemoveSelection(hit.collider.transform); SelectedTiles.Remove(hit.collider.gameObject); } } } } } }