However, this just makes the player rotate whenever any input is given on the horizontal axis, this causes the player to just keep turning whenever it moves sideways.
Preset directions wont work for me because im using joystick input, So diagonal directions have to work too.
Know this is an old thread but I was having a similar issue. While the character would rotate properly, it was only moving to the right. Note that I am using the reference script from the CharacterColtroller.Move API
The fix ended up being to multiply the move speed by -1 (if it is a positive number) if you were facing left and want to move left. You also need to make sure that it is returned to a positive number once you want to rotate and move to the right.