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

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

環境は以下

  • MacOSビルド
  • Unity 6.1
  • InputSystem 1.14.0

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

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

で実装しています。

 

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

 

原因

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

Input system sends keyboard events continuously after fullscreen mode change
Hello.Iwasmakingafullscreenswitchinsettingsformygame,andInoticedastrangebug:ifIswitchthefullscreenmodeusinganarrowkeypress(basicallyhorizontalnavigationmove),th...

 

解消方法

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

で切り替えた後に、

InputSystem.ResetDevice(Keyboard.current);

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

コメント