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 zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

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

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

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

Lädt...
×
×
  • Neu erstellen...