Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
89 lines (70 sloc) 2.74 KB
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(CharacterController))]
public class PlayerMovement : MonoBehaviour
{
GameManager gameManager;
Pause pause;
public float playerWalkingSpeed = 6f;
public float playerRunningSpeed = 9f;
public float jumpStrength = 3.5f;
public float verticalRotationLimit = 12f;
float forwardMovement;
float sidewaysMovement;
float verticalRotation = 0;
float verticalVelocity;
CharacterController cc;
void Awake()
{
cc = GetComponent<CharacterController>();
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
gameManager = FindObjectOfType<GameManager>();
pause = FindObjectOfType<Pause>();
}
void Update()
{
if (gameManager.isDead == false && pause.isPaused == false)
{
float horizontalRotation = Input.GetAxis("Mouse X");
transform.Rotate(0, horizontalRotation, 0);
verticalRotation -= Input.GetAxis("Mouse Y");
verticalRotation = Mathf.Clamp(verticalRotation, -verticalRotationLimit, verticalRotationLimit);
Camera.main.transform.localRotation = Quaternion.Euler(verticalRotation, 0, 0);
if (cc.isGrounded)
{
forwardMovement = Input.GetAxis("Vertical") * playerWalkingSpeed;
sidewaysMovement = Input.GetAxis("Horizontal") * playerWalkingSpeed;
if (Input.GetKey(KeyCode.LeftShift))
{
forwardMovement = Input.GetAxis("Vertical") * playerRunningSpeed;
sidewaysMovement = Input.GetAxis("Horizontal") * playerRunningSpeed;
}
if (Input.GetAxis("Vertical") != 0 || Input.GetAxis("Horizontal") != 0)
{
if (Input.GetKey(KeyCode.LeftShift))
{
DynamicCrosshair.spread = DynamicCrosshair.RUN_SPREAD;
}
else
{
DynamicCrosshair.spread = DynamicCrosshair.WALK_SPREAD;
}
}
}
else
{
DynamicCrosshair.spread = DynamicCrosshair.JUMP_SPREAD;
}
verticalVelocity += Physics.gravity.y * Time.deltaTime;
if (Input.GetButtonDown("Jump") && cc.isGrounded)
{
verticalVelocity = jumpStrength;
}
Vector3 playerMovement = new Vector3(sidewaysMovement, verticalVelocity, forwardMovement);
cc.Move(transform.rotation * playerMovement * Time.deltaTime);
}
Cursor.lockState = CursorLockMode.Locked;
}
}