トップ 一覧 検索 ヘルプ 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, 80)。
Nexus7では、スクリーン左下が(0, 0)、右上が(1280, 800)。

!!タッチの状態
 Touch touch = Input.touches[i];
としたときの「touch.phase」はタッチ状態が入ります。

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

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

----
{{lastmodified}}