la classe Touch

Structure décrivant l'état d'un doigt qui touche l'écran. Les appareils peuvent suivre un certain nombre de données différentes sur un contact sur un écran tactile, y compris sa phase (s'il vient de commencer, de terminer ou est en cours de déplacement), sa position et si le toucher était un seul contact ou plusieurs tapotements. En outre, la continuité d'une touche entre les mises à jour de la frame peut être détectée par le périphérique, de sorte qu'un numéro d'identification cohérent peut être signalé à travers les frames et utilisé pour déterminer comment un doigt en particulier se déplace.

La structure Touch est utilisée par Unity pour stocker des données relatives à une seule instance tactile et est retournée par la fonction Input.GetTouch. De nouveaux appels à GetTouch seront requis sur chaque mise à jour de la frame pour obtenir les dernières informations tactiles du périphérique, mais la propriété fingerId peut être utilisée pour identifier le même contact entre les frames.

Variables

altitudeAngleLa valeur de 0 radians indique que le stylet est parallèle à la surface, pi/2 indique qu'il est perpendiculaire.
azimuthAngleLa valeur de 0 radians indique que le stylet est pointé le long de l'axe des x de l'appareil.
deltaPositionLa position delta depuis la dernière modification.
deltaTimeLe temps écoulé depuis la dernière modification enregistrée dans les valeurs tactiles.
fingerIdL'index unique pour le toucher.
maximumPossiblePressureLa valeur de pression maximale possible pour une plate-forme. Si Input.touchPressureSupported renvoie false, la valeur de cette propriété sera toujours de 1.0f.
phaseDécrit la phase du toucher.
positionLa position du toucher dans les coordonnées des pixels.
pressureLa quantité actuelle de pression étant appliquée à un contact. 1.0f est considéré comme la pression d'une touche moyenne. Si Input.touchPressureSupported renvoie false, la valeur de cette propriété sera toujours de 1.0f.
radiusUne valeur estimée du rayon d'un contact. Ajoutez radiusVariance pour obtenir la taille de toucher maximale, soustrayez-la pour obtenir la taille minimale de contact.
radiusVarianceLa quantité dont le rayon varie selon une touche.
rawPositionLa position brute utilisée pour le contact.
tapCountNombre de tapotements.
typeUne valeur indiquant si une touche était directe, indirecte (ou à distance) ou type Stylus.

Touch.altitudeAngle

public float altitudeAngle;

Touch.azimuthAngle

public float azimuthAngle;

Touch.deltaPosition

public Vector2 deltaPosition;

La position absolue du toucher est enregistrée périodiquement et est disponible dans la propriété de position. La valeur deltaPosition est un Vector2 qui représente la différence entre la position tactile enregistrée sur la mise à jour la plus récente et celle enregistrée sur la mise à jour précédente. La valeur deltaTime donne le temps écoulé entre les mises à jour précédentes et actuelles; Vous pouvez calculer la vitesse de mouvement du contact en divisant deltaPosition.magnitude par deltaTime.

Touch.deltaTime

public float deltaTime;

Les valeurs des différentes propriétés tactiles sont mises à jour périodiquement. La valeur deltaTime est simplement le temps écoulé entre la mise à jour précédente et celle actuelle. Ceci est principalement utile pour déterminer la vitesse de déplacement de la position tactile en référence à deltaPosition.

Touch.fingerId

public int fingerId;

Toutes les touches actuelles sont signalées dans le tableau Input.touches ou en utilisant la fonction Input.GetTouch avec l'indice de matrice équivalent. Cependant, l'index du tableau n'est pas garanti pour être le même d'une image à l'autre. La valeur fingerId, cependant, se réfère systématiquement à la même touche à travers les frames. Cette valeur d'identification est très utile lors de l'analyse des gestes et est plus fiable que l'identification des doigts par leur proximité à la position précédente, etc.

Touch.fingerId n'est pas le même que le toucher «premier», le «second» et ainsi de suite. Il s'agit simplement d'un identifiant unique par geste. Vous ne pouvez pas faire d'hypothèses sur fingerId et le nombre de doigts effectivement sur l'écran, car des touches virtuelles seront introduites pour gérer le fait que la structure tactile est constante pour une frame (Alors qu'en réalité, le nombre de touches peut évidemment pas être vrai, par ex. Si plusieurs taps se produisent dans une seule frame).

Touch.maximumPossiblePressure

public float maximumPossiblePressure;

Touch.phase

public TouchPhase phase;

La phase tactile se réfère à l'action que le doigt a pris sur la dernière mise à jour de la frame. Étant donné qu'une touche est suivie sur sa «durée de vie» par le périphérique, le début et la fin d'un contact et des mouvements entre les deux peuvent être signalés sur les frames qu'ils produisent. La propriété de phase peut être utilisée comme base d'une déclaration d'un «switch» ou dans le cadre d'un système de traitement d'état plus sophistiqué.

C#using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    public Vector2 startPos;
    public Vector2 direction;
    public bool directionChosen;
    void Update()
    {
        // Suivre une seule touche comme un contrôle de direction.
        if (Input.touchCount > 0)
        {
            Touch touch = Input.GetTouch(0);

            // Manipuler les mouvements des doigts en fonction de la phase tactile.
            switch (touch.phase)
            {
                // Enregistrer la position tactile initiale.
                case TouchPhase.Began:
                    startPos = touch.position;
                    directionChosen = false;
                    break;

                // Déterminer la direction en comparant la position tactile actuelle avec celle initiale.
                case TouchPhase.Moved:
                    direction = touch.position - startPos;
                    break;

                // Indiquer qu'une direction a été choisie lorsque le doigt est levé.
                case TouchPhase.Ended:
                    directionChosen = true;
                    break;
            }
        }
        if (directionChosen)
        {
            // Quelque chose qui utilise la direction choisie...
        }
    }
}

Touch.position

public Vector2 position;

Touch.pressure

public float pressure;

Touch.radius

public float radius;

Touch.radiusVariance

public float radiusVariance;

Touch.rawPosition

public Vector2 rawPosition;

Touch.tapCount

public int tapCount;

Ceci est conçu comme un moyen de détecter les «double-clics», etc., du doigt dans une position particulière. Dans certaines circonstances, deux doigts peuvent être tapés alternativement et cela peut s'inscrire de manière incorrecte à l'aide d'un seul doigt et de se déplacer simultanément.

Touch.type

public TouchType type;

les réactions

Pour laisser un avis, vous devez être inscrit et connecté

Se connecter