- Home /
Why is my sprinting animation restricting camera from looking up?
I am working on an fps game and for some reason when I have my sprinting animation play, while holding shift... it restricts the camera from looking up or down. I am able to look horizontally, but the vertical part is locked. Any ideas on how I can fix this?
I don't think my sprinting animation script is the problem.. but i will post it anyways just in case..
function Update()
{
if(Input.GetKey(KeyCode.LeftShift))
{
// Plays the reload animation - stops all other animations
animation.Play("sprintinganimation", PlayMode.StopAll);
}
}
Here is the running script:
using UnityEngine;
using System.Collections;
/// MouseLook rotates the transform based on the mouse delta. /// Minimum and Maximum values can be used to constrain the possible rotation
/// To make an FPS style character: /// - Create a capsule. /// - Add the MouseLook script to the capsule. /// -> Set the mouse look to use LookX. (You want to only turn character but not tilt it) /// - Add FPSInputController script to the capsule /// -> A CharacterMotor and a CharacterController component will be automatically added.
/// - Create a camera. Make the camera a child of the capsule. Reset it's transform. /// - Add a MouseLook script to the camera. /// -> Set the mouse look to use LookY. (You want the camera to tilt up and down like a head. The character already turns.) [AddComponentMenu("Camera-Control/Mouse Look")] public class MouseLook : MonoBehaviour {
public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 } public RotationAxes axes = RotationAxes.MouseXAndY; public float sensitivityX = 15F; public float sensitivityY = 15F;
public float minimumX = -360F; public float maximumX = 360F;
public float minimumY = -60F; public float maximumY = 60F;
float rotationY = 0F;
void Update () { if (axes == RotationAxes.MouseXAndY) { float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX;
rotationY += Input.GetAxis("Mouse Y") * sensitivityY; rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0); } else if (axes == RotationAxes.MouseX) { transform.Rotate(0, Input.GetAxis("Mouse X") sensitivityX, 0); } else { rotationY += Input.GetAxis("Mouse Y") sensitivityY; rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
transform.localEulerAngles = new Vector3(-rotationY, transform.localEulerAngles.y, 0); } }
void Start () { // Make the rigid body not change rotation if (rigidbody) rigidbody.freezeRotation = true; } }
look to 'camera look' script. here is no problems that can restrict camera from moving. post script here if you need to explain it
I posted the camera look script... As of now, I am just using the one that came with unity... is this causing my problem? Should I switch to a different first person control, and if so, do you have any suggestions on which ones I should use?
first. format your code with "101010" button, it's hard to read this crap 8)
second. i didn't found any problems here too. where else do you use Input and read Shift key? does disabling a first scrpt with animation play solves a problem? try to disable all scripts ine-by-one except mouse look and find one that restricts camera