48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class FirstPersonControllerScript : MonoBehaviour {
|
|
|
|
public float speed = 6.0F;
|
|
public float jumpSpeed = 8.0F;
|
|
public float gravity = 20.0F;
|
|
private Vector3 moveDirection = Vector3.zero;
|
|
|
|
float yRotation;
|
|
float xRotation;
|
|
float lookSensitivity = 2;
|
|
float currentXRotation;
|
|
float currentYRotation;
|
|
float yRotationV;
|
|
float xRotationV;
|
|
float lookSmoothnes = 0.1f;
|
|
|
|
void Start(){
|
|
Cursor.lockState = CursorLockMode.Locked;
|
|
Cursor.visible = false;
|
|
}
|
|
|
|
void Update() {
|
|
CharacterController controller = GetComponent<CharacterController>();
|
|
if (controller.isGrounded) {
|
|
moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
|
|
moveDirection = transform.TransformDirection(moveDirection);
|
|
moveDirection *= speed;
|
|
if (Input.GetButton("Jump"))
|
|
moveDirection.y = jumpSpeed;
|
|
|
|
}
|
|
moveDirection.y -= gravity * Time.deltaTime;
|
|
controller.Move(moveDirection * Time.deltaTime);
|
|
|
|
yRotation += Input.GetAxis("Mouse X") * lookSensitivity;
|
|
xRotation -= Input.GetAxis("Mouse Y") * lookSensitivity;
|
|
xRotation = Mathf.Clamp(xRotation, -80, 100);
|
|
currentXRotation = Mathf.SmoothDamp(currentXRotation, xRotation, ref xRotationV, lookSmoothnes);
|
|
currentYRotation = Mathf.SmoothDamp(currentYRotation, yRotation, ref yRotationV, lookSmoothnes);
|
|
transform.rotation = Quaternion.Euler(xRotation, yRotation, 0);
|
|
|
|
}
|
|
}
|