public void DisminuirLiquido(GameObject reactivo) { VasodeAguaDensidad agua = reactivo.GetComponent <VasodeAguaDensidad>(); float cantidadVolumen = CalcularVolumenReaccion(esfera.Cantidad); float volRelativo = CambiarCantidadVolumenRel(cantidadVolumen); agua.DisminuirLiquidoEsfera(volRelativo); }
public void Accion(GameObject reactivo) { EstadoSeleccion = EnumSeleccion.Reaccionando; VasodeAguaDensidad agua = reactivo.GetComponent <VasodeAguaDensidad>(); MaterialAgarrableCuadrado cuadrado = Agarrado.GetComponent <MaterialAgarrableCuadrado>(); MaterialAgarrableEsfera esfera = Agarrado.GetComponent <MaterialAgarrableEsfera>(); if (cuadrado != null) { float cantidadVolumen = CalcularVolumenReaccion(cuadrado.Cantidad); float volRelativo = CambiarCantidadVolumenRel(cantidadVolumen); agua.aumentarLiquidoCuadrado(volRelativo); } else if (esfera != null) { float cantidadVolumen = CalcularVolumenReaccion(esfera.Cantidad); float volRelativo = CambiarCantidadVolumenRel(cantidadVolumen); agua.aumentarLiquidoEsfera(volRelativo); //esfera.TransformConexion = agua.PosicionAgua(); } }
void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); PosicionAgarre = Camera.main.transform.position + ray.direction * DistanciaAgarre; RaycastHit[] hits = Physics.RaycastAll(ray); bool encontrado = false; if (gc.EstadoSeleccion == ExperimentoDensidad.EnumSeleccion.Agarrado && Input.GetMouseButtonDown(1)) { gc.Soltar(); return; } for (int i = 0; i < hits.Length; i++) { RaycastHit hit = hits[i]; GameObject g = hit.collider.gameObject; if (gc.EstadoSeleccion == ExperimentoDensidad.EnumSeleccion.Nada) { if (hit.collider.tag == "MaterialAgarrable") { if (Input.GetMouseButtonDown(0)) { MaterialAgarrableEsfera m = hit.collider.GetComponent <MaterialAgarrableEsfera>(); gc.Agarrar(m); } } } else if (gc.EstadoSeleccion == ExperimentoDensidad.EnumSeleccion.Agarrado) { gc.DesmarcarTodosReactivos(); if (Input.GetMouseButtonDown(1)) { gc.Soltar(); } if (hit.collider.tag == "MaterialReactivo") { MaterialReactivo react = hit.collider.GetComponent <MaterialReactivo>(); if (gc.MarcarReactivo(react)) { encontrado = true; } } } else if (gc.EstadoSeleccion == ExperimentoDensidad.EnumSeleccion.MarcandoReactivo) { if (Input.GetMouseButtonDown(0)) { MaterialAgarrableEsfera esfera = gc.Agarrado.GetComponent <MaterialAgarrableEsfera>(); VasodeAguaDensidad agua = hit.collider.GetComponent <VasodeAguaDensidad>(); gc.Accion(hit.collider.gameObject); esfera.TransformConexion = agua.PosicionAgua(); } if (Input.GetMouseButtonDown(1)) { gc.Soltar(); } if (hit.collider.tag == "MaterialReactivo") { encontrado = true; } } else if (gc.EstadoSeleccion == ExperimentoDensidad.EnumSeleccion.Reaccionando) { if (Input.GetMouseButtonDown(0)) { MaterialAgarrableEsfera esfera = gc.Agarrado.GetComponent <MaterialAgarrableEsfera>(); VasodeAguaDensidad agua = hit.collider.GetComponent <VasodeAguaDensidad>(); gc.DisminuirLiquido(hit.collider.gameObject); gc.Agarrar(esfera); } } } // for if (gc.EstadoSeleccion == ExperimentoDensidad.EnumSeleccion.MarcandoReactivo) { if (encontrado == false) { gc.VolverEstadoAgarrado(); } } }