Lots of issues stemming from the foundation where the aiming should have been priority number 1.
You need to lock the cursor state and make sure its visible. Adding a UI sprite to the middle of the UI canvas for the aiming device for the character and your character controller should be doing some sort of Quaternion Euler rotation on the character from the mouse X input * Time.deltaTime and using that inside a player.Rotate(vector3.up * mouse X) function. Just little stuff like that should be pretty straight forward to handle all your needs! Hope this helps and good luck!