//COLOCA OBJETOS EN UNA CELDA DE LA CUADRICULA. void changeObjectCell() //Función que asigna una celda de la cuadricula a un objeto nuevo o la reasigna cuando este ya estaba en la cuadricula. { setSceneState("InGame"); MovableObject movObject = objectToMove.GetComponent <MovableObject>(); bool isNew = true; if (movObject.objectCell) { movObject.objectCell.setOccupied(false); isNew = false; } //Guardamos en una lista el objeto colocado en escena si no estaba ya en ella. if (isNew) { if (movObject.gameObject.tag == "Tree") { gridObjects.Add(cellToOcupate.GetComponent <Cell>().getIDCell(), tree); GameData.currentGame.gridObjects = gridObjects; payTree(); //Se decrementa recursos por el precio del nuevo objeto Tree. } else if (movObject.gameObject.tag == "Pig") { gridObjects.Add(cellToOcupate.GetComponent <Cell>().getIDCell(), pigPrefab); GameData.currentGame.gridObjects = gridObjects; payPig(); //Se decrementa recursos por el precio del nuevo objeto Pig. } } else { if (gridObjects.Remove(movObject.objectCell.getIDCell())) { if (movObject.gameObject.tag == "Tree") { gridObjects.Add(cellToOcupate.GetComponent <Cell>().getIDCell(), tree); } else if (movObject.gameObject.tag == "Pig") { gridObjects.Add(cellToOcupate.GetComponent <Cell>().getIDCell(), pigPrefab); } GameData.currentGame.gridObjects = gridObjects; } } movObject.objectCell = cellToOcupate.GetComponent <Cell>(); movObject.objectCell.setOccupied(true); movObject.objectCell.GetComponent <BoxCollider2D>().enabled = false; movObject.transform.position = movObject.objectCell.transform.position; Debug.Log("Hecho"); cellToOcupate = null; objectToMove = null; movObject.adjustToPosition(); movObject.objectState = "Waiting"; movObject.getCollider().enabled = true; audioScript.MakePopSound(); //Genera sonido al colocar un objeto en la malla SaveGame(); //Guardado estado del juego automatico. }