サーチ…


構文

  • public static int Input.touchCount
  • パブリック静的Touch Input.GetTouch(int index)

タッチの検出

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