/* * 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); } }