Здравствуйте дорогие форумчане. У меня такой вопрос, делаю контроллер для космического корабля, управление мышкой. Все вроде работает нормально, но почему-то появляется вращение по оси з как на картинке. Как это исправить?
Код
using UnityEngine;
using System.Collections;
public class newControll : MonoBehaviour
{
public float speed = 50.0f;
public float speedMax = 100;
private float moveSpeed = 10;
public float rotationSpeed = 1.0f;
public float turnSpeed = 2;
public float speedPitch = 1;
public float speedYaw = 1;
private Quaternion mainRot = Quaternion.identity;
[HideInInspector]
public float pitch = 0;
[HideInInspector]
public float yaw = 0;
void Update()
{
Screen.lockCursor = true;
AxisControl(new Vector2(Input.GetAxis("Mouse X"),Input.GetAxis("Mouse Y")));
if(Input.GetKey(KeyCode.W))
{
SpeedUp();
}
}
void FixedUpdate()
{
Quaternion AddRot = Quaternion.identity;
AddRot = Quaternion.Euler(pitch, yaw, 0);
mainRot *= AddRot;
transform.localRotation = Quaternion.Lerp(transform.rotation, mainRot, Time.fixedDeltaTime * rotationSpeed);
moveSpeed = Mathf.Lerp(moveSpeed, speed,Time.deltaTime);
constantForce.relativeForce = new Vector3(0, 0, moveSpeed);
}
public void AxisControl(Vector2 axis)
{
yaw = Mathf.Lerp(yaw,Mathf.Clamp(axis.x,-1,1) * speedYaw, Time.deltaTime);
pitch = Mathf.Lerp(pitch,Mathf.Clamp(axis.y,-1,1) * speedPitch, Time.deltaTime);
}
public void SpeedUp()
{
moveSpeed = Mathf.Lerp(moveSpeed,speedMax,Time.deltaTime * 10);
}
}