Recherche…


Syntaxe

  • public static int Input.touchCount
  • Touch statique public Input.GetTouch (int index)

Détecter le toucher

Pour détecter un contact dans Unity, il est assez simple d'utiliser Input.GetTouch() et de lui transmettre un index.

using UnityEngine;
using System.Collections;

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

ou

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

Ces exemples prennent le contact de la dernière image de jeu.

TouchPhase


À l’intérieur du TouchPhase enum, il existe 5 types différents de TouchPhase

  • A commencé - un doigt a touché l'écran
  • Déplacé - un doigt déplacé sur l'écran
  • Stationnaire - un doigt est sur l'écran mais ne bouge pas
  • Terminé - un doigt a été levé de l'écran
  • Annulé - le système a annulé le suivi pour le toucher

Par exemple, pour déplacer l’objet auquel ce script est attaché sur l’écran en fonction du toucher.

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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow