Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.EventSystems;
- public class PlayerMovement : MonoBehaviour
- {
- Vector2 _currentMovement;
- Vector3 _moveDirection;
- private Vector3 _velocity;
- [SerializeField] private Transform _cameraT;
- [SerializeField] float GravityMultiplier;
- [SerializeField] private float _currentSpeed = 2.0f;
- [SerializeField] internal float jumpHeightMultiplier = 1.0f;
- private float _walkMovementSpeed = 2f;
- private float _runMovementSpeed = 5.25f;
- private float _gravityValue = -9.81f;
- private CharacterController controller;
- private PlayerController playerController;
- private void Awake()
- {
- playerController = new PlayerController();
- }
- private void Start()
- {
- controller = GetComponent<CharacterController>();
- }
- private void OnEnable()
- {
- playerController.Enable();
- }
- private void OnDisable()
- {
- playerController.Disable();
- }
- void Update()
- {
- HandleMovement();
- HandleJump();
- }
- Vector3 Gravity()
- {
- if (!controller.isGrounded)
- {
- _velocity.y += _gravityValue * GravityMultiplier * Time.deltaTime;
- }
- else
- {
- _velocity.y = -1.0f;
- }
- return _velocity;
- }
- void HandleMovement()
- {
- _currentMovement = playerController.Player.Movement.ReadValue<Vector2>();
- _moveDirection = _cameraT.forward * _currentMovement.y + _cameraT.right * _currentMovement.x;
- _moveDirection.y = Gravity().y;
- controller.Move(_moveDirection.normalized * Time.deltaTime * _currentSpeed);
- }
- void HandleJump()
- {
- if (playerController.Player.Jump.triggered && controller.isGrounded)
- {
- _velocity.y += Mathf.Sqrt(-_gravityValue * jumpHeightMultiplier);
- }
- controller.Move(_velocity * Time.deltaTime);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement