Поиск…


Синтаксис

  • public static int Input.touchCount
  • public static Touch Input.GetTouch (индекс int)

Обнаружение касания

Чтобы обнаружить прикосновение в Unity, довольно просто, нам просто нужно использовать Input.GetTouch() и передать ему индекс.

using UnityEngine;
using System.Collections;

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

или же

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

Эти примеры приходят в контакт с последней игровой рамкой.

TouchPhase


Внутри перечисления TouchPhase есть 5 различных типов TouchPhase

  • Начался - пальцем коснулся экран
  • Перемещено - палец перемещается по экрану
  • Стационарный - палец отображается на экране, но не перемещается
  • Закончено - палец был снят с экрана
  • Отменено - система отменяет отслеживание касания

Например, чтобы переместить объект, этот скрипт привязан к экрану на основе касания.

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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow