public virtual void SetControllerMoveSpeed(tpcMovementSpeed speed)
 {
     if (speed.walkByDefault)
     {
         moveSpeed = Mathf.Lerp(moveSpeed, isSprinting ? speed.runningSpeed : speed.walkSpeed, speed.movementSmooth * Time.deltaTime);
     }
     else
     {
         moveSpeed = Mathf.Lerp(moveSpeed, isSprinting ? speed.sprintSpeed : speed.runningSpeed, speed.movementSmooth * Time.deltaTime);
     }
 }
        public tpcMovementSpeed GetMovementSpeed()
        {
            tpcMovementSpeed movement = freeSpeed;

            if (isCrouched && !isADS)
            {
                movement = crouchSpeed;
            }
            else if (isStrafing)
            {
                movement = strafeSpeed;
            }

            return(movement);
        }
예제 #3
0
        public virtual void SetAnimatorMoveSpeed(tpcMovementSpeed speed)
        {
            Vector3 relativeInput = transform.InverseTransformDirection(moveDirection);

            verticalSpeed   = relativeInput.z;
            horizontalSpeed = relativeInput.x;

            var newInput = new Vector2(verticalSpeed, horizontalSpeed);

            if (speed.walkByDefault)
            {
                inputMagnitude = Mathf.Clamp(newInput.magnitude, 0, isSprinting ? runningSpeed : walkSpeed);
            }
            else
            {
                inputMagnitude = Mathf.Clamp(isSprinting ? newInput.magnitude + 0.5f : newInput.magnitude, 0, isSprinting ? sprintSpeed : runningSpeed);
            }
        }