Esempio n. 1
0
    /*
     * 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;
            }
        }
    }