【Unity】InputSystemで日本語キーボードでの一部キーが取得できません
Q&A
Closed
解決したいこと
Unity の InputSystem (従来の Input でも同じ問題があるかは未確認)で、キーボード入力の練習アプリを作ろうと情報を集めております。
詳しく書くと、キー名と日本語名との対応表を ScriptableObject で作ろうとしています。
その一環で、入力したキー名(InputControl.name
)を収集することをやっておりますが、いくつか取得できないキーが存在しています。
おそらく、Unity 内部では英語キーボードしか想定していないのではと考えられますが、皆さんはどのように解決していらっしゃいますでしょうか?
当方が知りたいキーの情報は以下の4つです。
- バックスラッシュ(¥)キー
- 無変換キー
- 変換キー
- カタカナ・ひらがなキー
当方の環境は以下のとおりです。
OS: Windows 10 64bit
Keyboard: CORSAIR K60
Unity: 2022.1.23f1
DirectX: 11
自分でやったこと
Updateメソッド内に、キーを押されたらその情報をTextコンポーネントに表示させるスクリプトを作って表示させています。
if (Keyboard.current != null)
{
string[] keyNames = Keyboard.current.allKeys.Where(x => x.isPressed).Select(x => x.name).ToArray();
logLabel.text = $"[{string.Join(",", keyNames)}]";
}