Search Unity

Problem with FPS Walker Mouse Look <_>"

Discussion in 'Editor & General Support' started by DarkRaveNL88, Jul 16, 2010.

  1. DarkRaveNL88

    DarkRaveNL88

    Joined:
    Jul 16, 2010
    Posts:
    5
    Hello Everyone,

    i was working on a little project for a sandbox world.
    Yesterday i just could walk around and look at everything i wanted to.
    Today a start Unity. I did not change anything at all in my project.
    I press play and my mouse look on my fps walker just doesn't work.
    i tried a couple of things.(New fps walker, remove mouse look component and put a new one in there etc etc.) But nothing works :/.
    Does someone knows about this problem?

    I would be very gratefull^^
     
  2. Jesse Anders

    Jesse Anders

    Joined:
    Apr 5, 2008
    Posts:
    2,857
    IIRC, there are two 'mouse look' scripts attached to the 'character controller' prefab, one for yaw and one for pitch. Are they both not working?

    Also, is linear motion working correctly? Do you see any error messages in the console? Are you sure the axes are set up correctly?
     
  3. DarkRaveNL88

    DarkRaveNL88

    Joined:
    Jul 16, 2010
    Posts:
    5
    Hello again,

    i checked everything. But everything is just default. The way you get it from unity :/

    and what do you mean with second script? I always did "fps walker,camera mouse look" and everything worked fine.

    this is the code of the mouse look script. maybe you can see something. And i dont get errors if i press play.


    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 a rigid body to the 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 FPSWalker script to the capsule

    /// - 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 rotationX = 0F;
    float rotationY = 0F;

    Quaternion originalRotation;

    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.left);

    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.left);
    transform.localRotation = originalRotation * yQuaternion;
    }
    }

    void Start ()
    {
    // Make the rigid body not change rotation
    if (rigidbody)
    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);
    }
    }