I’m using the script below to move and rotate my player object, the player only moves in one direction which is backwards along the X axis and rotates to look at the mouse position.
I need to use Rigidbody movement as the player needs to be affected by gravity at certain stages. The problem I’m having is that when I try to rotate the player, the direction at which he is moving also changes(so he can potentially go backwards).
So, How can I move my player constantly on the X axis and rotate him without changing the direction he is moving?
Here is what I am using so far
//MouseLook Vector3 MouseWorldPosition = MainCamera.GetComponent<Camera> ().ScreenToWorldPoint (new Vector3 (Input.mousePosition.x, Input.mousePosition.y, 50)); transform.LookAt (MouseWorldPosition); transform.rotation = Quaternion.Euler (new Vector3 (0, transform.rotation.eulerAngles.y, 0)); //Moves Player rb.MovePosition(transform.localPosition += -transform.forward * Time.deltaTime);
Also, currently for this to work I have to keep my rigidbody as kinematic or else the player goes flying!, why is this and can I change it?