47 lines
1.9 KiB
C#
47 lines
1.9 KiB
C#
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<Camera>();
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
} |