To help gain more insight into your problem, I recommend liberally sprinkling Debug.Log() statements through your code to display information in realtime.
Doing this should help you answer these types of questions:
is this code even running? which parts are running? how often does it run?
what are the values of the variables involved? Are they initialized?
Knowing this information will help you reason about the behavior you are seeing.
Sorry. It’s been a few years since I’ve been here, I’ll make use of Code tags from here on out.
I did end up sprinkling a few Debug.Logs around and saw it seemed to be working, I just didn’t understand the difference between GetKey and GetKeyDown.