Пример #1
0
    /*
     * metodo principal para el manejo de la apertura del panel INFOPANEL padre de los otros paneles de informacion
     * infocontainer de atomos, moleculas y materiales
     */
    public void OpenBottomPanel()
    {
        // cierro todos los paneles
        CloseAll();
        restoreAlphasTabbedMenu();

        // traigo todos los atomos seleccionados
        var selectedAtoms     = atomManager.GetSelectedAtoms();
        var selectedMolecules = moleculeManager.GetSelectedMolecules();
        var selectedMaterials = materialManager.GetSelectedMaterials();

        // si hay un solo atomo seleccionado y ninguna molecula o material, muestro info panel
        if (selectedAtoms.Count == 1)
        {
            //obtiene el tipo de elemento seleccionado si es un isotopo o no
            if (atomManager.GetTypeSelectedAtoms() == TypeAtomEnum.atom)
            {
                if (selectedMolecules.Count == 0 && selectedMaterials.Count == 0 && infoPanelElements.alpha == 0)
                {
                    gameObject.GetComponent <UIFader>().FadeInAndOut(infoPanelElements.gameObject);//el uifader lo tiene instanciado el padre de todos los panels
                    // activo el blockRayCast para el panel que estoy abriendo y lo desactivo para el resto
                    setActiveRayCast(infoPanelElements);
                    setInactiveRayCast(infoPanelMolecule);
                    setInactiveRayCast(infoPanelMaterial);
                    setInactiveRayCast(infoPanelIsotopos);
                }
            }

            else if (atomManager.GetTypeSelectedAtoms() == TypeAtomEnum.isotopo)
            {
                if (selectedMolecules.Count == 0 && selectedMaterials.Count == 0 && infoPanelIsotopos.alpha == 0)
                {
                    gameObject.GetComponent <UIFader>().FadeInAndOut(infoPanelIsotopos.gameObject);//el uifader lo tiene instanciado el padre de todos los panels
                    // activo el blockRayCast para el panel que estoy abriendo y lo desactivo para el resto
                    setInactiveRayCast(infoPanelElements);
                    setInactiveRayCast(infoPanelMolecule);
                    setInactiveRayCast(infoPanelMaterial);
                    setActiveRayCast(infoPanelIsotopos);
                }
            }
        }

        // si hay una sola molecula seleccionada y ningun atomo o material, muestro info panel
        else if (selectedAtoms.Count == 0 && selectedMolecules.Count == 1 && selectedMaterials.Count == 0 && infoPanelMolecule.alpha == 0)
        {
            gameObject.GetComponent <UIFader>().FadeInAndOut(infoPanelMolecule.gameObject);//el uifader lo tiene instanciado el padre de todos los panels
            // activo el blockRayCast para el panel que estoy abriendo y lo desactivo para el resto
            setInactiveRayCast(infoPanelElements);
            setActiveRayCast(infoPanelMolecule);
            setInactiveRayCast(infoPanelMaterial);
            setInactiveRayCast(infoPanelIsotopos);
        }


        // si hay un solo material seleccionada y ningun atomo o molecula, muestro info panel
        else if (selectedAtoms.Count == 0 && selectedMolecules.Count == 0 && selectedMaterials.Count == 1 && infoPanelMaterial.alpha == 0)
        {
            gameObject.GetComponent <UIFader>().FadeInAndOut(infoPanelMaterial.gameObject);//el uifader lo tiene instanciado el padre de todos los panels
            // activo el blockRayCast para el panel que estoy abriendo y lo desactivo para el resto
            setInactiveRayCast(infoPanelElements);
            setInactiveRayCast(infoPanelMolecule);
            setActiveRayCast(infoPanelMaterial);
            setInactiveRayCast(infoPanelIsotopos);
        }
    }