Ricerca…


Sintassi

  • public static int Input.touchCount
  • tocco statico pubblico Input.GetTouch (int index)

Rilevazione del tocco

Per rilevare un tocco in Unity è abbastanza semplice, dobbiamo solo usare Input.GetTouch() e passargli un indice.

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
            }
        }    
    }
}

Questi esempi hanno il tocco dell'ultimo frame del gioco.

TouchPhase


All'interno dell'enumer TouchPhase ci sono 5 diversi tipi di TouchPhase

  • Iniziato: un dito toccò lo schermo
  • Spostato - un dito spostato sullo schermo
  • Stazionario: un dito è sullo schermo ma non si muove
  • Finito - un dito fu sollevato dallo schermo
  • Annullato: il sistema ha annullato il tracciamento per il tocco

Ad esempio, per spostare l'oggetto questo script è collegato a tutto lo schermo in base al tocco.

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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow