using System.Collections;
using UnityEngine;
public class PlayerMovementScript : MonoBehaviour
{
private Camera cam;
private GameObject manager;
private ManagerScript managerScript;
private float mouseX;
private float mouseY;
private float camRotX;
private float rotY;
private Vector2 moveDir;
private float moveSpeed = 20;
private Rigidbody rb;
void Start()
{
cam = Camera.main;
rb = GetComponent<Rigidbody>();
manager = GameObject.FindGameObjectWithTag("Manager");
managerScript = manager.GetComponent<ManagerScript>();
StartCoroutine(timer());
}
void Update()
{
//Rotate with mouse
if (managerScript.isPaused == false)
{
//Rotate camera up-down
mouseY = Input.GetAxis("Mouse Y");
camRotX += mouseY * managerScript.mouseSens;
camRotX = Mathf.Clamp(camRotX, -90, 90);
cam.transform.localRotation = Quaternion.Euler(-camRotX, 0, 0);
//Rotate character sideways
mouseX = Input.GetAxis("Mouse X");
rotY += mouseX * managerScript.mouseSens; ;
transform.rotation = Quaternion.Euler(0, rotY, 0);
}
//Movement input
if (Input.GetKey(KeyCode.W))
{
moveDir.y = 1;
}
if (Input.GetKey(KeyCode.A))
{
moveDir.x = -1;
}
if (Input.GetKey(KeyCode.S))
{
moveDir.y = -1;
}
if (Input.GetKey(KeyCode.D))
{
moveDir.x = 1;
}
}
private void FixedUpdate()
{
//Move
rb.AddRelativeForce(new Vector3(moveDir.x, 0, moveDir.y).normalized * moveSpeed);
moveDir = new Vector2(0, 0);
}
IEnumerator timer()
{
yield return new WaitForSeconds(1);
//Execute commands
StartCoroutine(timer());
}
}