C # und Unity3D während die Taste gedrückt wird

9

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%     
imperium2335 06.07.2012, 19:40
quelle

2 Antworten

6

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).

    
redtuna 06.07.2012, 19:54
quelle
5

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.

    
Flickayy 14.06.2013 22:20
quelle

Tags und Links