void Update() { if (_selectInfra) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { HexTile tile = hit.collider.GetComponentInParent <HexTile>(); if (tile) { if (_selectTile == tile) { if (Input.GetMouseButtonDown(0)) { if (_selectTile.colony[1]) { BuildInfra(_selectInfra, _selectTile, 1); } else if (_selectTile.colony[2]) { BuildInfra(_selectInfra, _selectTile, 2); } else if (_selectTile.colony[0]) { BuildInfra(_selectInfra, _selectTile, 0); } } return; } else if (_selectTile) { _selectTile.RemoveColor(Color.red); _selectTile = null; } if (tile.infra) { return; } for (int i = 0; i < tile.nears.Count; i++) { if (tile.nears[i].infra) { if (tile.nears[i].infra.team == _selectInfra.team) { return; } } } _selectTile = tile; _selectTile.AddColor(Color.red); } } } }