- Home /
 
Same y rotation (Camera and Character)
Hi i am having a problem with the rotation of my player. i made a camera script to control the camera And in my player script i wrote this: transform.localEulerAngles = new Vector3(transform.localEulerAngles.x, Camera.main.transform.localEulerAngles.y, transform.localEulerAngles.z); And yes in the inspector tab it says that the y rotation of the player is the same as the y rotation of the camera but the camera still is rotated different.
Btw this is my player script:
void Start () { anim = GetComponent(); Rbody = GetComponent(); run = false; Cursor.lockState = CursorLockMode.Locked; }
 // Update is called once per frame
 void Update ()
 {
     transform.localEulerAngles = new Vector3(transform.localEulerAngles.x, Camera.main.transform.localEulerAngles.y, transform.localEulerAngles.z);
     
     Physics.gravity = new Vector3(0f, -Gravity * Time.fixedDeltaTime, 0f);
     
     if (Input.GetKeyDown("1"))
     {
         anim.Play("Run", -1,0f);
     }
     if (Input.GetKey(KeyCode.LeftShift)&& inputV > 0.1)
     {
         currentrunspeed = 150f;
         run = true;                        
     }
     else
     {
         run = false;
         currentrunspeed = 80f;      
     }
     inputH = Input.GetAxis("Horizontal");
     inputV = Input.GetAxis("Vertical");
     anim.SetFloat("InputH", inputH);
     anim.SetFloat("InputV", inputV);
     anim.SetBool("Run",run);
    float moveX = inputH * 50f * Time.deltaTime;
    float moveZ = inputV * currentrunspeed * Time.deltaTime;
     
    
 Rbody.velocity = new Vector3(moveX,Rbody.velocity.y, moveZ);
    if (Input.GetKeyDown("space") && IsGrounded)
    {
         Rbody.AddForce(Vector3.up * JumpHeight * Time.deltaTime);
         anim.SetBool("Jump", true);
         
    }
    else
     {
         anim.SetBool("Jump", false);
     }
 }
 public bool IsGrounded;
 void OnCollisionStay(Collision collisionInfo)
 {
     IsGrounded = true;
 }
 void OnCollisionExit(Collision collisionInfo)
 {
     IsGrounded = false;
 }
 
               And this is my camera script:
 void Update()
 {
     
     if (axes == RotationAxes.MouseXAndY)
     {
         // Read the mouse input axis
         rotationX += Input.GetAxis("Mouse X") * sensitivityX;
         rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
         rotationX = ClampAngle(rotationX, minimumX, maximumX);
         rotationY = ClampAngle(rotationY, minimumY, maximumY);
         Quaternion xQuaternion = Quaternion.AngleAxis(rotationX, Vector3.up);
         Quaternion yQuaternion = Quaternion.AngleAxis(rotationY, -Vector3.right);
         transform.localRotation = originalRotation * xQuaternion * yQuaternion;
     }
     else if (axes == RotationAxes.MouseX)
     {
         rotationX += Input.GetAxis("Mouse X") * sensitivityX;
         rotationX = ClampAngle(rotationX, minimumX, maximumX);
         Quaternion xQuaternion = Quaternion.AngleAxis(rotationX, Vector3.up);
         transform.localRotation = originalRotation * xQuaternion;
     }
     else
     {
         rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
         rotationY = ClampAngle(rotationY, minimumY, maximumY);
         Quaternion yQuaternion = Quaternion.AngleAxis(-rotationY, Vector3.right);
         transform.localRotation = originalRotation * yQuaternion;
     }
 }
 void Start()
 {
     // Make the rigid body not change rotation
     if (GetComponent<Rigidbody>())
         GetComponent<Rigidbody>().freezeRotation = true;
     originalRotation = transform.localRotation;
 }
 public static float ClampAngle(float angle, float min, float max)
 {
     if (angle  < -360F)
      angle += 360F;
     if (angle  > 360F)
      angle -= 360F;
     return Mathf.Clamp(angle, min, max);
 }
 
              
               Comment
              
 
               
              Your answer