- Home /
Camera rotating with physics based movement.
I'm using the following script for my camera controller.
 using UnityEngine;
 
 public class PlayerController : MonoBehaviour {
 
     public float moveSpeed = 150f;
     public float rotationSpeed = 2f;
 
     private Rigidbody rigidBody;
 
     private Vector3 directionalForce;
     private Vector3 rotationalForce;
 
     // Use this for initialization
     void Start () {
         rigidBody = GetComponent<Rigidbody>();
 
         Cursor.lockState = CursorLockMode.Locked;
     }
   
     // Update is called once per frame
     void Update () {
         float horizontal = Input.GetAxisRaw("Horizontal");
         float vertical = Input.GetAxisRaw("Vertical");
         float depth = Input.GetAxisRaw("Depth");
 
         float mouseX = Input.GetAxisRaw("Mouse X");
         float mouseY = Input.GetAxisRaw("Mouse Y");
         float rotation = Input.GetAxisRaw("Rotation");
 
         directionalForce = new Vector3(horizontal, depth, vertical);
         rotationalForce = new Vector3(mouseY, mouseX, rotation);
 
         if (Input.GetKeyUp(KeyCode.Escape))
         {
             Cursor.lockState = CursorLockMode.None;
         }
     }
 
     void FixedUpdate() {
         rigidBody.AddRelativeForce(directionalForce * moveSpeed);
         rigidBody.AddRelativeTorque(rotationalForce * rotationSpeed);
 
         if (Mathf.Abs(rigidBody.velocity.x) > moveSpeed)
         {
             rigidBody.velocity = new Vector3(Mathf.Sign(rigidBody.velocity.x) * moveSpeed, rigidBody.velocity.y, rigidBody.velocity.z);
         }
 
         if (Mathf.Abs(rigidBody.velocity.y) > moveSpeed)
         {
             rigidBody.velocity = new Vector3(rigidBody.velocity.x, Mathf.Sign(rigidBody.velocity.y) * moveSpeed, rigidBody.velocity.z);
         }
 
         if (Mathf.Abs(rigidBody.velocity.z) > moveSpeed)
         {
             rigidBody.velocity = new Vector3(rigidBody.velocity.x, rigidBody.velocity.y, Mathf.Sign(rigidBody.velocity.z) * moveSpeed);
         }
     }
 }
However, when I move my mouse the camera rotates even though it shouldn't have force being applied to it.
Here's a webm of the issue: https://arimil.com/rotating.webm
And here's a screenshot of how I setup those two axis:
               Comment
              
 
               
              Your answer
 
 
             Follow this Question
Related Questions
Orbit cam and Rigidbodies aiming 0 Answers
I'm making a top down game. Where should the camera point? 2 Answers
Camera/Direction Rotation 2 Answers
rotate around with physics 1 Answer
Camera rotation around a single axis - following a rolling ball 3 Answers
