facebook twitter hatena line email

Unity/Csharp/キー入力/Event

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

入力イベントでキー入力を取得できる。

フレームレートごとにInput判定した場合、高速入力すると抜けがでてしまうが、こちらは入力抜けがない。

サンプル

public class HogeScript : MonoBehaviour {
	bool lastShiftFlag = false;
	public override void OnGUI() {
		Event e = Event.current;
		if (e.type.Equals(EventType.repaint)) {
			lastShiftFlag = e.shift;
		}
		string keyname = GetEventDownKeyCheck(e, lastShiftFlag)
	}
	string GetEventDownKeyCheck(Event e, bool lastShiftFlag) {
		if (e.isKey) {
			foreach (KeyCode code in Enum.GetValues(typeof(KeyCode))) {
				if (e.keyCode.Equals (code) && !e.keyCode.Equals(KeyCode.None)) {
					if (e.type.Equals (EventType.keyDown)) {
						if (lastShiftFlag) {
							return code.ToString ();
						} else {
							return code.ToString ().ToLower ();
						}
					}
				}
			}
		}
	}
}