Unityで、押されているキーを検出します。
Input.GetKey(KeyCode.LeftShift) (左シフトキー)
Input.GetKey(KeyCode.RightArrow) (右方向キー)
Input.GetKey(KeyCode.Space) (スペースキー)
というコードで、押されているなら true、押されていないなら false が返ってきます。これで判定できます。「これら3つが押されている」と判定できないと困ることがあります。実際、ぼくがそうでした。右方向のキーは照準を右へ移動、スペースキーが押されている間は弾を撃つ、そこへシフトキーをさらに押すと照準でなく視点(カメラ)の位置を変える、とするつもりでした。……そのはずだったんですが、うまくいきません。実験してみると方向キーを認識していないようです。2つのキーならちゃんと認識するのです。3ついっぺんだと無理らしい。
ネットで調べたらどうやらキーボードの構造で、2つまでしか判定できないものもあるらしいのです。なるほど、と思いました。つまり完全にバラバラに認識するのではなく、構造上キーたちがブロックに分かれており、同じブロック内の2つのキーは別々には認識できない、みたいな。
結局、シフトでなく、コントロールキーを使うようにしたら3つを認識できました。どっち道スマホアプリにするつもりだから、まあよいわけですが(スマホアプリだと自分でボタンを配置しなければならないので)。
前にPCのゲームを書いたときはUnityもなく、マシンも違っていて、3つのキーをきちんと認識していました。そのつもりでいて、今回考えたとおりにプログラムが動かないので「??」と思ったのです。誰かが困っているかも知れないので記録に残しておきます。