Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/yujiap/unity-yuji.xyz/public_html/wp-content/plugins/social-networks-auto-poster-facebook-twitter-g/inc/nxs_functions_engine.php on line 266
キー入力でフルスクリーンを切り替えると入力判定が残り続けるUnity不具合 – ゆーじの技術ブログ

キー入力でフルスクリーンを切り替えると入力判定が残り続けるUnity不具合

Unityで左右キーを使って「フルスクリーンモード」「ウィンドウモード」を切り替えたとき、そのあと左右キーの入力判定がずっと残り続ける(押されたままになる)という不具合に遭遇しました。

環境は以下

  • MacOSビルド
  • Unity 6.1
  • InputSystem 1.14.0

フルスクリーンモード(FullScreenMode.FullScreenWindow)とウィンドウモード(FullScreenMode.Windowed)の切り替えは

Screen.SetResolution(size.x, size.y, screenMode);

で実装しています。

 

確認していませんが、Macとキー入力の組み合わせでのみ発生すると言っている方がいました。

 

原因

どうやらUnityの不具合のようです。

https://discussions.unity.com/t/input-system-sends-keyboard-events-continuously-after-fullscreen-mode-change/902876

 

解消方法

Screen.SetResolution(size.x, size.y, screenMode);

で切り替えた後に、

InputSystem.ResetDevice(Keyboard.current);

でキーボード入力をリセットすることで、不具合が起こらなくなりました。

コメント