在GUI.TextArea中查看Unity3D中按下的组合键

时间:2014-06-15 21:48:14

标签: user-interface unity3d

如何跟踪用户在Crtl中按Enter + GUI.TextArea?我已经找到了一种方法,可以使用Event.current知道按下了一个键,但这显然不适用于组合键。

1 个答案:

答案 0 :(得分:1)

选项1

使用事件:

if (Event.current.control && Event.current.keyCode == KeyCode.Return)
    Debug.Log("Ctrl+Enter is pressed!");

此条件检查现在是否按下Ctrl + Enter组合(即在当前帧上)。 按Ctrl + Enter(即连续)时,此检查将在每帧上返回true。

选项2

使用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的原因。