chrische5 Geschrieben 8. Juni 2021 Melden Share Geschrieben 8. Juni 2021 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 8. Juni 2021 Melden Share Geschrieben 8. Juni 2021 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.