public void MostrarVistaPreviaReceta(Assets.Construccion nuevaReceta) { recetaConstruccion = nuevaReceta; Canvas.Canvas.instancia.construcciones.SetActive(false); Movimientos.instancia.EnseñarCursor(false); vistaPrevia = Instantiate(nuevaReceta.vistaPreviaPrefab.gameObject).GetComponent <Construccion.VistaPrevia>(); }
public override void AtacarInput() { if (recetaConstruccion == null || vistaPrevia == null || puedeUbicarConstruccion == false) { return; } GameObject objetoConstruir = recetaConstruccion.prefab; Vector3 coordenadas = vistaPrevia.transform.position; if (vistaPrevia != null) { if (recetaConstruccion.tipo == Assets.Tipos.Construccion.Suelo || recetaConstruccion.tipo == Assets.Tipos.Construccion.Pared) { Coordenadas coordenadas2 = vistaPrevia.gameObject.GetComponent <Coordenadas>(); if (coordenadas2 != null) { Assets.Casilla casilla = Escenario.Generar.Escenario.instancia.casillas[coordenadas2.x, coordenadas2.z]; if (casilla != null) { if (recetaConstruccion.tipo == Assets.Tipos.Construccion.Suelo) { if (casilla.pisos == null) { casilla.pisos = new List <Assets.Piso>(); } Assets.Piso piso = new Assets.Piso(); piso.suelo = recetaConstruccion.prefab; casilla.pisos.Add(piso); } else if (recetaConstruccion.tipo == Assets.Tipos.Construccion.Pared) { if (casilla.pisos != null) { if (casilla.pisos.Count > 0) { Assets.Piso piso = casilla.pisos[casilla.pisos.Count - 1]; piso.pared = recetaConstruccion.prefab; } } } } } } } Instantiate(objetoConstruir, coordenadas, vistaPrevia.transform.rotation); int i = 0; while (i < recetaConstruccion.costes.Length) { int j = 0; while (j < recetaConstruccion.costes[i].cantidad) { Inventario.Inventario.instancia.QuitarObjeto(recetaConstruccion.costes[i].objeto); j += 1; } i += 1; } recetaConstruccion = null; Destroy(vistaPrevia.gameObject); vistaPrevia = null; puedeUbicarConstruccion = false; rotacionLibreEjeY = 0; }