FPS Character Controller

First of all, Good Evening, Morning or Night xD A friend and I are working on a Indie FPS game and need a bit of assistance, we are currently working on the Main Characters Controller, we want to get a bit of recomendations for example, what characteristics does the Character Controller need besides the slope offset, step offset and moving controls to get a more realistic movement?

And also I’d like a little help getting a diagonal movement, currently we are using something like this to make the character move:

if(Input.GetKey(keyForward)){
moveTo = Vector3.forward;
}

It’s and example and moveTo, keyForward are variables we are using.

Note: The animations we have already finished most of them, we are working on some others to start moving the character with these animations.

I am not sure as to how realistic you want your movement to be, so I won’t comment on that.

As for diagonal movement, just amend your “moveTo = Vector3.Forward” to “moveTo+=Vector3.Forward” instead, so that you do not assign the forward vector as the actual moveTo vector but just increment it.