トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

unity_move_mychar_mobile

自キャラを動かす(モバイル)


参考:

http://docs-jp.unity3d.com/Documentation/Manual/Input.html

iOS/androidの場合はInput.touchesの配列からタッチ情報を取得できます。

 押された数を取得


void FixedUpdate () {
  touchCou = 0;
  foreach (Touch touch in Input.touches) {
    if (touch.phase != TouchPhase.Ended && touch.phase != TouchPhase.Canceled)
      touchCou++;
  }
}

指で複数を同時押しした場合、touchCouにその押された数が返ります。
touch.phaseが「TouchPhase.Ended」もしくは「TouchPhase.Canceled」の場合はそのタッチは無効。
Nexus7の場合は同時に10個判定可能。

 押された位置を取得


void FixedUpdate () {
  for (int i = 0; i < Input.touches.Length; i++) {
      Touch touch = Input.touches[i];
      if (touch.phase != TouchPhase.Ended && touch.phase != TouchPhase.Canceled) {
          Vector2 pos = touch.position;   // 位置
      }
  }
}

Nexus7では、スクリーン左下が(0, 0)、右上が(1280, 800)。

 タッチの状態

Touch touch = Input.touches[i];

としたときの「touch.phase」はタッチ状態が入ります。

状態
TouchPhase.Began タッチした瞬間
TouchPhase.Moved タッチしたまま移動中
TouchPhase.Stationary タッチしているが移動していない
TouchPhase.Ended タッチから離れた
TouchPhase.Canceled タッチのトラッキングがキャンセル

これで、現在指を押したまま移動中かどうかを判断できます。


最終更新時間:2014年01月30日 13時57分14秒