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);
でキーボード入力をリセットすることで、不具合が起こらなくなりました。
コメント