WASD Movement and rotates with mouse

Hey there, I’m new to Unity and the scripting along with it. My goal is to make my first game. I’m trying to follow many tutorials in hopes to get what i’m looking for by bits and pieces but its not working because I just don’t understanding scripting fully (only a little of it).

I’m making a 3D Top Down Shooter, and I want my Player to ALWAYS Move Forward with W, Left with A, Right with D and Back with S. But I want the Player to rotate with the mouse and face towards it. I’m HOPING to have gravity mechanics with the Player as well so i can walk up and down slops or fall off ledges and have very snappy movement. NOT the floaty feeling movement where the character slides.

Can anyone help me find a FULL script or show me how to make my own in detail?

Look into the CharacterController component: Unity - Manual: Character Controller component reference

Also, this tutorial should help (somewhat): Unity - Manual: Character Controller component reference

Just a heads-up note, the default character controller doesn’t work when you are looking directly down, because it uses Vector3.Dot() (or Cross()) to determine the forward vector of the character, so you will either have to change that or look slightly not directly down (say, at 89.9 degrees angle).