Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Duda planteamiento

Iniciado por juanma_teso, Octubre 23, 2015, 08:38:47 PM

Tema anterior - Siguiente tema
Hola a todos! Resulta que tengo una función en el update, esta función lo primero que hace es llamar otra función y devuelve un booleano dependiendo de la posición del dedo (Vector2), pero me he encontrado con un problema muy molesto, esta función se llama cada frame y si muevo el dedo de posición me deja de devolver true, la cuestión es, hay alguna forma de llamar sólo una vez la primera función? Se os ocurre otra forma de plantear el problema? Adjunto el código:
//Control de todo el input del juego
    void ControlTactil ()
    {
        toquesTotal = Input.touchCount;
        switch (toquesTotal)
        {
            case 0:
                {

                }
                break;
            case 1:
                {
                    if (SelectorToque())
                        movimiento = Input.GetTouch(0);
                    if (movimiento.phase == TouchPhase.Began)
                    {
                        dobleToqueMov = (tiempoDobleToqueMov > Time.time) ? true : false;
                        tiempoDobleToqueMov = Time.time + 0.2f;
                        Debug.Log("Toque");
                    }
                    else if (movimiento.phase == TouchPhase.Ended)
                    {
                        Mover(Vector2.zero);
                        Debug.Log("Se acabo");
                    }
                    else
                    {
                        Debug.Log("Moviendose");
                        VectorMovimiento = movimiento.position - centroPantalla;
                        Mover(VectorMovimiento.normalized);
                    }
                }
                break;
            case 2:
                {

                }
                break;
        }
    }

//Función para seleccionar el toque
    bool SelectorToque ()
    {
        if (zonacentro.Contains(Input.GetTouch(0)))
        {
            return true;
        }
        else
        {
            return false;
        }
    }

Podría ser utilizando en el switch movimiento.phase en lugar de toquesTotal.La función solo sería llamada en TouchPhase.Began

Igual puede funcionar! Voy a probarlo y posteo el resultado... porque estoy de booleanos, TouchPhase y positions hasta arriba!! jajajaja

Etiquetas: