メインコンテンツまでスキップ

InputManagerを使用した時のダブルタップの例

特定のボタンをダブルタップしたときの動作を実装するためには、ボタンが押された時間を計測し、一定の時間内に再度ボタンが押されたかどうかを確認する必要があります。以下に、Wキーをダブルタップしたときの動作を実装する例を示します。



ダブルタップを検出するプログラム

using UnityEngine;

public class DoubleTapExample : MonoBehaviour
{
public float doubleTapTime = 0.3f; // ダブルタップと見なされる時間
private float lastTapTime = 0f; // 最後のタップの時間
private int tapCount = 0; // タップの回数

void Update()
{
// Wキーが押されたかどうかを確認
if (Input.GetKeyDown(KeyCode.W))
{
// 現在の時間を取得
float currentTime = Time.time;

// 最後のタップからの時間が設定した時間内かどうかを確認
if (currentTime - lastTapTime <= doubleTapTime)
{
tapCount++; // タップ回数を増やす
}
else
{
tapCount = 1; // 新しいタップのカウントを開始
}

lastTapTime = currentTime; // 最後のタップの時間を更新

// タップ回数が2回になったらダブルタップを検出
if (tapCount == 2)
{
Debug.Log("Double Tap Detected!");
// ダブルタップ時の処理をここに記述
PerformDoubleTapAction();
}
}
}

// ダブルタップ時のアクション
private void PerformDoubleTapAction()
{
// ダブルタップ時の具体的な処理
// 例: キャラクターのジャンプや特殊攻撃
Debug.Log("Performing Double Tap Action!");
}
}

解説

  • ダブルタップの検出:

    • Input.GetKeyDown(KeyCode.W)でWキーが押された瞬間を確認します。
    • Time.timeを使用して、現在の時間を取得し、最後のタップからの時間を計算します。
    • 設定した時間内に再度タップされた場合、タップ回数を増やし、そうでなければタップ回数を1にリセットします。
    • タップ回数が2回になったらダブルタップとして処理を行います。
  • アクションの実行:

    • PerformDoubleTapAction()メソッド内にダブルタップ時の具体的な処理を記述します。ここでは、デバッグメッセージを表示していますが、実際のゲームではキャラクターのジャンプや特定のスキル発動などの処理を追加できます。

注意点

  • タップ間隔:

    • doubleTapTimeの値は、ダブルタップの検出に使用する時間のしきい値です。これを調整することで、ユーザーがダブルタップとみなすタップの速さを設定できます。
  • オプションの追加:

    • 同様のロジックを使用して、異なるボタンに対してもダブルタップを検出することができます。別のボタンの場合は、KeyCode.Wを他のキーに変更するだけです。