はじめに
今日はUnity
について勉強していきます。
InputSystem
で入力検知はInputActionファイルを作ってそれをアタッチしてスクリプト書いて・・・という手順がクソ長くなります。
従来のInput
だとInput.GetKeyDown(XXX)
という要領で書けたので簡単だったんですよねー。
じゃあ従来のInput使えよという話なんですが、それは言わんでください(笑)
今回はInputSystem
のコードだけで完結する検知方法を共有したいと思います。
旧式と新式の両方のコードを載せて比較できるようにしています。
環境
この記事の情報は次のバージョンで動作確認しています。
* MacOS Monterey (12.1)
* Unity (2021.3.2f1)
InputSystemとは
InputSystem
は以前解説していますので良かったらそちらもみていただけると助かります。
キーを押した瞬間を検知する方法
using UnityEngine.InputSystem; // 新式(InputSystem) if (Keyboard.current[Key.A].wasPressedThisFrame) { Debug.Log("[New] A"); } // 旧式 if (Input.GetKeyDown(KeyCode.A)) { Debug.Log("[Old] A"); }
キーを離した瞬間を検知する方法
using UnityEngine.InputSystem; // 新式(InputSystem) if (Keyboard.current[Key.A].wasReleasedThisFrame) { Debug.Log("[New] A"); } // 旧式 if (Input.GetKeyUp(KeyCode.A)) { Debug.Log("[Old] A"); }
キーを押し続けてるのを検知する方法
using UnityEngine.InputSystem; // 新式(InputSystem) if (Keyboard.current[Key.A].isPressed) { Debug.Log("[New] A"); } // 旧式 if (Input.GetKey(KeyCode.A)) { Debug.Log("[Old] A"); }
おわりに
最後まで見ていただきヘペトナス!
読者登録・Twitterのフォローもお願いします。