First person controller not moving properly after rotation

I have a First Person Controller that I move as follows:

GameObject Person=GameObject.Find ("First Person Controller");

if(GUI.RepeatButton(new Rect(moveForward), "")){
	Vector3 fwd = Person.transform.TransformDirection(Vector3.forward);
	Person.transform.Translate(fwd*timeDelta*10);

}
		
if(GUI.RepeatButton(new Rect(moveBackward), "")){
			
	Vector3 fwd = Person.transform.TransformDirection(Vector3.back);
	Person.transform.Translate(fwd*10*timeDelta);
}
		
if(GUI.RepeatButton(new Rect(turnLeft), "")){
			
	Person.transform.Rotate(0,-20*timeDelta,0);
}
		
if(GUI.RepeatButton(new Rect(turnRight), "")){
			
	Person.transform.Rotate(0,20*timeDelta,0);
}

The problem is if I turn left and then move forward, the object moves as if I never turned left i.e all rotations are lost when I select move forward or move backward. Any help?

try Person.transform.forward in place of Vector3.forward and -Person.transform.forward in place of Vector3.back.

No doesn't work.

1 Answer

1

I fixed it by replacing

Person.transform.Translate(fwd*timeDelta*10);

with

Person.transform.Translate(fwd*timeDelta*10,Space.World);