Пример #1
0
 void OnTriggerEnter(Collider cell)
 {
     if (cell.gameObject.layer == LayerMask.NameToLayer("Cells"))
     {
         //Nos guardamos el componente HexCell, bien de la propia celda o de su padre (porque depende de la celda)
         HexCell cellCollided = cell.gameObject.GetComponent <HexCell>();
         if (cellCollided == null)
         {
             cellCollided = cell.gameObject.GetComponentInParent <HexCell>();
         }
         //Antes de actualizar vaciamos la celda anterior y la oscurecemos de nuevo, esto último solamente si no era de tipo ciudad
         if (currentCell != null)
         {
             currentCell.unitInside = null;
             if (!lastCellIsCity)
             {
                 currentCell.ToneDown();
             }
         }
         //Ahora ya actualizamos a la nueva celda
         currentCell            = cellCollided;
         currentCell.unitInside = this;
         //Para el color depende si la celda es una ciudad, porque esas se pueden controlar y entonces hay que resaltar del color de la facción
         if (cellCollided.Type != HexCell.CellType.CITYENERGY && cellCollided.Type != HexCell.CellType.CITYMATS &&
             cellCollided.Type != HexCell.CellType.CITYMOON)
         {
             //Hacemos highlight de la celda
             currentCell.Highlight();
             lastCellIsCity = false;
         }
         else
         {
             cellCollided.TurnToColor(CityColor);
             cellCollided.faction = myFaction;
             faction.AddCity(cell.gameObject.GetComponentInParent <CityCell>());
             lastCellIsCity = true;
         }
     }
 }