Beispiel #1
0
    public void DisminuirLiquido(GameObject reactivo)
    {
        VasodeAguaDensidad agua = reactivo.GetComponent <VasodeAguaDensidad>();
        float cantidadVolumen   = CalcularVolumenReaccion(esfera.Cantidad);
        float volRelativo       = CambiarCantidadVolumenRel(cantidadVolumen);

        agua.DisminuirLiquidoEsfera(volRelativo);
    }
Beispiel #2
0
    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();
            }
        }
    }