Suche…


Syntax

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

Berührung erkennen

Um eine Berührung in Unity zu erkennen, ist es ziemlich einfach, dass Sie Input.GetTouch() und einen Index übergeben.

using UnityEngine;
using System.Collections;

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

oder

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

Diese Beispiele erhalten den letzten Rahmen des Spiels.

TouchPhase


Innerhalb der TouchPhase-Enumeration gibt es 5 verschiedene TouchPhase-Typen

  • Begann - ein Finger berührte den Bildschirm
  • Bewegt - ein Finger bewegt sich auf dem Bildschirm
  • Stationär - ein Finger ist auf dem Bildschirm, bewegt sich jedoch nicht
  • Beendet - ein Finger wurde vom Bildschirm gehoben
  • Abgebrochen - Das System hat das Tracking für die Berührung abgebrochen

Zum Beispiel, um das Objekt zu verschieben, an das dieses Skript basierend auf Berührung über den Bildschirm angehängt wird.

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow