如何跟踪用户在Crtl
中按Enter
+ GUI.TextArea
?我已经找到了一种方法,可以使用Event.current
知道按下了一个键,但这显然不适用于组合键。
答案 0 :(得分:1)
使用事件:
if (Event.current.control && Event.current.keyCode == KeyCode.Return)
Debug.Log("Ctrl+Enter is pressed!");
此条件检查现在是否按下Ctrl + Enter组合(即在当前帧上)。 按Ctrl + Enter(即连续)时,此检查将在每帧上返回true。
使用Input:
bool controlIsPressed = Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl);
if (Input.GetKeyDown(KeyCode.Return) && controlIsPressed)
Debug.Log("Ctrl+Enter was pressed");
只有在实际按键发生的帧上(即每次按键击中一次)才会满足此条件。
请记住,OnGUI
可以是(并且将在键盘输入的情况下)被调用多次帧。检查Event.current.type
以了解调用OnGUI的原因。