Wir wissen, es gibt eine "Regel", dass Input
Funktionen nicht innerhalb der FixedUpdate()
verwendet werden sollten; Input.GetKeyDown()
funktioniert möglicherweise nicht, wenn wir dies tun, aber ist es wirklich falsch, Input.GetKey()
zu verwenden?Ist es wirklich falsch, Input.GetKey() auf FixedUpdate zu verwenden?
Angenommen, wir möchten etwas auslösen, wenn Sie eine Taste gedrückt halten, die nicht von der Hardwareleistung abhängig ist. Ich möchte keine Logik erstellen, um dies unter Verwendung von Delta-Zeit oder Schreiben Schlüsselerkennungscode in Update
und Eröffnungscode in FixedUpdate
zu steuern.
Macht es keinen Sinn, einfach alles innerhalb FixedUpdate
zu tun? Was passieren kann - wir könnten einige wichtige Ereignisse verlieren, die wir sowieso nicht wollten, um unsere gewünschte Rate zu halten.
Aber was passiert, wenn ein einzelnes Schlüsselereignis eintritt, können wir es verlieren? Gibt es einen Reset nach Update
, so werden wir es nicht auf FixedUpdate
sehen?
Absolut zutreffend für 'GetKeyDown()', aber nach meiner Erfahrung 'GetKey() 'war in Ordnung. Hat sich das in den letzten paar Versionen geändert? – rutter
@Rutter Danke für den Hinweis, dass ich die falsche Funktion adressiert habe, siehe mein Update. Ich vermute, dass es nicht etwas ist, was Sie mit der festen Standardrate von 0,02s bemerken würden, da "GetKey" für fortlaufende Tastendrücke ist. – Jerdak
Vielen Dank, das ist ein gutes Experiment, um zu beweisen, dass GetKey() jedes Frame zurückgesetzt wird, auch wenn dies nicht explizit in der Dokumentation steht. – Roberto