Modifying Input System for Isometric

Hello. I’m making an isometric game, and I’d like to make it so that the movement is always isometric. That is, when you hit the “up” key, the player moves in the northeast direction, “down” moves in the southwest direction, “left” goes northwest, and “right” goes southeast.
I’ve been fighting for my life against the input system all day and simply cannot figure out how to do this. For clarification, I don’t want to have to hold two keys to move diagonally, nor do I want to have up/down/left/right movement on certain keys and diagonal movement on others; I want diagonal to be the default. “Up” will only go northeast, with no straight up movement in the game at all. Can anyone guide me on how to make this happen?

First thing to do is to separate the reading of input from how the input is actually processed. Those are two completely separate things, implementation wise.

Then it’s just a matter of handling those values you read from your input management. This depends on the specifics of your isometric implementation. When I’ve done this before, in a 3d project, the camera was just rotated 45 degrees on the y-axis, so that ‘forward’ input would still just move the player forward along the z-axis, though from the camera’s perspective it looked like they were moving to the North-East.

Otherwise you can just rotate the vector input by your player to correspond with your isometric layout.