Unityで気軽にInputSystemのデバッグする方法まとめ

Unityで気軽にInputSystemのデバッグする方法まとめ_アイキャッチ
目次

はじめに

Unityの新Input Systemを使っていると、

「InputAction作るほどでもない」
「ちょっとキーが押されてるか確認したいだけ」

という場面、かなり多くないでしょうか?

この記事では InputActionを一切使わず、スクリプトから直接キー入力を取得する方法 を、デバッグ用途にフォーカスして解説します。

一番気軽なデバッグ方法(おすすめ)

キーが押されてる間

using UnityEngine;
using UnityEngine.InputSystem;

public class DebugKey : MonoBehaviour
{
    void Update()
    {
        if (Keyboard.current != null &&
            Keyboard.current.fKey.isPressed)
        {
            Debug.Log("Fキー押されてる");
        }
    }
}

Keyboard.currentnullチェック必須にしておくと安全です。

押した瞬間だけ

if (Keyboard.current.fKey.wasPressedThisFrame)
{
    Debug.Log("Fキー 押した瞬間");
}

離した瞬間だけ

if (Keyboard.current.fKey.wasReleasedThisFrame)
{
    Debug.Log("Fキー 離した");
}

複合キー(Shift + F)

if (Keyboard.current.leftShiftKey.isPressed &&
    Keyboard.current.fKey.wasPressedThisFrame)
{
    Debug.Log("Shift + F");
}

どのキーでも反応させたい場合

if (Keyboard.current.anyKey.wasPressedThisFrame)
{
    Debug.Log("何か押された");
}

ゲームパッドも同じノリで書ける

if (Gamepad.current != null &&
    Gamepad.current.buttonSouth.wasPressedThisFrame)
{
    Debug.Log("Aボタン");
}

まとめ

これで特に関数などを作成しなくても直感的に気軽にデバッグすることができます。

よかったらシェアしてね!
目次