- Home /
Input.GetKey behaving strangely
My problem is that when I check for a key being held down with Input.GetKey, I am only getting a positive return every 2 out of 3 frames.
I've tried running my code in a new project and encountered the same issue. This is using Unity 2018.1.0f2 (64-bit).
Testing with the following code inside the main Update loop (not FixedUpdate), I am getting a string of debug messages, 20-25 every second, whilst my game is running at 90fps.
if (Input.GetKey(KeyCode.W)){
tester = true;
}else{
tester = false;
}
if (tester!=lastTester){
Debug.Log("Changed");
}
lastTester = tester;
Interestingly, when I hold more than one key down (ANY other key), it never misses a beat and captures the input on every frame, so long as one of the two keys being held down is W.
My keyboard seems to be operating fine in all other applications and in previous builds I've made with the same version of Unity.
Help would be greatly appreciated, I have no idea how this has popped up as an issue.
Answer by facePuncher7 · May 29, 2018 at 10:44 PM
Found the culprit - the first input channel on my keyboard ( Ducky One, only a year old :( ) appears to be fried.
No matter how many keys I hold down, the first one pressed will flicker on and off.
Great way to spend $200 :P
Answer by hawksandwichgames · May 29, 2018 at 11:54 AM
What's strange to me is that you're getting a message without changing the input. Isn't the point of that that you'd only get a debug message when you either press down or let go of W?
Anyway, I don't know what's up with that. If you're stuck and need a workaround until someone can better answer, just use Input.GetKeyDown and Input.GetKeyUp and set a "holdingW" bool to true or false based on those events, and use that to check. That should definitely be right every frame. Then again, so should GetKey...
Get$$anonymous$$ey returns true as long as the key is pressed.
Your answer
Follow this Question
Related Questions
Change view if key is pressed 4 Answers
if-else for Input.GetKey 1 Answer
How can I check if a key/button is not (!) being held down? 1 Answer
Gamepad input enum eType not working 0 Answers