using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
[Header(“Speed”)]
//Speed veriables
[SerializeField]
private CharacterController controller;
[SerializeField]
private float speed = 0f;
[SerializeField]
private float gainSpeed = 0.03f * Time.deltaTime;
[SerializeField]
private float finalSpeed = 7.5f;
[Header(“Gravity”)]
//Gravity
Vector3 velocity;
[SerializeField]
private float gravity = -9.8f;
[Header(“Ground Check”)]
//Ground check
[SerializeField]
private Transform groundCheck;
[SerializeField]
private float groundDistance = 0.4f;
[SerializeField]
private LayerMask groundMask;
public bool isGrounded;
[Header(“Jumping Veriables”)]
//jumping
[SerializeField]
private float jumpingHight = 30f;
void Update()
{
//Gound Check
isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask);
if (isGrounded && velocity.y < 0)
{
velocity.y = -2f;
}
//Gravity
velocity.y += gravity * Time.deltaTime;
controller.Move(velocity * Time.deltaTime);
//Moving
float x = Input.GetAxis(“Horizontal”);
float z = Input.GetAxis(“Vertical”);
Vector3 move = transform.right * x + transform.forward * z;
//Jumping
if (Input.GetButtonDown(“Jump”) && isGrounded)
{
Debug.Log(“works”);
velocity.y = Mathf.Sqrt(jumpingHight * -2f * gravity);
}
//Acceleration machanic - made for scary moments, it adds to the experiance and scare a little bit
if (x > 0 || z > 0 || x < 0 || z < 0 && isGrounded)
{
speed += gainSpeed;
if (speed > finalSpeed)
{
speed = finalSpeed;
controller.Move(move * speed * Time.deltaTime);
}
controller.Move(move * speed * Time.deltaTime);
}
else
{
speed = gainSpeed * 2;
}
}
}