Jump to content
Unity Insider Forum

Welche Taste wurde gedrückt


Recommended Posts

Hallo

 

Ich möchte den Spielern gern anbieten, die Tasten meines Spiels frei zu belegen. Ich dachte daran, dass sie in einem Menü auf den entsprechenden Punkt klicke, ich die Eingabe auslese und dann die Taste neu setze. Zuerst dacht ich an GetKeyDown usw. aber damit teste ich ja immer eine konkrete Taste. Im Netz habe ich Lösungen gefunden, die dann immer über alle KeyCodes iterieren und prüfen, ob eine davon gedrückt wird. Das geht natürlich, aber scheint mir so extrem unelegant. Gibt es eine andere etablierte Lösung für mein Problem?

 

Danke

Christoph  

Link to post
Share on other sites

Sowas hier? :)

public class SetKey : MonoBehaviour
{
    private bool checking;
    private KeyCode keyCode;

    private void OnGUI()
    {
        if (!checking)
        {
            if (GUILayout.Button("Set key"))
            {
                checking = true;
            }
            GUILayout.Box(keyCode.ToString());
        }
        else
        {
            GUILayout.Box("Press key...");
            var e = Event.current;
            if (e.type == EventType.KeyDown)
            {
                keyCode = e.keyCode;
                e.Use();
                checking = false;
            }
        }
    }
}

OnGUI für GUI soll man natürlich nicht mehr benutzen, aber der relevante Teil ist glaube ich klar. Einfach "checking" mit "dem richtigen" UI-System auf true setzen und dann den keyCode irgendwo reinschicken statt ihn einfach abzuspeichern. Tasten wie Shift und Strg muss man da nochmal gesondert ansehen.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...