Buscar..


Sintaxis

  • public static int Input.touchCount
  • Toque público estático Input.GetTouch (índice int)

Detección de toque

Para detectar un toque en Unity es bastante simple, solo tenemos que usar Input.GetTouch() y pasarle un índice.

using UnityEngine;
using System.Collections;

public class TouchExample : MonoBehaviour { 
    void Update() {
        if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
        {
            //Do Stuff
        }
    }
}

o

using UnityEngine;
using System.Collections;

public class TouchExample : MonoBehaviour { 
    void Update() {
        for(int i = 0; i < Input.touchCount; i++)
        {
            if (Input.GetTouch(i).phase == TouchPhase.Began)
            {
                //Do Stuff
            }
        }    
    }
}

Estos ejemplos dan el toque del último cuadro de juego.

TouchPhase


Dentro de la enumeración de TouchPhase hay 5 tipos diferentes de TouchPhase

  • Comenzó - un dedo tocó la pantalla
  • Movido - un dedo movido en la pantalla
  • Estacionario: un dedo está en la pantalla pero no se mueve
  • Terminado - un dedo fue levantado de la pantalla
  • Cancelado: el sistema canceló el seguimiento para el toque

Por ejemplo, para mover el objeto al que se adjunta esta secuencia de comandos a través de la pantalla en función del toque.

public class TouchMoveExample : MonoBehaviour 
{
    public float speed = 0.1f;

    void Update () {
        if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved)
        {
            Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
            transform.Translate(-touchDeltaPosition.x * speed, -touchDeltaPosition.y * speed, 0);
        }
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow