Zoeken…


Syntaxis

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

Aanraken detecteren

Om een aanraking in Unity te detecteren, is het vrij eenvoudig dat we gewoon Input.GetTouch() en er een index aan geven.

using UnityEngine;
using System.Collections;

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

of

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

Deze voorbeelden krijgen de aanraking van het laatste gameframe.

TouchPhase


Binnen het TouchPhase-overzicht bevinden zich 5 verschillende soorten TouchPhase's

  • Begon - een vinger raakte het scherm aan
  • Bewogen - een vinger bewoog op het scherm
  • Stationair - een vinger is op het scherm maar beweegt niet
  • Beëindigd - een vinger werd van het scherm gehaald
  • Geannuleerd - het systeem annuleerde het volgen voor de aanraking

Bijvoorbeeld om het object te verplaatsen waaraan dit script is bevestigd op het scherm op basis van aanraking.

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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow