自キャラを動かす(モバイル)
参考:
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秒