private void DeployUnit(UnitScript unit) { Vector3Int gridClickPos; // obtiene el tile en el que se hizo click if (!ClickOnGrid(out gridClickPos)) { return; } // comprueba si hizo click sobre la zona de despliegue if (!map.CanDeployInPos(gridClickPos)) { return; } // comprueba que el click de posicionamiento no haya sido sobre otra unidad foreach (UnitScript otherUnit in army) { Vector3Int gridUnitPos = map.GetGridTile(otherUnit.GetPosition()); // comprueba si la posicion de despleigue conincide con la de otra unidad ya desplegada if (gridUnitPos.x == gridClickPos.x && gridUnitPos.y == gridClickPos.y) { // deselecciona el boton deployUnitType = -1; return; } } // setea la unidad en la posicion y direccion adecuada Vector3 desplyPosition = map.GetWorldPos(gridClickPos); unit.Deploy(desplyPosition); if (GameManager.instance.playerBattleSide == 1) { unit.flipUnit(); } unit.gameObject.SetActive(true); // actualiza la lista para desplegar y el panel GameManager.instance.unitsToBattle.Remove(unit.unitType); canvas.UpdateDeploymentPanel(); // deselecciona el boton deployUnitType = -1; unitTypesList.Add(unit.unitType); unitPositionsList.Add(unit.transform.position); }