using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraMouseScript : MonoBehaviour { public float moveSpeed; public float shiftAdditionalSpeed; public float mouseSensitivity; public bool invertMouse; public bool autoLockCursor; public Camera cam; public GameObject character; void Awake() { cam = this.gameObject.GetComponent(); this.gameObject.name = "SpectatorCamera"; Cursor.lockState = (autoLockCursor) ? CursorLockMode.Locked : CursorLockMode.None; } void Update () { if (character.transform.rotation.x < 15 && character.transform.rotation.x > -15) { float speed = (moveSpeed + (Input.GetAxis("Fire3") * shiftAdditionalSpeed)); this.gameObject.transform.Translate(Vector3.forward * speed * Input.GetAxis("Vertical")); this.gameObject.transform.Translate(Vector3.right * speed * Input.GetAxis("Horizontal")); this.gameObject.transform.Translate(Vector3.up * speed * (Input.GetAxis("Jump") + (Input.GetAxis("Fire1") * -1))); this.gameObject.transform.Rotate(Input.GetAxis("Mouse Y") * mouseSensitivity * ((invertMouse) ? 1 : -1), Input.GetAxis("Mouse X") * mouseSensitivity * ((invertMouse) ? -1 : 1), 0); this.gameObject.transform.localEulerAngles = new Vector3(this.gameObject.transform.localEulerAngles.x, this.gameObject.transform.localEulerAngles.y, 0); if (Cursor.lockState == CursorLockMode.None && Input.GetMouseButtonDown(0)) { Cursor.lockState = CursorLockMode.Locked; } else if (Cursor.lockState == CursorLockMode.Locked && Input.GetKeyDown(KeyCode.Escape)) { Cursor.lockState = CursorLockMode.None; } } } }