Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Mirror;
- using UnityEngine;
- namespace Player
- {
- public class CharacterMovement : NetworkBehaviour, IPlayerUpdate
- {
- [SerializeField] private CharacterMovementInput input;
- [SerializeField] private CharacterController controller;
- [SerializeField, Range(0, 100)] private float smooth;
- [Header("Speeds")]
- [SerializeField] private float walkSpeed;
- [SerializeField] private float runSpeed, crouchSpeed;
- public bool CanWalk { get; set; } = true;
- private Vector3 _currentIV = Vector3.zero;
- public void Execute(bool isLocalPlayer)
- {
- if (!isLocalPlayer && !CanWalk)
- return;
- var iVRaw = new Vector3(input.GetHorizontalRaw(), 0, input.GetVerticalRaw());
- _currentIV = Vector3.Lerp(_currentIV, iVRaw.normalized, smooth * Time.deltaTime);
- var s = input.GetShift() ? runSpeed : input.GetCrouch() ? crouchSpeed : walkSpeed;
- var mV = s * Time.deltaTime * transform.TransformDirection(_currentIV);
- controller.Move(mV);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment