Commit 41421262 authored by David Huss's avatar David Huss 💬
Browse files

Fix initial orientation

parent 57155cfc
...@@ -3,7 +3,7 @@ using System.Collections.Generic; ...@@ -3,7 +3,7 @@ using System.Collections.Generic;
using UnityEngine; using UnityEngine;
[AddComponentMenu("SmoothMouseLook ")] [AddComponentMenu("MouseLook ")]
public class SmoothMouseLook : MonoBehaviour public class SmoothMouseLook : MonoBehaviour
{ {
// The speed at which we turn (Mouse Sensitivity) // The speed at which we turn (Mouse Sensitivity)
...@@ -58,8 +58,8 @@ public class SmoothMouseLook : MonoBehaviour ...@@ -58,8 +58,8 @@ public class SmoothMouseLook : MonoBehaviour
// first Child of type Camera. If none is found head = null // first Child of type Camera. If none is found head = null
head = GetComponentInChildren<Camera>().transform; head = GetComponentInChildren<Camera>().transform;
// Cache the orientation of body and head. // Cache the orientation of body and head. This errors if head was not
// This errors if head (Camera Child) was not found // found
bodyStartOrientation = transform.localRotation; bodyStartOrientation = transform.localRotation;
headStartOrientation = head.transform.localRotation; headStartOrientation = head.transform.localRotation;
...@@ -123,8 +123,9 @@ public class SmoothMouseLook : MonoBehaviour ...@@ -123,8 +123,9 @@ public class SmoothMouseLook : MonoBehaviour
// Compute rotations by rotating around a fixed axis (rotate yaw-degrees // Compute rotations by rotating around a fixed axis (rotate yaw-degrees
// around the up direction for the body, and pitch degrees around the // around the up direction for the body, and pitch degrees around the
// right direction for the head). // right direction for the head).
var bodyRotation = Quaternion.AngleAxis(yaw, Vector3.up); // Note: 90 deg need to be added, to get the initial orientation right
var headRotation = Quaternion.AngleAxis(pitch, Vector3.right); var bodyRotation = Quaternion.AngleAxis(yaw + 90, Vector3.up);
var headRotation = Quaternion.AngleAxis(pitch + 90, Vector3.right);
// Finally combine the rotations for body and head with the start rotations // Finally combine the rotations for body and head with the start rotations
transform.localRotation = bodyRotation * bodyStartOrientation; transform.localRotation = bodyRotation * bodyStartOrientation;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment