Ich bin sehr neu in C #. Ich erschaffe etwas in Unity, damit ich C # und Unity besser lernen kann.
Ich möchte wissen warum:
%Vor%Wird nur einmal ausgelöst, wenn es darin platziert wird:
%Vor%Da update eine Schleife ist, warum wird sie nicht ausgelöst, während ich die Taste gedrückt halte (in meinem Fall verursacht das Verschieben einer Kugel)?
Ich habe es geschafft zu arbeiten, indem ich zwei Bools verwende, die geändert werden, wenn die Taste gedrückt und losgelassen wird.
Hier ist mein komplettes Skript, mit dem ich spiele, um eine Kugel zu bewegen und Beschleunigung / Verzögerung zu simulieren:
%Vor%Die Dokumentation besagt, dass dies das normale, erwartete Verhalten ist.
Wahrscheinlich möchten Sie GetButton oder GetAxis statt dessen, da diese" gedrückt "anzeigen, solange die Taste gedrückt gehalten wird (GetButton gibt true zurück, GetAxis gibt 1 zurück).
Aus der Dokumentation zu Input.GetKeyDown .
Sie müssen diese Funktion über die Update-Funktion aufrufen, da die Der Status wird für jeden Frame zurückgesetzt. Es wird nicht wahr bis zum Benutzer zurückgegeben hat die Taste losgelassen und erneut gedrückt.
Diese Methode ist am nützlichsten zum Öffnen von Menüs oder anderen einmaligen Ereignissen. Wie zum Beispiel den fortlaufenden Dialog.
Sie können die oben genannten Methoden verwenden, Sie können jedoch Input.GetKey verwenden erreiche dein Ziel.
Gibt true zurück, während der Benutzer den identifizierten Schlüssel festhält.