Guest User

Untitled

a guest
Aug 25th, 2025
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. using Mirror;
  2. using UnityEngine;
  3.  
  4. namespace Player
  5. {
  6. public class CharacterMovement : NetworkBehaviour, IPlayerUpdate
  7. {
  8. [SerializeField] private CharacterMovementInput input;
  9. [SerializeField] private CharacterController controller;
  10.  
  11. [SerializeField, Range(0, 100)] private float smooth;
  12.  
  13. [Header("Speeds")]
  14. [SerializeField] private float walkSpeed;
  15. [SerializeField] private float runSpeed, crouchSpeed;
  16.  
  17. public bool CanWalk { get; set; } = true;
  18.  
  19. private Vector3 _currentIV = Vector3.zero;
  20.  
  21. public void Execute(bool isLocalPlayer)
  22. {
  23. if (!isLocalPlayer && !CanWalk)
  24. return;
  25.  
  26. var iVRaw = new Vector3(input.GetHorizontalRaw(), 0, input.GetVerticalRaw());
  27.  
  28. _currentIV = Vector3.Lerp(_currentIV, iVRaw.normalized, smooth * Time.deltaTime);
  29.  
  30. var s = input.GetShift() ? runSpeed : input.GetCrouch() ? crouchSpeed : walkSpeed;
  31. var mV = s * Time.deltaTime * transform.TransformDirection(_currentIV);
  32.  
  33. controller.Move(mV);
  34. }
  35. }
  36. }
Advertisement
Add Comment
Please, Sign In to add comment