Whenever I start up my game and move the camera my character gets possessed and break dances (I can't get a clear screen shot of it but the orange lines are a drawray from my camera so you can probably see what's wrong):
![alt text][1]
![alt text][2]
[1]: /storage/temp/92557-call-an-exorcist.png
[2]: /storage/temp/92558-call-an-exorcist-2.png
Here are my Movement and MouseLook scripts:
My mouselook script:
using UnityEngine;
using System.Collections;
public class MouseLook : MonoBehaviour {
// The mouse movement, smoothing and sensitivity vectors.
Vector2 mouseLook;
Vector2 smoothV;
// The sensitivity and smoothing values.
public float sensitivity = 5.0f;
public float smoothing = 2.0f;
public float ClampDegreeCap = 70f;
// The character gameobject.
private GameObject Character;
void Start ()
{
// The character object.
Character = this.transform.parent.gameObject;
}
void Update ()
{
// The original raw movement.
var md = new Vector2(Input.GetAxisRaw("Mouse X"), Input.GetAxisRaw("Mouse Y"));
// The movement smoothing and sensitivity.
md = Vector2.Scale(md, new Vector2(sensitivity * smoothing, sensitivity * smoothing));
smoothV.x = Mathf.Lerp(smoothV.x, md.x, 1f / smoothing);
smoothV.y = Mathf.Lerp(smoothV.y, md.y, 1f / smoothing);
mouseLook += smoothV;
// The movement cap.
mouseLook.y = Mathf.Clamp(mouseLook.y, -ClampDegreeCap, ClampDegreeCap);
// The rotation that moves the camera and the character.
transform.localRotation = Quaternion.AngleAxis(-mouseLook.y, Vector3.right);
Character.transform.localRotation = Quaternion.AngleAxis(mouseLook.x, Character.transform.up);
}
}
My movement script:
using UnityEngine;
using System.Collections;
public class CharacterMovement : MonoBehaviour {
// The speed value.
public float speed = 4.0f;
void Start ()
{
// The mouse is invisible when the game is started.
Cursor.lockState = CursorLockMode.Locked;
}
void Update ()
{
// The movement input.
float translation = Input.GetAxis("Vertical") * speed;
float straffe = Input.GetAxis ("Horizontal") * speed;
// The code that smoothes the movement.
translation *= Time.deltaTime;
straffe *= Time.deltaTime;
// The movement output.
transform.Translate(straffe, 0, translation);
// To see the mouse again after pressing a cerntain key.
if (Input.GetKeyDown("escape"))
Cursor.lockState = CursorLockMode.None;
}
}
Any help is MUCH appreaciated.
↧