facebook twitter hatena line email

「Unity/Csharp/キー入力/Event」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
行1: 行1:
入力イベントでキー入力を行う。
+
入力イベントでキー入力を取得できる。
フレームレートごとにInput判定するよりもこちらの方が入力精度が良い。
+
フレームレートごとにInput判定は高速入力すると抜けがあるが、こちらは入力抜けがない。
 
  public class HogeScript : MonoBehaviour {
 
  public class HogeScript : MonoBehaviour {
 
  bool lastShiftFlag = false;
 
  bool lastShiftFlag = false;

2017年11月22日 (水) 22:02時点における版

入力イベントでキー入力を取得できる。 フレームレートごとに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 ();
						}
					}
				}
			}
		}
	}
}