FC2ブログ
ヽ|∵|ゝ(Fantom) の 開発blog? ホーム » Unity »【Unity】【C#】KeyCode をリアルタイムで調べる / Windows 日本語キーボードでの記号の KeyCode 一覧

【Unity】【C#】KeyCode をリアルタイムで調べる / Windows 日本語キーボードでの記号の KeyCode 一覧  


 以前「Windows日本語キーボードでのKeyCodeにはバグがある」みたいな記事を見たことがあったが、Unity4 時代の頃からなので、単純にキーボードによる違いと考えて、改めて確認した。特に記号の KeyCode が公式マニュアルとは少し違うので、簡単な一覧表としてまとめてみた。

[Unity]KeyCodeについて


(※) Unity 2018.4.4f1 / Windows10 (x64) で確認



■Windows 日本語キーボードでの記号の KeyCode 一覧

 基本的には公式マニュアルで十分なので、ここでは記号のみで、日本語キーボードでは見た目が違うものがわかるように挙げておこう。ショートカットキーみたいなものを作るときに、ちょっと困ったりするんだよね(笑)。

KeyCode(公式マニュアル)

●Windows 日本語キーボードでの記号の KeyCode 一覧

キーKeyCode備考
-Minus 
^Quoteキャレット
Backslash右[Shift]隣の[\_ろ]と同じになる。
[LeftBracket 
]RightBracket 
@BackQuoteアットマーク
;Equalsセミコロン
:Semicolonコロン
,Commaカンマ(コンマ)
.Periodピリオド(ドット, ポイント)
/Slashスラッシュ
Backslashバックスラッシュ。[Backspace]隣の[¥|]と同じになる。
ClearDeleteテンキー[Clear]。[Delete]と同じになる。
PrtScnSysReqPrint Screen
MenuMenu右[Ctrl]隣のメニューキー
WindowsキーLeftCommandWindowsアイコンのキー

※[Shift]キーを押さない状態。
※テンキー(Keypad~)は公式マニュアルとほぼ変わらないので割愛([Clear]のみ)。



■KeyCode をリアルタイムで調べるコード

●KeyCode をリアルタイムで調べる
using System;
using UnityEngine;

public class KeycodeTest : MonoBehaviour { //※クラス名は任意

Array keyCodes = Enum.GetValues(typeof(KeyCode));

// Update is called once per frame
private void Update () {
if (Input.anyKeyDown) //※KeyDown のみ
{
foreach (KeyCode key in keyCodes)
{
if (Input.GetKeyDown(key))
{
Debug.Log(key);
}
}
}
}
}

 内容的には KeyCode の列挙型の一覧(※Array 型)を何らかのキーが押された時(Input.anyKeyDown)に調べているだけだ。ここでは KeyDown (押下した瞬間)を使っているので、押してる間ずっとにしたいなら Input.GetKey を使っても良いだろう。

 Unity の場合、記号は使っているキーボードによって値が変わる可能性があるから(Mac 上では大丈夫と記事にあるが)、あまり使わない方が良いのかもね(笑)。

Array Class
Enum.GetValues(Type) Method
Input.anyKeyDown
Input.GetKey





(関連記事)
【C#】【Unity】enum 型と string, int 型の相互変換など


スポンサーサイト



category: Unity

thread: ゲーム開発

janre: コンピュータ

tag: Unityリファレンス  C# 
tb: 0   cm: --


トラックバック

トラックバックURL
→http://fantom1x.blog130.fc2.com/tb.php/326-2b1b0ac5
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

Social

検索フォーム

全記事一覧

カテゴリ

ユーザータグ

最新記事

リンク

PR

▲ Pagetop