- Home /
Camera won't rotate while holding WASD keys
Hi,
I've coded up a simple, generic, first person controller. The WASD/arrow key controls and the mouse rotation for the camera work fine individually, and the arrow key controls work fine in conjunction with the mouse controls as well.
However, the mouse controls won't work (the camera won't turn/rotate) while holding the WASD keys. The player will still move in the direction that I'm holding, but the camera won't turn until I let go of the keys. I'd greatly appreciate any help getting the WASD keys to play nice with the mouse as that would be the ideal movement for the game. Here's my code:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Movement : MonoBehaviour
{
Animator animator;
public bool canMove;
public Transform cam;
public float sensitivity = 100f;
public CharacterController controller;
public float speed = 12;
float xRotation;
private float desiredX;
public Transform groundCheck;
void Start()
{
animator = this.gameObject.GetComponent<Animator>();
Cursor.lockState = CursorLockMode.Locked;
canMove = true;
}
// Update is called once per frame
void FixedUpdate()
{
//inputs
float mouseX = Input.GetAxis("Mouse X") * sensitivity * Time.fixedDeltaTime;
float mouseY = Input.GetAxis("Mouse Y") * sensitivity * Time.fixedDeltaTime;
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
//controls movement
if (canMove)
{
Vector3 move = transform.right * x + transform.forward * z;
controller.Move(move * speed * Time.fixedDeltaTime);
//camera look
Vector3 rotation = cam.transform.localRotation.eulerAngles;
desiredX = rotation.y + mouseX;
xRotation -= mouseY;
xRotation = Mathf.Clamp(xRotation, -90f, 90f);
cam.transform.localRotation = Quaternion.Euler(xRotation, desiredX, 0);
transform.localRotation = Quaternion.Euler(0, desiredX, 0);
//controls animation
animator.SetFloat("InputY", z);
animator.SetFloat("InputX", x);
}
else
{
animator.SetFloat("InputY", 0);
animator.SetFloat("InputX", 0);
}
}
}
Your answer
Follow this Question
Related Questions
How to move the rotation of the X and Z axis of a 3D model's head with Mouse Input? 0 Answers
Changing Level Design With Camera Angle 0 Answers
Adding some recoil to the Camera (FPS) 1 Answer
Camera randomly turns left or right 0 Answers
Camera rotation 0 Answers