Камера вращения Unity fps

В моей игре у меня есть камера, и я хочу, чтобы к ней было прикреплено вращение, подобное FPS.

Итак, если я перемещаю курсор влево, я хочу, чтобы моя камера вращалась влево. Если я перемещаю курсор вверх, камера должна смотреть вверх и т. Д.

В настоящее время она частично работает. Я могу смотреть налево и направо, вверх и вниз. Проблема возникает, когда я смотрю вниз, а затем перемещаю курсор влево и вправо. Затем это дает мне эффект «переката».

Посмотрите это видео, чтобы понять, что я имею в виду: http://www.screencast.com/t/Phedh8H0K13

Очевидно, когда я смотрю вниз, я все еще хочу иметь эффект «рыскания» вместо эффекта «крена». Кто-нибудь знает, как это сделать? Вот что у меня есть:

// Update is called once per frame
public override void update ()
{
    this.camera.transform.rotation *= 
        Quaternion.AngleAxis( Time.deltaTime * sensitivityRoll * Input.GetAxis("Vertical"), Vector3.forward );

    this.camera.transform.rotation *= 
        Quaternion.AngleAxis( Time.deltaTime * sensitivityYaw * Input.GetAxis("Mouse X"), Vector3.up );

    this.camera.transform.rotation *= 
        Quaternion.AngleAxis( Time.deltaTime * sensitivityPitch * Input.GetAxis("Mouse Y"), Vector3.left );
}

11
задан K.Dᴀᴠɪs 27 February 2018 в 02:14
поделиться