前提
Unityでゲーム制作をしています。Input.anyKeyDownの挙動について良く分からないところがあったので質問させていただきます。Input.anyKeyDownは「キーかマウスボタンを押した最初のフレームのみ trueを返す」とのことですが、押しっぱなしの状況で4回反応してしまいます。
Unity Doc
実現したいこと
キー入力があるごとに、1回だけUpdate()内で処理を行いたい。
発生している問題・エラーメッセージ
j, o, lと一度ずつ押したときの様子です。実現したことはj, o, lの反応をそれぞれ1回ずつにしたいです。
該当のソースコード
C#
1void Update() 2{ 3 if (Input.anyKeyDown) 4 { 5 string keyString = Input.inputString; 6 if (keyString.Length != 0) 7 { 8 Debug.Log(keyString + " is pushed"); 9 } 10 } 11}
試したこと
私の理解だとUpdate()メソッドは1フレームごとに呼ばれ、Input.anyKeydownも最初の1フレームだけtrueを返すということだから1回だけ反応するものと思ったのですが。。。Unity Documentaionと全く同じソースコードを実行してもA key or mouse click has been detectedが4回表示されるだけでした。
必ず4回表示されることからなにか規則性があるかと思うんですが。
実行環境
Unityのバージョン: 2021.3.5f1
環境:MacBookPro M1チップ
回答1件
あなたの回答
tips
プレビュー