Legacy Documentation: Version 4.5.0

Script language:

  • JS
  • C#
  • Boo
Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Touch.phase

var phase: TouchPhase;
TouchPhase phase;
phase as TouchPhase

Description

Describes the phase of the touch.

The touch phase refers to the action the finger has taken on the most recent frame update. Since a touch is tracked over its "lifetime" by the device, the start and end of a touch and movements in between can be reported on the frames they occur. The phase property can be used as the basis of a "switch' statement or as part of a more sophisitcated state handling system.

var startPos: Vector2;
var direction: Vector2;
var directionChosen: boolean;

function Update () { // Track a single touch as a direction control. if (Input.touchCount > 0) { var touch = Input.GetTouch(0); // Handle finger movements based on touch phase. switch (touch.phase) { // Record initial touch position. case TouchPhase.Began: startPos = touch.position; directionChosen = false; break; // Determine direction by comparing the current touch // position with the initial one. case TouchPhase.Moved: direction = touch.position - startPos; break; // Report that a direction has been chosen when the finger is lifted. case TouchPhase.Ended: directionChosen = true; break; } } if (directionChosen) { // Something that uses the chosen direction... } }

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    public Vector2 startPos;
    public Vector2 direction;
    public bool directionChosen;
    void Update() {
        if (Input.touchCount > 0) {
            Touch touch = Input.GetTouch(0);
touch.phaseTouchPhase.Began            startPos = touch.position;
            directionChosen = false;
TouchPhase.Moved            direction = touch.position - startPos;
TouchPhase.Ended            directionChosen = true;
        }
        if (directionChosen) {
        }
    }
}
import UnityEngine
import System.Collections

public class ExampleClass(MonoBehaviour):

	public startPos as Vector2

	public direction as Vector2

	public directionChosen as bool

	def Update() as void:
		if Input.touchCount > 0:
			touch as Touch = Input.GetTouch(0)
			UnityScript.Macros.Switch touch.phase:
				case TouchPhase.Began:
					startPos = touch.position
					directionChosen = false
					break 
				case TouchPhase.Moved:
					direction = (touch.position - startPos)
					break 
				case TouchPhase.Ended:
					directionChosen = true
					break 
		if directionChosen:
			pass