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(); 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); } }