public GameObject Spawn() { GameObject piece; Vector3 position; int x = 6; int y = 19; position = new Vector3(holder.FindTileByCoordenate(x, y).transform.position.x, holder.FindTileByCoordenate(x, y).transform.position.y, 0.0f); piece = Instantiate(GetRandomSpecificPiece(), position, Quaternion.Euler(0, 0, 0)); GameObject[] quadrados; quadrados = piece.GetComponent <ShapeControler>().squares; //Set tiles da nova forma switch (piece.GetComponent <ShapeControler>().type) { case ShapeType.I: quadrados[0].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x - 2, y)); quadrados[1].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x - 1, y)); quadrados[2].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x, y)); quadrados[3].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x + 1, y)); break; case ShapeType.J: quadrados[0].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x - 1, y + 1)); quadrados[1].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x - 1, y)); quadrados[2].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x, y)); quadrados[3].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x + 1, y)); break; case ShapeType.L: quadrados[0].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x + 1, y + 1)); quadrados[1].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x - 1, y)); quadrados[2].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x, y)); quadrados[3].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x + 1, y)); break; case ShapeType.O: quadrados[0].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x, y + 1)); quadrados[1].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x + 1, y + 1)); quadrados[2].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x, y)); quadrados[3].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x + 1, y)); break; case ShapeType.S: quadrados[0].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x - 1, y + 1)); quadrados[1].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x - 1, y)); quadrados[2].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x, y)); quadrados[3].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x, y - 1)); break; case ShapeType.T: quadrados[0].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x, y + 1)); quadrados[1].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x - 1, y)); quadrados[2].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x, y)); quadrados[3].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x + 1, y)); break; case ShapeType.Z: quadrados[0].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x, y + 1)); quadrados[1].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x, y)); quadrados[2].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x - 1, y)); quadrados[3].GetComponent <QuadradoScript>().SetTile(holder.FindTileByCoordenate(x - 1, y - 1)); break; } return(piece); }