private void selectBuildings(Vector2 start, Vector2 end) { Vector2 newStart = camera.ScreenToWorldPoint(start); Vector2 newEnd = camera.ScreenToWorldPoint(end); float width = Math.Abs(newStart.x - newEnd.x); float height = Math.Abs(newStart.y - newEnd.y); if (Math.Abs(width) > .25f || Math.Abs(height) > .25f) { GameObject selectorBox = new GameObject(); BoxCollider2D box = selectorBox.AddComponent <BoxCollider2D>(); SelectionBox select = selectorBox.AddComponent <SelectionBox>(); Rigidbody2D body = selectorBox.AddComponent <Rigidbody2D>(); select.setGameRun(this); body.gravityScale = 0; box.isTrigger = true; if (newStart.x > newEnd.x) { box.transform.position = newEnd; } else if (newStart.x <= newEnd.x) { box.transform.position = newStart; } if (newStart.y < newEnd.y) { box.transform.position = new Vector3(box.transform.position.x, newEnd.y); } else if (newStart.y >= newEnd.y) { box.transform.position = new Vector3(box.transform.position.x, newStart.y); } box.offset = new Vector3(width / 2, -height / 2); box.size = new Vector2(width, height); selectedBuildings.AddRange(select.getBuildings()); } }