private GameObject ferVoltant(Taulell taulell) { GameObject exterior = new GameObject("BordeExterior"); int x = -1; int y = -1; //Paret exterior verticals for (int i = 0; i < taulell.nFiles; i++) { (Instantiate(this.goParetOutH, new Vector3(-1.28f, i * 1.28f, 0F), Quaternion.identity) as GameObject).transform.SetParent(exterior.transform); (Instantiate(this.goParetOutH, new Vector3(taulell.nColumnes * 1.28f, i * 1.28f, 0F), Quaternion.identity) as GameObject).transform.SetParent(exterior.transform); } //Paret exterior horizontals for (int i = 0; i < taulell.nColumnes; i++) { (Instantiate(this.goParetOutH, new Vector3(i * 1.28f, -1.28f, 0F), Quaternion.identity) as GameObject).transform.SetParent(exterior.transform); (Instantiate(this.goParetOutH, new Vector3(i * 1.28f, taulell.nFiles * 1.28f, 0F), Quaternion.identity) as GameObject).transform.SetParent(exterior.transform); } //Fer els 4 extrems. (Instantiate(this.goParetOutH, new Vector3(-1.28f, -1.28f, 0F), Quaternion.identity) as GameObject).transform.SetParent(exterior.transform); (Instantiate(this.goParetOutH, new Vector3(taulell.nColumnes * 1.28f, taulell.nFiles * 1.28f, 0F), Quaternion.identity) as GameObject).transform.SetParent(exterior.transform); (Instantiate(this.goParetOutH, new Vector3(taulell.nColumnes * 1.28f, -1.28f, 0F), Quaternion.identity) as GameObject).transform.SetParent(exterior.transform); (Instantiate(this.goParetOutH, new Vector3(-1.28f, taulell.nFiles * 1.28f, 0F), Quaternion.identity) as GameObject).transform.SetParent(exterior.transform); return(exterior); }
private void setup(Taulell taulell) { int iRecurs = taulell.nivell % 4; GameObject t = new GameObject("taulell"); t.transform.SetParent(boardHolder); int nMonedes = 0; foreach (Casella casella in taulell) { Posicio pos = casella.getPosicio(); GameObject objecte = null; //<Objecte a instanciar: moneda, pared, sortida... GameObject numero = null; //<Numero de la casella. GameObject terra = Random.Range(0, 3) < 2 ? this.goTerra : this.goTerres[iRecurs]; switch (casella.getElement()) { case Element.MONEDA: objecte = this.goMoneda; numero = this.goNumero; //objecte.transform.SetParent(monedes.transform); nMonedes++; break; case Element.PARED_IN_V: case Element.PARED_IN_H: objecte = this.goParetIn; //Per qualsevol tipus de pared, posem terra normal. terra = this.goTerra; break; case Element.BUIT: numero = this.goNumero; break; } GameObject instanciaTerra = Instantiate(terra, new Vector3(pos.x * 1.28f, pos.y * 1.28f, 0F), Quaternion.identity) as GameObject; instanciaTerra.transform.SetParent(t.transform); if (objecte != null) { //Hi ha objecte en la casella. GameObject instanciaObjecte = Instantiate(objecte, new Vector3(pos.x * 1.28f, pos.y * 1.28f, 0F), Quaternion.identity) as GameObject; instanciaObjecte.transform.SetParent(instanciaTerra.transform); } if (numero != null) { //Hi ha número en la casella. GameObject instanciaNumero = Instantiate(numero, new Vector3(pos.x * 1.28f, pos.y * 1.28f, 0F), Quaternion.identity) as GameObject; instanciaNumero.GetComponent <UnityEngine.UI.Text>().text = "" + casella.getNumero(); //El número també és fill del terra. instanciaNumero.transform.SetParent(instanciaTerra.transform); } } //Instanciar el jugador. GameObject instanciaJugador = Instantiate(this.goJugador, new Vector3(taulell.jugador.posicio.x, taulell.jugador.posicio.y * 0.84f, 0F), Quaternion.identity) as GameObject; instanciaJugador.transform.SetParent(boardHolder); //Instanciar la sortida. GameObject instanciaSortida = Instantiate(this.goSortides[iRecurs], new Vector3(taulell.sortida.posicio.x * 1.28f, taulell.sortida.posicio.y * 1.28f, 0F), Quaternion.identity) as GameObject; instanciaSortida.transform.SetParent(boardHolder); GameManager.instancia.setTotalMonedes(nMonedes); GameManager.instancia.setSortida(instanciaSortida); //Fer les parets exteriors per evitar que el jugador surti de la pantalla. ferVoltant(taulell).transform.SetParent(boardHolder); }