/* * Metodo que se llama una vez cada frame para * cada collider que esta en contacto con el trigger * * * * */ private void OnTriggerStay(Collider other) { //Inicializamos _soltando = false; //Si el collider con el que choca es una linea if (other.name.Contains("Linea")) { /* * Obtengo el TextMesh del objeto que colisiono * a traves de una pequeña consulta Linq * */ TextMesh linea = FindObjectsOfType <TextMesh>().First(a => a.name == other.name); //Obtengo el objeto que creara la linea ManejadorLinea manejadorLinea = linea.GetComponent <ManejadorLinea>(); /* * Si suelta el clic * */ if (Input.GetMouseButtonUp(0)) //Si suelta el clic { //Caso 1:Si la linea(Ui en escena) contiene _ (significa que no hay palabra puesta = (vacio)) if (manejadorLinea.LineaDisponible()) { //Encontrar la posicion de la 1ra _ (vacio) int posicion = manejadorLinea.FindFirst_(); //Agrego la palabra a la linea donde esten las __ manejadorLinea.PutText(gameObject.GetComponent <TextMesh>(), posicion); //Agrego la palabra a la linea donde esten las __ manejadorLinea.Remove_(); } //Caso 2 Si la linea tiene palabras que ya han sido puestas else if (manejadorLinea.ContienePalabraDeResp()) { //Si la linea tiene color rojo es q tiene palabras puestas /* * Obtengo la palabra antigua(donde quiero poner la nueva) * y coloco la palabra nueva * La palabra antigua la devuelvo junto a las otras palabras * por colocar * * */ string oldword = manejadorLinea.FindandReplaceRedWord(gameObject.GetComponent <TextMesh>().text); //Devolvemos la palabra a su sitio BajarPalabra(oldword); } _soltando = true; } } }