i just made a new project, and put in a first person controller, but it will not walk straight. it just kind of strafes to the right while walking. Is there a fix for this, or am i stuck with this for my game?
Can you drop the code for your movement?
It sounds like you might be using a wrong vector.
My first guess without further info would be that you are doing something like:
Rigidbody rb = GameObject.GetComponent<RigidBody>();
rb.AddForce(new Vector3( 0, 0, 1 ) * speed);
where you would want something like:
Rigidbody rb = GameObject.GetComponent<RigidBody>();
rb.AddForce(transform.forward * speed);
Another option (a rather long shot one) is that something is wrong with Unity input configurations.
I’d recommend taking a look at the Input Manager (Edit->Project Settings->Input), and making sure everything is configured right (An example is available here: https://docs.unity3d.com/uploads/Main/InputSetAll.png).
This happened to me. I found that I had a Y rotation on the First Person Character. Probably because, during debugging I wanted to change the rotation of the FPS Controller, and changed the wrong thing.
The First Person Controller script is on the FPS Controller, not the First Person Character.