Advertisement
Nioro_

movement

Nov 18th, 2024
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.86 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.EventSystems;
  5.  
  6. public class PlayerMovement : MonoBehaviour
  7. {
  8.     Vector2 _currentMovement;
  9.     Vector3 _moveDirection;
  10.     private Vector3 _velocity;
  11.     [SerializeField] private Transform _cameraT;
  12.     [SerializeField] float GravityMultiplier;
  13.     [SerializeField] private float _currentSpeed = 2.0f;
  14.     [SerializeField] internal float jumpHeightMultiplier = 1.0f;
  15.     private float _walkMovementSpeed = 2f;
  16.     private float _runMovementSpeed = 5.25f;
  17.     private float _gravityValue = -9.81f;
  18.  
  19.     private CharacterController controller;
  20.     private PlayerController playerController;
  21.  
  22.     private void Awake()
  23.     {
  24.         playerController = new PlayerController();
  25.     }
  26.     private void Start()
  27.     {
  28.         controller = GetComponent<CharacterController>();
  29.     }
  30.     private void OnEnable()
  31.     {
  32.         playerController.Enable();
  33.     }
  34.     private void OnDisable()
  35.     {
  36.         playerController.Disable();
  37.     }
  38.  
  39.     void Update()
  40.     {
  41.         HandleMovement();
  42.         HandleJump();
  43.     }
  44.  
  45.     Vector3 Gravity()
  46.     {
  47.         if (!controller.isGrounded)
  48.         {
  49.             _velocity.y += _gravityValue * GravityMultiplier * Time.deltaTime;
  50.         }
  51.         else
  52.         {
  53.             _velocity.y = -1.0f;
  54.         }
  55.         return _velocity;
  56.     }
  57.  
  58.     void HandleMovement()
  59.     {
  60.         _currentMovement = playerController.Player.Movement.ReadValue<Vector2>();
  61.         _moveDirection = _cameraT.forward * _currentMovement.y + _cameraT.right * _currentMovement.x;
  62.  
  63.         _moveDirection.y = Gravity().y;
  64.  
  65.         controller.Move(_moveDirection.normalized * Time.deltaTime * _currentSpeed);
  66.     }
  67.  
  68.     void HandleJump()
  69.     {
  70.         if (playerController.Player.Jump.triggered && controller.isGrounded)
  71.         {
  72.             _velocity.y += Mathf.Sqrt(-_gravityValue * jumpHeightMultiplier);
  73.         }
  74.         controller.Move(_velocity * Time.deltaTime);
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement